More Info
Private Name Tags
ContractCreator
Latest 17 from a total of 17 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Swap ETH For Tok... | 12245398 | 1381 days ago | IN | 8.43063149 ETH | 0.00939355 | ||||
Swap ETH For Tok... | 12245327 | 1382 days ago | IN | 8.2 ETH | 0.00940145 | ||||
Swap ETH For Tok... | 12245219 | 1382 days ago | IN | 3 ETH | 0.00166279 | ||||
Swap ETH For Tok... | 12245214 | 1382 days ago | IN | 3 ETH | 0.00888759 | ||||
Swap ETH For Tok... | 12245180 | 1382 days ago | IN | 5.5 ETH | 0.01004538 | ||||
Swap ETH For Tok... | 12245172 | 1382 days ago | IN | 4.25 ETH | 0.00862872 | ||||
Swap ETH For Tok... | 12245104 | 1382 days ago | IN | 3.9 ETH | 0.00862872 | ||||
Swap ETH For Tok... | 12245074 | 1382 days ago | IN | 1 ETH | 0.01094689 | ||||
Swap ETH For Tok... | 12245006 | 1382 days ago | IN | 2.5 ETH | 0.01004538 | ||||
Swap ETH For Tok... | 12244945 | 1382 days ago | IN | 1.72 ETH | 0.00811358 | ||||
Swap ETH For Tok... | 12244909 | 1382 days ago | IN | 1.57 ETH | 0.00811358 | ||||
Swap ETH For Tok... | 12244866 | 1382 days ago | IN | 0.5 ETH | 0.00811358 | ||||
Swap ETH For Tok... | 12244716 | 1382 days ago | IN | 0.15 ETH | 0.00811358 | ||||
Swap ETH For Tok... | 12227634 | 1384 days ago | IN | 0.0252012 ETH | 0.0169087 | ||||
Create Uni V2Tok... | 12221455 | 1385 days ago | IN | 5 ETH | 0.20634994 | ||||
Create Token | 12221384 | 1385 days ago | IN | 0 ETH | 0.08159662 | ||||
Create Token | 12174822 | 1392 days ago | IN | 0 ETH | 0.11774916 |
Latest 16 internal transactions
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
12245398 | 1381 days ago | 8.43063149 ETH | ||||
12245327 | 1382 days ago | 8.2 ETH | ||||
12245214 | 1382 days ago | 3 ETH | ||||
12245180 | 1382 days ago | 5.5 ETH | ||||
12245172 | 1382 days ago | 4.25 ETH | ||||
12245104 | 1382 days ago | 3.9 ETH | ||||
12245074 | 1382 days ago | 1 ETH | ||||
12245006 | 1382 days ago | 2.5 ETH | ||||
12244945 | 1382 days ago | 1.72 ETH | ||||
12244909 | 1382 days ago | 1.57 ETH | ||||
12244866 | 1382 days ago | 0.5 ETH | ||||
12244716 | 1382 days ago | 0.15 ETH | ||||
12227634 | 1384 days ago | 0.0252012 ETH | ||||
12221455 | 1385 days ago | 5 ETH | ||||
12221384 | 1385 days ago | Contract Creation | 0 ETH | |||
12174822 | 1392 days ago | Contract Creation | 0 ETH |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
ERC20TokenFactory
Compiler Version
v0.8.0+commit.c7dfd78e
Optimization Enabled:
Yes with 999999 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "./ERC20Token.sol"; import '@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router02.sol'; import '@uniswap/v2-core/contracts/interfaces/IUniswapV2Factory.sol'; contract ERC20TokenFactory { address public uniV2Router; address[] public tokens; mapping (address => mapping (address => bool)) public tiers; mapping (address => address) public lastTier; constructor(address _uniV2Router) { uniV2Router = _uniV2Router; } function createToken( address owner, string memory name, string memory symbol, uint totalSupply, uint uniV2TokenLiquidity ) external returns (address token) { token = address(new ERC20Token(owner, name, symbol, totalSupply, uniV2TokenLiquidity)); tokens.push(token); } function createUniV2TokenETHPairWithTiers( address token, address[] memory _tiers ) external payable returns (address pair) { require(ERC20Token(token).owner() == msg.sender && lastTier[token] == address(0), "Only token owner can call this once."); uint uniV2TokenLiquidity = ERC20Token(token).balanceOf(address(this)); ERC20Token(token).approve(uniV2Router, uniV2TokenLiquidity); IUniswapV2Router01(uniV2Router).addLiquidityETH{ value: msg.value } (token, uniV2TokenLiquidity, uniV2TokenLiquidity, msg.value, msg.sender, block.timestamp + 86400); pair = IUniswapV2Factory(IUniswapV2Router01(uniV2Router).factory()) .getPair(token, IUniswapV2Router01(uniV2Router).WETH()); ERC20Token(token).lock(true); for (uint i = 0; i < _tiers.length; i++) { tiers[token][_tiers[i]] = true; } lastTier[token] = _tiers[_tiers.length - 1]; } function swapETHForTokens(address token) external payable { require(tiers[token][msg.sender] == true, "Only tier can call this once."); ERC20Token(token).lock(false); address[] memory path = new address[](2); path[0] = IUniswapV2Router01(uniV2Router).WETH(); path[1] = token; IUniswapV2Router01(uniV2Router).swapExactETHForTokens{ value: msg.value } (0, path, msg.sender, block.timestamp + 86400); tiers[token][msg.sender] = false; if(msg.sender != lastTier[token]) { ERC20Token(token).lock(true); } } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import '@openzeppelin/contracts/token/ERC20/ERC20.sol'; import "@openzeppelin/contracts/access/Ownable.sol"; contract ERC20Token is ERC20, Ownable { address factory; bool locked; modifier onlyFactory { require(_msgSender() == factory, "Only factory can call this."); _; } constructor( address owner_, string memory _name, string memory _symbol, uint totalSupply_, uint amountSender ) ERC20(_name, _symbol) { factory = msg.sender; _mint(owner_, totalSupply_ - amountSender); _mint(_msgSender(), amountSender); transferOwnership(owner_); } function burn(uint amount) onlyOwner external { _burn(_msgSender(), amount); } function lock(bool _locked) onlyFactory external { locked = _locked; } function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual override { super._beforeTokenTransfer(from, to, amount); require(!locked, "Token is locked."); } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "../utils/Context.sol"; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "./IERC20.sol"; import "../../utils/Context.sol"; /** * @dev Implementation of the {IERC20} interface. * * This implementation is agnostic to the way tokens are created. This means * that a supply mechanism has to be added in a derived contract using {_mint}. * For a generic mechanism see {ERC20PresetMinterPauser}. * * TIP: For a detailed writeup see our guide * https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How * to implement supply mechanisms]. * * We have followed general OpenZeppelin guidelines: functions revert instead * of returning `false` on failure. This behavior is nonetheless conventional * and does not conflict with the expectations of ERC20 applications. * * Additionally, an {Approval} event is emitted on calls to {transferFrom}. * This allows applications to reconstruct the allowance for all accounts just * by listening to said events. Other implementations of the EIP may not emit * these events, as it isn't required by the specification. * * Finally, the non-standard {decreaseAllowance} and {increaseAllowance} * functions have been added to mitigate the well-known issues around setting * allowances. See {IERC20-approve}. */ contract ERC20 is Context, IERC20 { mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; /** * @dev Sets the values for {name} and {symbol}. * * The defaut value of {decimals} is 18. To select a different value for * {decimals} you should overload it. * * All three of these values are immutable: they can only be set once during * construction. */ constructor (string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } /** * @dev Returns the name of the token. */ function name() public view virtual 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 value {ERC20} uses, unless this function is * overloaded; * * 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 override returns (uint256) { return _totalSupply; } /** * @dev See {IERC20-balanceOf}. */ function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } /** * @dev See {IERC20-transfer}. * * Requirements: * * - `recipient` cannot be the zero address. * - the caller must have a balance of at least `amount`. */ function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } /** * @dev See {IERC20-allowance}. */ function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } /** * @dev See {IERC20-approve}. * * Requirements: * * - `spender` cannot be the zero address. */ function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } /** * @dev See {IERC20-transferFrom}. * * Emits an {Approval} event indicating the updated allowance. This is not * required by the EIP. See the note at the beginning of {ERC20}. * * Requirements: * * - `sender` and `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. * - the caller must have allowance for ``sender``'s tokens of at least * `amount`. */ function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); _approve(sender, _msgSender(), currentAllowance - amount); return true; } /** * @dev Atomically increases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. */ function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } /** * @dev Atomically decreases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. * - `spender` must have allowance for the caller of at least * `subtractedValue`. */ function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); _approve(_msgSender(), spender, currentAllowance - subtractedValue); return true; } /** * @dev Moves tokens `amount` from `sender` to `recipient`. * * This is internal function is equivalent to {transfer}, and can be used to * e.g. implement automatic token fees, slashing mechanisms, etc. * * Emits a {Transfer} event. * * Requirements: * * - `sender` cannot be the zero address. * - `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. */ function _transfer(address sender, address recipient, uint256 amount) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(sender, recipient, amount); uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); _balances[sender] = senderBalance - amount; _balances[recipient] += amount; emit Transfer(sender, recipient, amount); } /** @dev Creates `amount` tokens and assigns them to `account`, increasing * the total supply. * * Emits a {Transfer} event with `from` set to the zero address. * * Requirements: * * - `to` cannot be the zero address. */ function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); } /** * @dev Destroys `amount` tokens from `account`, reducing the * total supply. * * Emits a {Transfer} event with `to` set to the zero address. * * Requirements: * * - `account` cannot be the zero address. * - `account` must have at least `amount` tokens. */ function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); _balances[account] = accountBalance - amount; _totalSupply -= amount; emit Transfer(account, address(0), amount); } /** * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens. * * This internal function is equivalent to `approve`, and can be used to * e.g. set automatic allowances for certain subsystems, etc. * * Emits an {Approval} event. * * Requirements: * * - `owner` cannot be the zero address. * - `spender` cannot be the zero address. */ function _approve(address owner, address spender, uint256 amount) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } /** * @dev Hook that is called before any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * will be to transferred to `to`. * - when `from` is zero, `amount` tokens will be minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens will be burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); }
// SPDX-License-Identifier: MIT 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) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } }
pragma solidity >=0.5.0; interface IUniswapV2Factory { event PairCreated(address indexed token0, address indexed token1, address pair, uint); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint) external view returns (address pair); function allPairsLength() external view returns (uint); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; }
pragma solidity >=0.6.2; interface IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function removeLiquidity( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB); function removeLiquidityETH( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountToken, uint amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountA, uint amountB); function removeLiquidityETHWithPermit( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountToken, uint amountETH); function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapTokensForExactTokens( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB); function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut); function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn); function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts); }
pragma solidity >=0.6.2; import './IUniswapV2Router01.sol'; interface IUniswapV2Router02 is IUniswapV2Router01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountETH); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; }
{ "remappings": [], "optimizer": { "enabled": true, "runs": 999999 }, "evmVersion": "istanbul", "libraries": {}, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "abi" ] } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_uniV2Router","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"uint256","name":"totalSupply","type":"uint256"},{"internalType":"uint256","name":"uniV2TokenLiquidity","type":"uint256"}],"name":"createToken","outputs":[{"internalType":"address","name":"token","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address[]","name":"_tiers","type":"address[]"}],"name":"createUniV2TokenETHPairWithTiers","outputs":[{"internalType":"address","name":"pair","type":"address"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lastTier","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"swapETHForTokens","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"tiers","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"tokens","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniV2Router","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b506040516131bb3803806131bb83398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610082565b600060208284031215610065578081fd5b81516001600160a01b038116811461007b578182fd5b9392505050565b61312a806100916000396000f3fe6080604052600436106200007a5760003560e01c8063758c30b51162000055578063758c30b51462000115578063958c2e52146200012e578063df1e4e391462000146578063fcf979ab146200016b576200007a565b80631d83a7bc146200007f5780634f64b2be14620000bc5780635586a42e14620000f0575b600080fd5b3480156200008c57600080fd5b50620000a46200009e36600462000f6b565b62000182565b604051620000b391906200138e565b60405180910390f35b348015620000c957600080fd5b50620000e1620000db366004620011b2565b620001a2565b604051620000b391906200127e565b348015620000fd57600080fd5b50620000e16200010f36600462001069565b620001da565b6200012c6200012636600462000f26565b62000296565b005b3480156200013b57600080fd5b50620000e162000700565b3480156200015357600080fd5b50620000e16200016536600462000f26565b6200071c565b620000e16200017c36600462000fa8565b62000744565b600260209081526000928352604080842090915290825290205460ff1681565b60018181548110620001b357600080fd5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b60008585858585604051620001ef9062000e88565b620001ff959493929190620012c6565b604051809103906000f0801580156200021c573d6000803e3d6000fd5b506001805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83161790559695505050505050565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260026020908152604080832033845290915290205460ff16151560011462000311576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000308906200141e565b60405180910390fd5b6040517f0dd0a04200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821690630dd0a0429062000366906000906004016200138e565b600060405180830381600087803b1580156200038157600080fd5b505af115801562000396573d6000803e3d6000fd5b506000925060029150620003a79050565b604051908082528060200260200182016040528015620003d1578160200160208202803683370190505b50905060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200043b57600080fd5b505afa15801562000450573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000476919062000f4c565b81600081518110620004b1577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050818160018151811062000527577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff92831660209182029290920101526000805490911690637ff36ab590349084336200056b426201518062001506565b6040518663ffffffff1660e01b81526004016200058c949392919062001399565b6000604051808303818588803b158015620005a657600080fd5b505af1158015620005bb573d6000803e3d6000fd5b50505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052620006049190810190620010f7565b5073ffffffffffffffffffffffffffffffffffffffff80831660008181526002602090815260408083203380855290835281842080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055938352600390915290205490911614620006fc576040517f0dd0a04200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff831690630dd0a04290620006c7906001906004016200138e565b600060405180830381600087803b158015620006e257600080fd5b505af1158015620006f7573d6000803e3d6000fd5b505050505b5050565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60036020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60003373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015620007a457600080fd5b505afa158015620007b9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620007df919062000f4c565b73ffffffffffffffffffffffffffffffffffffffff1614801562000828575073ffffffffffffffffffffffffffffffffffffffff83811660009081526003602052604090205416155b62000861576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003089062001455565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff8516906370a0823190620008b89030906004016200127e565b60206040518083038186803b158015620008d157600080fd5b505afa158015620008e6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200090c9190620011cb565b6000546040517f095ea7b300000000000000000000000000000000000000000000000000000000815291925073ffffffffffffffffffffffffffffffffffffffff8087169263095ea7b39262000969921690859060040162001320565b602060405180830381600087803b1580156200098457600080fd5b505af115801562000999573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620009bf919062001190565b5060005473ffffffffffffffffffffffffffffffffffffffff1663f305d719348684808333620009f3426201518062001506565b6040518863ffffffff1660e01b815260040162000a169695949392919062001346565b6060604051808303818588803b15801562000a3057600080fd5b505af115801562000a45573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019062000a6c9190620011e4565b50505060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801562000ad657600080fd5b505afa15801562000aeb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000b11919062000f4c565b73ffffffffffffffffffffffffffffffffffffffff1663e6a439058560008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801562000b9457600080fd5b505afa15801562000ba9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000bcf919062000f4c565b6040518363ffffffff1660e01b815260040162000bee9291906200129f565b60206040518083038186803b15801562000c0757600080fd5b505afa15801562000c1c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000c42919062000f4c565b6040517f0dd0a04200000000000000000000000000000000000000000000000000000000815290925073ffffffffffffffffffffffffffffffffffffffff851690630dd0a0429062000c9a906001906004016200138e565b600060405180830381600087803b15801562000cb557600080fd5b505af115801562000cca573d6000803e3d6000fd5b5050505060005b835181101562000db25773ffffffffffffffffffffffffffffffffffffffff8516600090815260026020526040812085516001929087908590811062000d40577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60209081029190910181015173ffffffffffffffffffffffffffffffffffffffff16825281019190915260400160002080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169115159190911790558062000da9816200153b565b91505062000cd1565b50826001845162000dc4919062001521565b8151811062000dfc577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505092915050565b611af980620015fc83390190565b600082601f83011262000ea7578081fd5b813567ffffffffffffffff81111562000ec45762000ec4620015a6565b62000ef760207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601620014b2565b81815284602083860101111562000f0c578283fd5b816020850160208301379081016020019190915292915050565b60006020828403121562000f38578081fd5b813562000f4581620015d5565b9392505050565b60006020828403121562000f5e578081fd5b815162000f4581620015d5565b6000806040838503121562000f7e578081fd5b823562000f8b81620015d5565b9150602083013562000f9d81620015d5565b809150509250929050565b6000806040838503121562000fbb578182fd5b823562000fc881620015d5565b915060208381013567ffffffffffffffff81111562000fe5578283fd5b8401601f8101861362000ff6578283fd5b80356200100d6200100782620014df565b620014b2565b81815283810190838501858402850186018a10156200102a578687fd5b8694505b83851015620010595780356200104481620015d5565b8352600194909401939185019185016200102e565b5080955050505050509250929050565b600080600080600060a0868803121562001081578081fd5b85356200108e81620015d5565b9450602086013567ffffffffffffffff80821115620010ab578283fd5b620010b989838a0162000e96565b95506040880135915080821115620010cf578283fd5b50620010de8882890162000e96565b9598949750949560608101359550608001359392505050565b600060208083850312156200110a578182fd5b825167ffffffffffffffff81111562001121578283fd5b8301601f8101851362001132578283fd5b8051620011436200100782620014df565b818152838101908385018584028501860189101562001160578687fd5b8694505b838510156200118457805183526001949094019391850191850162001164565b50979650505050505050565b600060208284031215620011a2578081fd5b8151801515811462000f45578182fd5b600060208284031215620011c4578081fd5b5035919050565b600060208284031215620011dd578081fd5b5051919050565b600080600060608486031215620011f9578283fd5b8351925060208401519150604084015190509250925092565b60008151808452815b8181101562001239576020818501810151868301820152016200121b565b818111156200124b5782602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b73ffffffffffffffffffffffffffffffffffffffff92831681529116602082015260400190565b600073ffffffffffffffffffffffffffffffffffffffff8716825260a06020830152620012f760a083018762001212565b82810360408401526200130b818762001212565b60608401959095525050608001529392505050565b73ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b73ffffffffffffffffffffffffffffffffffffffff9687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b901515815260200190565b600060808201868352602060808185015281875180845260a0860191508289019350845b81811015620013f157845173ffffffffffffffffffffffffffffffffffffffff1683529383019391830191600101620013bd565b505073ffffffffffffffffffffffffffffffffffffffff9690961660408501525050506060015292915050565b6020808252601d908201527f4f6e6c7920746965722063616e2063616c6c2074686973206f6e63652e000000604082015260600190565b60208082526024908201527f4f6e6c7920746f6b656e206f776e65722063616e2063616c6c2074686973206f60408201527f6e63652e00000000000000000000000000000000000000000000000000000000606082015260800190565b60405181810167ffffffffffffffff81118282101715620014d757620014d7620015a6565b604052919050565b600067ffffffffffffffff821115620014fc57620014fc620015a6565b5060209081020190565b600082198211156200151c576200151c62001577565b500190565b60008282101562001536576200153662001577565b500390565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141562001570576200157062001577565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff81168114620015f857600080fd5b5056fe60806040523480156200001157600080fd5b5060405162001af938038062001af9833981016040819052620000349162000445565b8351849084906200004d906003906020850190620002f4565b50805162000063906004906020840190620002f4565b5050506000620000786200010960201b60201c565b600580546001600160a01b0319166001600160a01b0383169081179091556040519192509060009060008051602062001ad9833981519152908290a350600680546001600160a01b03191633179055620000de85620000d88385620005de565b6200010d565b620000f3620000ec62000109565b826200010d565b620000fe85620001e1565b505050505062000661565b3390565b6001600160a01b0382166200013f5760405162461bcd60e51b8152600401620001369062000583565b60405180910390fd5b6200014d600083836200029b565b8060026000828254620001619190620005c3565b90915550506001600160a01b0382166000908152602081905260408120805483929062000190908490620005c3565b90915550506040516001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90620001d5908590620005ba565b60405180910390a35050565b620001eb62000109565b6001600160a01b0316620001fe620002e5565b6001600160a01b031614620002275760405162461bcd60e51b815260040162000136906200054e565b6001600160a01b038116620002505760405162461bcd60e51b81526004016200013690620004de565b6005546040516001600160a01b0380841692169060008051602062001ad983398151915290600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b620002b3838383620002e060201b620008ea1760201c565b600654600160a01b900460ff1615620002e05760405162461bcd60e51b8152600401620001369062000524565b505050565b6005546001600160a01b031690565b8280546200030290620005f8565b90600052602060002090601f01602090048101928262000326576000855562000371565b82601f106200034157805160ff191683800117855562000371565b8280016001018555821562000371579182015b828111156200037157825182559160200191906001019062000354565b506200037f92915062000383565b5090565b5b808211156200037f576000815560010162000384565b600082601f830112620003ab578081fd5b81516001600160401b0380821115620003c857620003c86200064b565b6040516020601f8401601f1916820181018381118382101715620003f057620003f06200064b565b604052838252858401810187101562000407578485fd5b8492505b838310156200042a57858301810151828401820152918201916200040b565b838311156200043b57848185840101525b5095945050505050565b600080600080600060a086880312156200045d578081fd5b85516001600160a01b038116811462000474578182fd5b60208701519095506001600160401b038082111562000491578283fd5b6200049f89838a016200039a565b95506040880151915080821115620004b5578283fd5b50620004c4888289016200039a565b606088015160809098015196999598509695949350505050565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526010908201526f2a37b5b2b71034b9903637b1b5b2b21760811b604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252601f908201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604082015260600190565b90815260200190565b60008219821115620005d957620005d962000635565b500190565b600082821015620005f357620005f362000635565b500390565b6002810460018216806200060d57607f821691505b602082108114156200062f57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b61146880620006716000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c806370a0823111610097578063a457c2d711610066578063a457c2d7146101f3578063a9059cbb14610206578063dd62ed3e14610219578063f2fde38b1461022c57610100565b806370a08231146101bb578063715018a6146101ce5780638da5cb5b146101d657806395d89b41146101eb57610100565b806323b872dd116100d357806323b872dd1461016d578063313ce56714610180578063395093511461019557806342966c68146101a857610100565b806306fdde0314610105578063095ea7b3146101235780630dd0a0421461014357806318160ddd14610158575b600080fd5b61010d61023f565b60405161011a9190610eb3565b60405180910390f35b610136610131366004610e26565b6102d1565b60405161011a9190610ea8565b610156610151366004610e4f565b6102ee565b005b6101606103af565b60405161011a9190611369565b61013661017b366004610deb565b6103b5565b61018861048d565b60405161011a9190611372565b6101366101a3366004610e26565b610492565b6101566101b6366004610e6f565b6104ee565b6101606101c9366004610d98565b610575565b6101566105a1565b6101de610683565b60405161011a9190610e87565b61010d61069f565b610136610201366004610e26565b6106ae565b610136610214366004610e26565b610750565b610160610227366004610db9565b610764565b61015661023a366004610d98565b61079c565b60606003805461024e906113af565b80601f016020809104026020016040519081016040528092919081815260200182805461027a906113af565b80156102c75780601f1061029c576101008083540402835291602001916102c7565b820191906000526020600020905b8154815290600101906020018083116102aa57829003601f168201915b5050505050905090565b60006102e56102de6108ef565b84846108f3565b50600192915050565b60065473ffffffffffffffffffffffffffffffffffffffff1661030f6108ef565b73ffffffffffffffffffffffffffffffffffffffff1614610365576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035c9061112c565b60405180910390fd5b6006805491151574010000000000000000000000000000000000000000027fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff909216919091179055565b60025490565b60006103c2848484610a02565b73ffffffffffffffffffffffffffffffffffffffff84166000908152600160205260408120816103f06108ef565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610467576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035c90611163565b610482856104736108ef565b61047d8685611398565b6108f3565b506001949350505050565b601290565b60006102e561049f6108ef565b8484600160006104ad6108ef565b73ffffffffffffffffffffffffffffffffffffffff908116825260208083019390935260409182016000908120918b168152925290205461047d9190611380565b6104f66108ef565b73ffffffffffffffffffffffffffffffffffffffff16610514610683565b73ffffffffffffffffffffffffffffffffffffffff1614610561576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035c906111c0565b61057261056c6108ef565b82610bc6565b50565b73ffffffffffffffffffffffffffffffffffffffff81166000908152602081905260409020545b919050565b6105a96108ef565b73ffffffffffffffffffffffffffffffffffffffff166105c7610683565b73ffffffffffffffffffffffffffffffffffffffff1614610614576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035c906111c0565b60055460405160009173ffffffffffffffffffffffffffffffffffffffff16907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b60055473ffffffffffffffffffffffffffffffffffffffff1690565b60606004805461024e906113af565b600080600160006106bd6108ef565b73ffffffffffffffffffffffffffffffffffffffff90811682526020808301939093526040918201600090812091881681529252902054905082811015610730576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035c9061130c565b61074661073b6108ef565b8561047d8685611398565b5060019392505050565b60006102e561075d6108ef565b8484610a02565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b6107a46108ef565b73ffffffffffffffffffffffffffffffffffffffff166107c2610683565b73ffffffffffffffffffffffffffffffffffffffff161461080f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035c906111c0565b73ffffffffffffffffffffffffffffffffffffffff811661085c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035c90610fde565b60055460405173ffffffffffffffffffffffffffffffffffffffff8084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b505050565b3390565b73ffffffffffffffffffffffffffffffffffffffff8316610940576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035c906112af565b73ffffffffffffffffffffffffffffffffffffffff821661098d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035c9061103b565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906109f5908590611369565b60405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316610a4f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035c90611252565b73ffffffffffffffffffffffffffffffffffffffff8216610a9c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035c90610f24565b610aa7838383610d14565b73ffffffffffffffffffffffffffffffffffffffff831660009081526020819052604090205481811015610b07576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035c906110cf565b610b118282611398565b73ffffffffffffffffffffffffffffffffffffffff8086166000908152602081905260408082209390935590851681529081208054849290610b54908490611380565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610bb89190611369565b60405180910390a350505050565b73ffffffffffffffffffffffffffffffffffffffff8216610c13576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035c906111f5565b610c1f82600083610d14565b73ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604090205481811015610c7f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035c90610f81565b610c898282611398565b73ffffffffffffffffffffffffffffffffffffffff841660009081526020819052604081209190915560028054849290610cc4908490611398565b909155505060405160009073ffffffffffffffffffffffffffffffffffffffff8516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906109f5908690611369565b610d1f8383836108ea565b60065474010000000000000000000000000000000000000000900460ff16156108ea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035c90611098565b803573ffffffffffffffffffffffffffffffffffffffff8116811461059c57600080fd5b600060208284031215610da9578081fd5b610db282610d74565b9392505050565b60008060408385031215610dcb578081fd5b610dd483610d74565b9150610de260208401610d74565b90509250929050565b600080600060608486031215610dff578081fd5b610e0884610d74565b9250610e1660208501610d74565b9150604084013590509250925092565b60008060408385031215610e38578182fd5b610e4183610d74565b946020939093013593505050565b600060208284031215610e60578081fd5b81358015158114610db2578182fd5b600060208284031215610e80578081fd5b5035919050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b901515815260200190565b6000602080835283518082850152825b81811015610edf57858101830151858201604001528201610ec3565b81811115610ef05783604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201527f6573730000000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526022908201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60408201527f6365000000000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201527f6464726573730000000000000000000000000000000000000000000000000000606082015260800190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560408201527f7373000000000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526010908201527f546f6b656e206973206c6f636b65642e00000000000000000000000000000000604082015260600190565b60208082526026908201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260408201527f616c616e63650000000000000000000000000000000000000000000000000000606082015260800190565b6020808252601b908201527f4f6e6c7920666163746f72792063616e2063616c6c20746869732e0000000000604082015260600190565b60208082526028908201527f45524332303a207472616e7366657220616d6f756e742065786365656473206160408201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526021908201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360408201527f7300000000000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460408201527f6472657373000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460408201527f7265737300000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526025908201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760408201527f207a65726f000000000000000000000000000000000000000000000000000000606082015260800190565b90815260200190565b60ff91909116815260200190565b6000821982111561139357611393611403565b500190565b6000828210156113aa576113aa611403565b500390565b6002810460018216806113c357607f821691505b602082108114156113fd577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea2646970667358221220f06368b2e4240eb9c058ad340292e531ff5c5a86230b1707e248934c09609ec764736f6c634300080000338be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0a264697066735822122060fa2431e55132852b9300afdb4c52de280e4c6d5a17b9b28bfe6b72ff44d7a764736f6c634300080000330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Deployed Bytecode
0x6080604052600436106200007a5760003560e01c8063758c30b51162000055578063758c30b51462000115578063958c2e52146200012e578063df1e4e391462000146578063fcf979ab146200016b576200007a565b80631d83a7bc146200007f5780634f64b2be14620000bc5780635586a42e14620000f0575b600080fd5b3480156200008c57600080fd5b50620000a46200009e36600462000f6b565b62000182565b604051620000b391906200138e565b60405180910390f35b348015620000c957600080fd5b50620000e1620000db366004620011b2565b620001a2565b604051620000b391906200127e565b348015620000fd57600080fd5b50620000e16200010f36600462001069565b620001da565b6200012c6200012636600462000f26565b62000296565b005b3480156200013b57600080fd5b50620000e162000700565b3480156200015357600080fd5b50620000e16200016536600462000f26565b6200071c565b620000e16200017c36600462000fa8565b62000744565b600260209081526000928352604080842090915290825290205460ff1681565b60018181548110620001b357600080fd5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b60008585858585604051620001ef9062000e88565b620001ff959493929190620012c6565b604051809103906000f0801580156200021c573d6000803e3d6000fd5b506001805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83161790559695505050505050565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260026020908152604080832033845290915290205460ff16151560011462000311576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000308906200141e565b60405180910390fd5b6040517f0dd0a04200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821690630dd0a0429062000366906000906004016200138e565b600060405180830381600087803b1580156200038157600080fd5b505af115801562000396573d6000803e3d6000fd5b506000925060029150620003a79050565b604051908082528060200260200182016040528015620003d1578160200160208202803683370190505b50905060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200043b57600080fd5b505afa15801562000450573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000476919062000f4c565b81600081518110620004b1577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050818160018151811062000527577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff92831660209182029290920101526000805490911690637ff36ab590349084336200056b426201518062001506565b6040518663ffffffff1660e01b81526004016200058c949392919062001399565b6000604051808303818588803b158015620005a657600080fd5b505af1158015620005bb573d6000803e3d6000fd5b50505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052620006049190810190620010f7565b5073ffffffffffffffffffffffffffffffffffffffff80831660008181526002602090815260408083203380855290835281842080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055938352600390915290205490911614620006fc576040517f0dd0a04200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff831690630dd0a04290620006c7906001906004016200138e565b600060405180830381600087803b158015620006e257600080fd5b505af1158015620006f7573d6000803e3d6000fd5b505050505b5050565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60036020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60003373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015620007a457600080fd5b505afa158015620007b9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620007df919062000f4c565b73ffffffffffffffffffffffffffffffffffffffff1614801562000828575073ffffffffffffffffffffffffffffffffffffffff83811660009081526003602052604090205416155b62000861576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003089062001455565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff8516906370a0823190620008b89030906004016200127e565b60206040518083038186803b158015620008d157600080fd5b505afa158015620008e6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200090c9190620011cb565b6000546040517f095ea7b300000000000000000000000000000000000000000000000000000000815291925073ffffffffffffffffffffffffffffffffffffffff8087169263095ea7b39262000969921690859060040162001320565b602060405180830381600087803b1580156200098457600080fd5b505af115801562000999573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620009bf919062001190565b5060005473ffffffffffffffffffffffffffffffffffffffff1663f305d719348684808333620009f3426201518062001506565b6040518863ffffffff1660e01b815260040162000a169695949392919062001346565b6060604051808303818588803b15801562000a3057600080fd5b505af115801562000a45573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019062000a6c9190620011e4565b50505060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801562000ad657600080fd5b505afa15801562000aeb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000b11919062000f4c565b73ffffffffffffffffffffffffffffffffffffffff1663e6a439058560008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801562000b9457600080fd5b505afa15801562000ba9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000bcf919062000f4c565b6040518363ffffffff1660e01b815260040162000bee9291906200129f565b60206040518083038186803b15801562000c0757600080fd5b505afa15801562000c1c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000c42919062000f4c565b6040517f0dd0a04200000000000000000000000000000000000000000000000000000000815290925073ffffffffffffffffffffffffffffffffffffffff851690630dd0a0429062000c9a906001906004016200138e565b600060405180830381600087803b15801562000cb557600080fd5b505af115801562000cca573d6000803e3d6000fd5b5050505060005b835181101562000db25773ffffffffffffffffffffffffffffffffffffffff8516600090815260026020526040812085516001929087908590811062000d40577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60209081029190910181015173ffffffffffffffffffffffffffffffffffffffff16825281019190915260400160002080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169115159190911790558062000da9816200153b565b91505062000cd1565b50826001845162000dc4919062001521565b8151811062000dfc577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505092915050565b611af980620015fc83390190565b600082601f83011262000ea7578081fd5b813567ffffffffffffffff81111562000ec45762000ec4620015a6565b62000ef760207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601620014b2565b81815284602083860101111562000f0c578283fd5b816020850160208301379081016020019190915292915050565b60006020828403121562000f38578081fd5b813562000f4581620015d5565b9392505050565b60006020828403121562000f5e578081fd5b815162000f4581620015d5565b6000806040838503121562000f7e578081fd5b823562000f8b81620015d5565b9150602083013562000f9d81620015d5565b809150509250929050565b6000806040838503121562000fbb578182fd5b823562000fc881620015d5565b915060208381013567ffffffffffffffff81111562000fe5578283fd5b8401601f8101861362000ff6578283fd5b80356200100d6200100782620014df565b620014b2565b81815283810190838501858402850186018a10156200102a578687fd5b8694505b83851015620010595780356200104481620015d5565b8352600194909401939185019185016200102e565b5080955050505050509250929050565b600080600080600060a0868803121562001081578081fd5b85356200108e81620015d5565b9450602086013567ffffffffffffffff80821115620010ab578283fd5b620010b989838a0162000e96565b95506040880135915080821115620010cf578283fd5b50620010de8882890162000e96565b9598949750949560608101359550608001359392505050565b600060208083850312156200110a578182fd5b825167ffffffffffffffff81111562001121578283fd5b8301601f8101851362001132578283fd5b8051620011436200100782620014df565b818152838101908385018584028501860189101562001160578687fd5b8694505b838510156200118457805183526001949094019391850191850162001164565b50979650505050505050565b600060208284031215620011a2578081fd5b8151801515811462000f45578182fd5b600060208284031215620011c4578081fd5b5035919050565b600060208284031215620011dd578081fd5b5051919050565b600080600060608486031215620011f9578283fd5b8351925060208401519150604084015190509250925092565b60008151808452815b8181101562001239576020818501810151868301820152016200121b565b818111156200124b5782602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b73ffffffffffffffffffffffffffffffffffffffff92831681529116602082015260400190565b600073ffffffffffffffffffffffffffffffffffffffff8716825260a06020830152620012f760a083018762001212565b82810360408401526200130b818762001212565b60608401959095525050608001529392505050565b73ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b73ffffffffffffffffffffffffffffffffffffffff9687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b901515815260200190565b600060808201868352602060808185015281875180845260a0860191508289019350845b81811015620013f157845173ffffffffffffffffffffffffffffffffffffffff1683529383019391830191600101620013bd565b505073ffffffffffffffffffffffffffffffffffffffff9690961660408501525050506060015292915050565b6020808252601d908201527f4f6e6c7920746965722063616e2063616c6c2074686973206f6e63652e000000604082015260600190565b60208082526024908201527f4f6e6c7920746f6b656e206f776e65722063616e2063616c6c2074686973206f60408201527f6e63652e00000000000000000000000000000000000000000000000000000000606082015260800190565b60405181810167ffffffffffffffff81118282101715620014d757620014d7620015a6565b604052919050565b600067ffffffffffffffff821115620014fc57620014fc620015a6565b5060209081020190565b600082198211156200151c576200151c62001577565b500190565b60008282101562001536576200153662001577565b500390565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141562001570576200157062001577565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff81168114620015f857600080fd5b5056fe60806040523480156200001157600080fd5b5060405162001af938038062001af9833981016040819052620000349162000445565b8351849084906200004d906003906020850190620002f4565b50805162000063906004906020840190620002f4565b5050506000620000786200010960201b60201c565b600580546001600160a01b0319166001600160a01b0383169081179091556040519192509060009060008051602062001ad9833981519152908290a350600680546001600160a01b03191633179055620000de85620000d88385620005de565b6200010d565b620000f3620000ec62000109565b826200010d565b620000fe85620001e1565b505050505062000661565b3390565b6001600160a01b0382166200013f5760405162461bcd60e51b8152600401620001369062000583565b60405180910390fd5b6200014d600083836200029b565b8060026000828254620001619190620005c3565b90915550506001600160a01b0382166000908152602081905260408120805483929062000190908490620005c3565b90915550506040516001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90620001d5908590620005ba565b60405180910390a35050565b620001eb62000109565b6001600160a01b0316620001fe620002e5565b6001600160a01b031614620002275760405162461bcd60e51b815260040162000136906200054e565b6001600160a01b038116620002505760405162461bcd60e51b81526004016200013690620004de565b6005546040516001600160a01b0380841692169060008051602062001ad983398151915290600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b620002b3838383620002e060201b620008ea1760201c565b600654600160a01b900460ff1615620002e05760405162461bcd60e51b8152600401620001369062000524565b505050565b6005546001600160a01b031690565b8280546200030290620005f8565b90600052602060002090601f01602090048101928262000326576000855562000371565b82601f106200034157805160ff191683800117855562000371565b8280016001018555821562000371579182015b828111156200037157825182559160200191906001019062000354565b506200037f92915062000383565b5090565b5b808211156200037f576000815560010162000384565b600082601f830112620003ab578081fd5b81516001600160401b0380821115620003c857620003c86200064b565b6040516020601f8401601f1916820181018381118382101715620003f057620003f06200064b565b604052838252858401810187101562000407578485fd5b8492505b838310156200042a57858301810151828401820152918201916200040b565b838311156200043b57848185840101525b5095945050505050565b600080600080600060a086880312156200045d578081fd5b85516001600160a01b038116811462000474578182fd5b60208701519095506001600160401b038082111562000491578283fd5b6200049f89838a016200039a565b95506040880151915080821115620004b5578283fd5b50620004c4888289016200039a565b606088015160809098015196999598509695949350505050565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526010908201526f2a37b5b2b71034b9903637b1b5b2b21760811b604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252601f908201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604082015260600190565b90815260200190565b60008219821115620005d957620005d962000635565b500190565b600082821015620005f357620005f362000635565b500390565b6002810460018216806200060d57607f821691505b602082108114156200062f57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b61146880620006716000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c806370a0823111610097578063a457c2d711610066578063a457c2d7146101f3578063a9059cbb14610206578063dd62ed3e14610219578063f2fde38b1461022c57610100565b806370a08231146101bb578063715018a6146101ce5780638da5cb5b146101d657806395d89b41146101eb57610100565b806323b872dd116100d357806323b872dd1461016d578063313ce56714610180578063395093511461019557806342966c68146101a857610100565b806306fdde0314610105578063095ea7b3146101235780630dd0a0421461014357806318160ddd14610158575b600080fd5b61010d61023f565b60405161011a9190610eb3565b60405180910390f35b610136610131366004610e26565b6102d1565b60405161011a9190610ea8565b610156610151366004610e4f565b6102ee565b005b6101606103af565b60405161011a9190611369565b61013661017b366004610deb565b6103b5565b61018861048d565b60405161011a9190611372565b6101366101a3366004610e26565b610492565b6101566101b6366004610e6f565b6104ee565b6101606101c9366004610d98565b610575565b6101566105a1565b6101de610683565b60405161011a9190610e87565b61010d61069f565b610136610201366004610e26565b6106ae565b610136610214366004610e26565b610750565b610160610227366004610db9565b610764565b61015661023a366004610d98565b61079c565b60606003805461024e906113af565b80601f016020809104026020016040519081016040528092919081815260200182805461027a906113af565b80156102c75780601f1061029c576101008083540402835291602001916102c7565b820191906000526020600020905b8154815290600101906020018083116102aa57829003601f168201915b5050505050905090565b60006102e56102de6108ef565b84846108f3565b50600192915050565b60065473ffffffffffffffffffffffffffffffffffffffff1661030f6108ef565b73ffffffffffffffffffffffffffffffffffffffff1614610365576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035c9061112c565b60405180910390fd5b6006805491151574010000000000000000000000000000000000000000027fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff909216919091179055565b60025490565b60006103c2848484610a02565b73ffffffffffffffffffffffffffffffffffffffff84166000908152600160205260408120816103f06108ef565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610467576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035c90611163565b610482856104736108ef565b61047d8685611398565b6108f3565b506001949350505050565b601290565b60006102e561049f6108ef565b8484600160006104ad6108ef565b73ffffffffffffffffffffffffffffffffffffffff908116825260208083019390935260409182016000908120918b168152925290205461047d9190611380565b6104f66108ef565b73ffffffffffffffffffffffffffffffffffffffff16610514610683565b73ffffffffffffffffffffffffffffffffffffffff1614610561576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035c906111c0565b61057261056c6108ef565b82610bc6565b50565b73ffffffffffffffffffffffffffffffffffffffff81166000908152602081905260409020545b919050565b6105a96108ef565b73ffffffffffffffffffffffffffffffffffffffff166105c7610683565b73ffffffffffffffffffffffffffffffffffffffff1614610614576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035c906111c0565b60055460405160009173ffffffffffffffffffffffffffffffffffffffff16907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b60055473ffffffffffffffffffffffffffffffffffffffff1690565b60606004805461024e906113af565b600080600160006106bd6108ef565b73ffffffffffffffffffffffffffffffffffffffff90811682526020808301939093526040918201600090812091881681529252902054905082811015610730576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035c9061130c565b61074661073b6108ef565b8561047d8685611398565b5060019392505050565b60006102e561075d6108ef565b8484610a02565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b6107a46108ef565b73ffffffffffffffffffffffffffffffffffffffff166107c2610683565b73ffffffffffffffffffffffffffffffffffffffff161461080f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035c906111c0565b73ffffffffffffffffffffffffffffffffffffffff811661085c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035c90610fde565b60055460405173ffffffffffffffffffffffffffffffffffffffff8084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b505050565b3390565b73ffffffffffffffffffffffffffffffffffffffff8316610940576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035c906112af565b73ffffffffffffffffffffffffffffffffffffffff821661098d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035c9061103b565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906109f5908590611369565b60405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316610a4f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035c90611252565b73ffffffffffffffffffffffffffffffffffffffff8216610a9c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035c90610f24565b610aa7838383610d14565b73ffffffffffffffffffffffffffffffffffffffff831660009081526020819052604090205481811015610b07576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035c906110cf565b610b118282611398565b73ffffffffffffffffffffffffffffffffffffffff8086166000908152602081905260408082209390935590851681529081208054849290610b54908490611380565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610bb89190611369565b60405180910390a350505050565b73ffffffffffffffffffffffffffffffffffffffff8216610c13576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035c906111f5565b610c1f82600083610d14565b73ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604090205481811015610c7f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035c90610f81565b610c898282611398565b73ffffffffffffffffffffffffffffffffffffffff841660009081526020819052604081209190915560028054849290610cc4908490611398565b909155505060405160009073ffffffffffffffffffffffffffffffffffffffff8516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906109f5908690611369565b610d1f8383836108ea565b60065474010000000000000000000000000000000000000000900460ff16156108ea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035c90611098565b803573ffffffffffffffffffffffffffffffffffffffff8116811461059c57600080fd5b600060208284031215610da9578081fd5b610db282610d74565b9392505050565b60008060408385031215610dcb578081fd5b610dd483610d74565b9150610de260208401610d74565b90509250929050565b600080600060608486031215610dff578081fd5b610e0884610d74565b9250610e1660208501610d74565b9150604084013590509250925092565b60008060408385031215610e38578182fd5b610e4183610d74565b946020939093013593505050565b600060208284031215610e60578081fd5b81358015158114610db2578182fd5b600060208284031215610e80578081fd5b5035919050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b901515815260200190565b6000602080835283518082850152825b81811015610edf57858101830151858201604001528201610ec3565b81811115610ef05783604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201527f6573730000000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526022908201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60408201527f6365000000000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201527f6464726573730000000000000000000000000000000000000000000000000000606082015260800190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560408201527f7373000000000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526010908201527f546f6b656e206973206c6f636b65642e00000000000000000000000000000000604082015260600190565b60208082526026908201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260408201527f616c616e63650000000000000000000000000000000000000000000000000000606082015260800190565b6020808252601b908201527f4f6e6c7920666163746f72792063616e2063616c6c20746869732e0000000000604082015260600190565b60208082526028908201527f45524332303a207472616e7366657220616d6f756e742065786365656473206160408201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526021908201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360408201527f7300000000000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460408201527f6472657373000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460408201527f7265737300000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526025908201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760408201527f207a65726f000000000000000000000000000000000000000000000000000000606082015260800190565b90815260200190565b60ff91909116815260200190565b6000821982111561139357611393611403565b500190565b6000828210156113aa576113aa611403565b500390565b6002810460018216806113c357607f821691505b602082108114156113fd577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea2646970667358221220f06368b2e4240eb9c058ad340292e531ff5c5a86230b1707e248934c09609ec764736f6c634300080000338be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0a264697066735822122060fa2431e55132852b9300afdb4c52de280e4c6d5a17b9b28bfe6b72ff44d7a764736f6c63430008000033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
-----Decoded View---------------
Arg [0] : _uniV2Router (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ 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.