ETH Price: $2,625.52 (-0.64%)

Token

Gates Syndicate (GATES)
 

Overview

Max Total Supply

10,000,000 GATES

Holders

156

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
7,812.5 GATES

Value
$0.00
0x5a86937c7b15833438daececc59449f1403d9576
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
Gates

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, GNU AGPLv3 license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-07-15
*/

// SPDX-License-Identifier: AGPL-3.0-only
pragma solidity 0.8.19;

/// @notice Simple single owner authorization mixin.
/// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/auth/Owned.sol)
abstract contract Owned {
    /*//////////////////////////////////////////////////////////////
                                 EVENTS
    //////////////////////////////////////////////////////////////*/

    event OwnershipTransferred(address indexed user, address indexed newOwner);

    /*//////////////////////////////////////////////////////////////
                            OWNERSHIP STORAGE
    //////////////////////////////////////////////////////////////*/

    address public owner;

    modifier onlyOwner() virtual {
        require(msg.sender == owner, "UNAUTHORIZED");

        _;
    }

    /*//////////////////////////////////////////////////////////////
                               CONSTRUCTOR
    //////////////////////////////////////////////////////////////*/

    constructor(address _owner) {
        owner = _owner;

        emit OwnershipTransferred(address(0), _owner);
    }

    /*//////////////////////////////////////////////////////////////
                             OWNERSHIP LOGIC
    //////////////////////////////////////////////////////////////*/

    function transferOwnership(address newOwner) public virtual onlyOwner {
        owner = newOwner;

        emit OwnershipTransferred(msg.sender, newOwner);
    }
}

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);
}

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;
}

// Homepage: https://gates.biz/
// Twitter: https://twitter.com/GatesSyndicate
// Telegram: https://t.me/GatesPortal
// Litepaper: https://docs.gates.biz/

/// @notice Anti bot token
/// @author fico23
/// @author Modified from Solmate (https://github.com/transmissions11/solmate/blob/main/src/tokens/ERC20.sol)
contract Gates is Owned {
    /*//////////////////////////////////////////////////////////////
                                 EVENTS
    //////////////////////////////////////////////////////////////*/

    event Transfer(address indexed from, address indexed to, uint256 amount);

    event Approval(address indexed owner, address indexed spender, uint256 amount);

    event IsAddressExcludedChanged(address indexed user, bool value);

    /*//////////////////////////////////////////////////////////////
                                 ERRORS
    //////////////////////////////////////////////////////////////*/
    error MaxBuyExceeded(uint256 maxBuy, uint256 amount);

    /*//////////////////////////////////////////////////////////////
                                 STRUCTS
    //////////////////////////////////////////////////////////////*/
    struct UserInfo {
        uint224 amount;
        uint32 minTaxOn;
    }

    /*//////////////////////////////////////////////////////////////
                            METADATA STORAGE
    //////////////////////////////////////////////////////////////*/

    string public name;

    string public symbol;

    uint8 public immutable decimals;

    /*//////////////////////////////////////////////////////////////
                              ERC20 STORAGE
    //////////////////////////////////////////////////////////////*/

    uint256 public totalSupply;

    mapping(address => UserInfo) private userInfo;

    mapping(address => mapping(address => uint256)) public allowance;

    /*//////////////////////////////////////////////////////////////
                            EIP-2612 STORAGE
    //////////////////////////////////////////////////////////////*/

    uint256 internal immutable INITIAL_CHAIN_ID;

    bytes32 internal immutable INITIAL_DOMAIN_SEPARATOR;

    mapping(address => uint256) public nonces;

    /*//////////////////////////////////////////////////////////////
                            TAX LOGIC
    //////////////////////////////////////////////////////////////*/
    mapping(address => bool) public isAddressExcluded;
    uint256 private constant MAX_TAX = 3000;
    uint256 private constant TAX_DURATION = 1 hours;
    uint256 private constant HUNDRED_PERCENT = 10000;
    address private immutable TREASURY;
    IUniswapV2Router02 private immutable router;
    address private immutable WETH;

    /*//////////////////////////////////////////////////////////////
                            ANTI-BOT MEASURES
    //////////////////////////////////////////////////////////////*/
    uint256 private constant MAX_BUY_ON_START = 1e23;
    uint256 private constant MAX_BUY_ON_END = 1e24;
    uint256 private constant MAX_BUY_DURATION = 15 minutes;
    uint256 private immutable MAX_BUY_END_TIME;
    uint256 private immutable MAX_BUY_DISABLED_TIME;

    /*//////////////////////////////////////////////////////////////
                               CONSTRUCTOR
    //////////////////////////////////////////////////////////////*/

    constructor(address treasury, address uniV2Router, address weth) Owned(msg.sender) {
        name = "Gates Syndicate";
        symbol = "GATES";
        decimals = 18;

        INITIAL_CHAIN_ID = block.chainid;
        INITIAL_DOMAIN_SEPARATOR = computeDomainSeparator();

        MAX_BUY_END_TIME = block.timestamp + MAX_BUY_DURATION;
        MAX_BUY_DISABLED_TIME = block.timestamp + 1 hours;

        _mint(msg.sender, 1e25);

        isAddressExcluded[msg.sender] = true;
        isAddressExcluded[treasury] = true;

        TREASURY = treasury;

        router = IUniswapV2Router02(uniV2Router);
        allowance[address(this)][uniV2Router] = type(uint256).max;

        WETH = weth;
    }

    /*//////////////////////////////////////////////////////////////
                               ERC20 LOGIC
    //////////////////////////////////////////////////////////////*/

    function balanceOf(address user) external view returns (uint256) {
        return userInfo[user].amount;
    }

    function approve(address spender, uint256 amount) public returns (bool) {
        allowance[msg.sender][spender] = amount;

        emit Approval(msg.sender, spender, amount);

        return true;
    }

    function transfer(address to, uint256 amount) public returns (bool) {
        UserInfo storage fromUser = userInfo[msg.sender];

        fromUser.amount = uint224(uint256(fromUser.amount) - amount);

        if (!isAddressExcluded[msg.sender]) {
            amount = _processTax(fromUser.minTaxOn, amount);
        }

        // Cannot overflow because the sum of all user
        // balances can't exceed the max uint224 value.
        // taxAmount is always less than amount
        unchecked {
            uint256 newAmount = amount + userInfo[to].amount;

            if (!isAddressExcluded[to]) {
                _revertOnMaxBuyExceeded(newAmount);
            }

            userInfo[to] = UserInfo({amount: uint224(newAmount), minTaxOn: uint32(block.timestamp + TAX_DURATION)});
        }

        emit Transfer(msg.sender, to, amount);

        return true;
    }

    function transferFrom(address from, address to, uint256 amount) public returns (bool) {
        uint256 allowed = allowance[from][msg.sender]; // Saves gas for limited approvals.

        if (allowed != type(uint256).max) allowance[from][msg.sender] = allowed - amount;

        UserInfo storage fromUser = userInfo[from];
        fromUser.amount = uint224(uint256(fromUser.amount) - amount);

        if (!isAddressExcluded[from]) {
            amount = _processTax(fromUser.minTaxOn, amount);
        }

        // Cannot overflow because the sum of all user
        // balances can't exceed the max uint224 value.
        // taxAmount is always less than amount
        unchecked {
            uint256 newAmount = amount + userInfo[to].amount;

            if (!isAddressExcluded[to]) {
                _revertOnMaxBuyExceeded(newAmount);
            }

            userInfo[to] = UserInfo({amount: uint224(newAmount), minTaxOn: uint32(block.timestamp + TAX_DURATION)});
        }

        emit Transfer(from, to, amount);

        return true;
    }

    /*//////////////////////////////////////////////////////////////
                             EIP-2612 LOGIC
    //////////////////////////////////////////////////////////////*/

    function permit(address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s)
        public
    {
        require(deadline >= block.timestamp, "PERMIT_DEADLINE_EXPIRED");

        // Unchecked because the only math done is incrementing
        // the owner's nonce which cannot realistically overflow.
        unchecked {
            address recoveredAddress = ecrecover(
                keccak256(
                    abi.encodePacked(
                        "\x19\x01",
                        DOMAIN_SEPARATOR(),
                        keccak256(
                            abi.encode(
                                keccak256(
                                    "Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)"
                                ),
                                owner,
                                spender,
                                value,
                                nonces[owner]++,
                                deadline
                            )
                        )
                    )
                ),
                v,
                r,
                s
            );

            require(recoveredAddress != address(0) && recoveredAddress == owner, "INVALID_SIGNER");

            allowance[recoveredAddress][spender] = value;
        }

        emit Approval(owner, spender, value);
    }

    function DOMAIN_SEPARATOR() public view returns (bytes32) {
        return block.chainid == INITIAL_CHAIN_ID ? INITIAL_DOMAIN_SEPARATOR : computeDomainSeparator();
    }

    function computeDomainSeparator() internal view returns (bytes32) {
        return keccak256(
            abi.encode(
                keccak256("EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"),
                keccak256(bytes(name)),
                keccak256("1"),
                block.chainid,
                address(this)
            )
        );
    }

    /*//////////////////////////////////////////////////////////////
                        INTERNALS
    //////////////////////////////////////////////////////////////*/

    function _mint(address to, uint256 amount) internal {
        totalSupply += amount;

        UserInfo storage user = userInfo[to];

        // Cannot overflow because the sum of all user
        // balances can't exceed the max uint256 value.
        unchecked {
            user.amount = uint224(uint256(user.amount) + amount);
            user.minTaxOn = uint32(block.timestamp + TAX_DURATION);
        }

        emit Transfer(address(0), to, amount);
    }

    function _processTax(uint256 minTaxOn, uint256 amount) internal returns (uint256) {
        if (minTaxOn <= block.timestamp) return amount;

        unchecked {
            // cant overflow because:
            // block.timestamp <= minTaxOn
            // all numbers are small enough for type(uint256).max
            uint256 taxAmount = MAX_TAX * (minTaxOn - block.timestamp) / TAX_DURATION * amount / HUNDRED_PERCENT;

            if (taxAmount != 0) {
                uint256 newAmount = taxAmount + userInfo[address(this)].amount;
                userInfo[address(this)].amount = uint224(newAmount);

                address[] memory path = new address[](2);
                path[0] = address(this);
                path[1] = WETH;

                try router.swapExactTokensForETH(newAmount, 0, path, TREASURY, block.timestamp) {
                    // SWAP was successful.
                } catch {
                    // Swap can fail if amount is too low, we dont want to handle it, next tax will sell everything together.
                }
            }

            return (amount - taxAmount);
        }
    }

    function _revertOnMaxBuyExceeded(uint256 newAmount) internal view {
        if (block.timestamp > MAX_BUY_DISABLED_TIME) {
            return;
        }

        if (block.timestamp > MAX_BUY_END_TIME) {
            if (newAmount > MAX_BUY_ON_END) revert MaxBuyExceeded(MAX_BUY_ON_END, newAmount);
        }

        unchecked {
            // cant overflow because:
            // MAX_BUY_ON_END > MAX_BUY_ON_START
            // MAX_BUY_END_TIME >= block.timestamp
            // all numbers are small enough for type(uint256).max
            uint256 maxBuyAmount = MAX_BUY_ON_END
                - (MAX_BUY_END_TIME - block.timestamp) * (MAX_BUY_ON_END - MAX_BUY_ON_START) / MAX_BUY_DURATION;

            if (maxBuyAmount < newAmount) revert MaxBuyExceeded(maxBuyAmount, newAmount);
        }
    }

    function maxBuy() external view returns (uint256) {
        if (block.timestamp > MAX_BUY_DISABLED_TIME) {
            return type(uint256).max;
        }

        if (block.timestamp > MAX_BUY_END_TIME) {
            return MAX_BUY_ON_END;
        }

        return MAX_BUY_ON_END
            - (MAX_BUY_END_TIME - block.timestamp) * (MAX_BUY_ON_END - MAX_BUY_ON_START) / MAX_BUY_DURATION;
    }

    function setIsAddressExcluded(address user, bool value) external onlyOwner {
        isAddressExcluded[user] = value;

        emit IsAddressExcludedChanged(user, value);
    }

    function renounceOwnership() external {
        transferOwnership(address(0));
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"treasury","type":"address"},{"internalType":"address","name":"uniV2Router","type":"address"},{"internalType":"address","name":"weth","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"maxBuy","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"MaxBuyExceeded","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":"amount","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"bool","name":"value","type":"bool"}],"name":"IsAddressExcludedChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","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":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isAddressExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setIsAddressExcluded","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

6101806040523480156200001257600080fd5b5060405162001991380380620019918339810160408190526200003591620002de565b600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060408051808201909152600f81526e47617465732053796e64696361746560881b6020820152600190620000ab9082620003cd565b50604080518082019091526005815264474154455360d81b6020820152600290620000d79082620003cd565b5060126080524660a052620000eb62000194565b60c052620000fc6103844262000499565b610140526200010e42610e1062000499565b6101605262000129336a084595161401484a00000062000230565b3360009081526007602090815260408083208054600160ff1991821681179092556001600160a01b039788168086528386208054909216909217905560e05293851661010081905230835260058252848320908352905291909120600019905516610120526200053f565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6001604051620001c89190620004c1565b6040805191829003822060208301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b806003600082825462000244919062000499565b90915550506001600160a01b038216600081815260046020908152604080832080546001600160e01b03908116870116600160e01b610e10420163ffffffff16021781559051858152909392917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b80516001600160a01b0381168114620002d957600080fd5b919050565b600080600060608486031215620002f457600080fd5b620002ff84620002c1565b92506200030f60208501620002c1565b91506200031f60408501620002c1565b90509250925092565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200035357607f821691505b6020821081036200037457634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620003c857600081815260208120601f850160051c81016020861015620003a35750805b601f850160051c820191505b81811015620003c457828155600101620003af565b5050505b505050565b81516001600160401b03811115620003e957620003e962000328565b6200040181620003fa84546200033e565b846200037a565b602080601f831160018114620004395760008415620004205750858301515b600019600386901b1c1916600185901b178555620003c4565b600085815260208120601f198616915b828110156200046a5788860151825594840194600190910190840162000449565b5085821015620004895787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b80820180821115620004bb57634e487b7160e01b600052601160045260246000fd5b92915050565b6000808354620004d1816200033e565b60018281168015620004ec5760018114620005025762000533565b60ff198416875282151583028701945062000533565b8760005260208060002060005b858110156200052a5781548a8201529084019082016200050f565b50505082870194505b50929695505050505050565b60805160a05160c05160e051610100516101205161014051610160516113d0620005c1600039600081816106c40152610d990152600081816106f30152818161074f01528181610dc40152610e3901526000610c8d01526000610ce401526000610d1a0152600061069e01526000610669015260006101a001526113d06000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c8063715018a6116100a2578063a9059cbb11610071578063a9059cbb14610271578063d505accf14610284578063dd62ed3e14610297578063ebca1bd9146102c2578063f2fde38b146102e557600080fd5b8063715018a6146102165780637ecebe001461021e5780638da5cb5b1461023e57806395d89b411461026957600080fd5b806323b872dd116100e957806323b872dd14610188578063313ce5671461019b5780633644e515146101d457806370a08231146101dc57806370db69d61461020e57600080fd5b806306fdde031461011b578063095ea7b314610139578063144bee9c1461015c57806318160ddd14610171575b600080fd5b6101236102f8565b6040516101309190610f30565b60405180910390f35b61014c610147366004610f9a565b610386565b6040519015158152602001610130565b61016f61016a366004610fc4565b6103f3565b005b61017a60035481565b604051908152602001610130565b61014c610196366004611000565b6104a0565b6101c27f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff9091168152602001610130565b61017a610665565b61017a6101ea36600461103c565b6001600160a01b03166000908152600460205260409020546001600160e01b031690565b61017a6106c0565b61016f61079b565b61017a61022c36600461103c565b60066020526000908152604090205481565b600054610251906001600160a01b031681565b6040516001600160a01b039091168152602001610130565b6101236107a7565b61014c61027f366004610f9a565b6107b4565b61016f61029236600461105e565b610905565b61017a6102a53660046110d1565b600560209081526000928352604080842090915290825290205481565b61014c6102d036600461103c565b60076020526000908152604090205460ff1681565b61016f6102f336600461103c565b610b49565b6001805461030590611104565b80601f016020809104026020016040519081016040528092919081815260200182805461033190611104565b801561037e5780601f106103535761010080835404028352916020019161037e565b820191906000526020600020905b81548152906001019060200180831161036157829003601f168201915b505050505081565b3360008181526005602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906103e19086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b031633146104415760405162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b60448201526064015b60405180910390fd5b6001600160a01b038216600081815260076020908152604091829020805460ff191685151590811790915591519182527f461a5b11efd84b14281b8fcbdaff7e0cccda02679656c3ffd98006d7733846ee910160405180910390a25050565b6001600160a01b038316600090815260056020908152604080832033845290915281205460001981146104fc576104d78382611154565b6001600160a01b03861660009081526005602090815260408083203384529091529020555b6001600160a01b0385166000908152600460205260409020805461052a9085906001600160e01b0316611154565b81546001600160e01b0319166001600160e01b03919091161781556001600160a01b03861660009081526007602052604090205460ff1661058157805461057e90600160e01b900463ffffffff1685610bdd565b93505b6001600160a01b0385166000908152600460209081526040808320546007909252909120546001600160e01b0390911685019060ff166105c4576105c481610d97565b6040805180820182526001600160e01b03928316815263ffffffff42610e1001811660208084019182526001600160a01b03808c16600081815260049093529186902094519251909316600160e01b0291909516179091559051908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906106519088815260200190565b60405180910390a350600195945050505050565b60007f0000000000000000000000000000000000000000000000000000000000000000461461069b57610696610e96565b905090565b507f000000000000000000000000000000000000000000000000000000000000000090565b60007f00000000000000000000000000000000000000000000000000000000000000004211156106f1575060001990565b7f0000000000000000000000000000000000000000000000000000000000000000421115610728575069d3c21bcecceda100000090565b61038461074969152d02c7e14af680000069d3c21bcecceda1000000611154565b610773427f0000000000000000000000000000000000000000000000000000000000000000611154565b61077d9190611167565b610787919061117e565b6106969069d3c21bcecceda1000000611154565b6107a56000610b49565b565b6002805461030590611104565b33600090815260046020526040812080546107d99084906001600160e01b0316611154565b81546001600160e01b0319166001600160e01b03919091161781553360009081526007602052604090205460ff1661082757805461082490600160e01b900463ffffffff1684610bdd565b92505b6001600160a01b0384166000908152600460209081526040808320546007909252909120546001600160e01b0390911684019060ff1661086a5761086a81610d97565b6040805180820182526001600160e01b03928316815263ffffffff42610e1001811660208084019182526001600160a01b038a16600081815260049092529085902093519151909216600160e01b0294169390931790555133907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906108f39087815260200190565b60405180910390a35060019392505050565b428410156109555760405162461bcd60e51b815260206004820152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606401610438565b60006001610961610665565b6001600160a01b038a811660008181526006602090815260409182902080546001810190915582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98184015280840194909452938d166060840152608083018c905260a083019390935260c08083018b90528151808403909101815260e08301909152805192019190912061190160f01b6101008301526101028201929092526101228101919091526101420160408051601f198184030181528282528051602091820120600084529083018083525260ff871690820152606081018590526080810184905260a0016020604051602081039080840390855afa158015610a6d573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811615801590610aa35750876001600160a01b0316816001600160a01b0316145b610ae05760405162461bcd60e51b815260206004820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152606401610438565b6001600160a01b0390811660009081526005602090815260408083208a8516808552908352928190208990555188815291928a16917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350505050505050565b6000546001600160a01b03163314610b925760405162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b6044820152606401610438565b600080546001600160a01b0319166001600160a01b0383169081178255604051909133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b6000428311610bed5750806103ed565b612710610e10610bb842860302048302048015610d8e5730600090815260046020908152604080832080546001600160e01b031981166001600160e01b0391821687019182161790915581516002808252606082018452919493909290830190803683370190505090503081600081518110610c6b57610c6b6111b6565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110610cbf57610cbf6111b6565b6001600160a01b0392831660209182029290920101526040516318cbafe560e01b81527f0000000000000000000000000000000000000000000000000000000000000000909116906318cbafe590610d4490859060009086907f00000000000000000000000000000000000000000000000000000000000000009042906004016111cc565b6000604051808303816000875af1925050508015610d8457506040513d6000823e601f3d908101601f19168201604052610d81919081019061123d565b60015b15610d8b57505b50505b90910392915050565b7f0000000000000000000000000000000000000000000000000000000000000000421115610dc25750565b7f0000000000000000000000000000000000000000000000000000000000000000421115610e285769d3c21bcecceda1000000811115610e2857604051632baadd4d60e21b815269d3c21bcecceda1000000600482015260248101829052604401610438565b61038469be951906eba2aa800000427f000000000000000000000000000000000000000000000000000000000000000003020469d3c21bcecceda10000000381811015610e9257604051632baadd4d60e21b81526004810182905260248101839052604401610438565b5050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6001604051610ec891906112fb565b6040805191829003822060208301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b600060208083528351808285015260005b81811015610f5d57858101830151858201604001528201610f41565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610f9557600080fd5b919050565b60008060408385031215610fad57600080fd5b610fb683610f7e565b946020939093013593505050565b60008060408385031215610fd757600080fd5b610fe083610f7e565b915060208301358015158114610ff557600080fd5b809150509250929050565b60008060006060848603121561101557600080fd5b61101e84610f7e565b925061102c60208501610f7e565b9150604084013590509250925092565b60006020828403121561104e57600080fd5b61105782610f7e565b9392505050565b600080600080600080600060e0888a03121561107957600080fd5b61108288610f7e565b965061109060208901610f7e565b95506040880135945060608801359350608088013560ff811681146110b457600080fd5b9699959850939692959460a0840135945060c09093013592915050565b600080604083850312156110e457600080fd5b6110ed83610f7e565b91506110fb60208401610f7e565b90509250929050565b600181811c9082168061111857607f821691505b60208210810361113857634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b818103818111156103ed576103ed61113e565b80820281158282048414176103ed576103ed61113e565b60008261119b57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561121c5784516001600160a01b0316835293830193918301916001016111f7565b50506001600160a01b03969096166060850152505050608001529392505050565b6000602080838503121561125057600080fd5b825167ffffffffffffffff8082111561126857600080fd5b818501915085601f83011261127c57600080fd5b81518181111561128e5761128e6111a0565b8060051b604051601f19603f830116810181811085821117156112b3576112b36111a0565b6040529182528482019250838101850191888311156112d157600080fd5b938501935b828510156112ef578451845293850193928501926112d6565b98975050505050505050565b600080835481600182811c91508083168061131757607f831692505b6020808410820361133657634e487b7160e01b86526022600452602486fd5b81801561134a576001811461135f5761138c565b60ff198616895284151585028901965061138c565b60008a81526020902060005b868110156113845781548b82015290850190830161136b565b505084890196505b50949897505050505050505056fea2646970667358221220439f5a223c0aa5386a20397e4074d4b9b31a77269433850b5ea801b1b1f3f87764736f6c634300081300330000000000000000000000007342c794e2711ea6cfcc1fbddab9b5ab424dbc070000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101165760003560e01c8063715018a6116100a2578063a9059cbb11610071578063a9059cbb14610271578063d505accf14610284578063dd62ed3e14610297578063ebca1bd9146102c2578063f2fde38b146102e557600080fd5b8063715018a6146102165780637ecebe001461021e5780638da5cb5b1461023e57806395d89b411461026957600080fd5b806323b872dd116100e957806323b872dd14610188578063313ce5671461019b5780633644e515146101d457806370a08231146101dc57806370db69d61461020e57600080fd5b806306fdde031461011b578063095ea7b314610139578063144bee9c1461015c57806318160ddd14610171575b600080fd5b6101236102f8565b6040516101309190610f30565b60405180910390f35b61014c610147366004610f9a565b610386565b6040519015158152602001610130565b61016f61016a366004610fc4565b6103f3565b005b61017a60035481565b604051908152602001610130565b61014c610196366004611000565b6104a0565b6101c27f000000000000000000000000000000000000000000000000000000000000001281565b60405160ff9091168152602001610130565b61017a610665565b61017a6101ea36600461103c565b6001600160a01b03166000908152600460205260409020546001600160e01b031690565b61017a6106c0565b61016f61079b565b61017a61022c36600461103c565b60066020526000908152604090205481565b600054610251906001600160a01b031681565b6040516001600160a01b039091168152602001610130565b6101236107a7565b61014c61027f366004610f9a565b6107b4565b61016f61029236600461105e565b610905565b61017a6102a53660046110d1565b600560209081526000928352604080842090915290825290205481565b61014c6102d036600461103c565b60076020526000908152604090205460ff1681565b61016f6102f336600461103c565b610b49565b6001805461030590611104565b80601f016020809104026020016040519081016040528092919081815260200182805461033190611104565b801561037e5780601f106103535761010080835404028352916020019161037e565b820191906000526020600020905b81548152906001019060200180831161036157829003601f168201915b505050505081565b3360008181526005602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906103e19086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b031633146104415760405162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b60448201526064015b60405180910390fd5b6001600160a01b038216600081815260076020908152604091829020805460ff191685151590811790915591519182527f461a5b11efd84b14281b8fcbdaff7e0cccda02679656c3ffd98006d7733846ee910160405180910390a25050565b6001600160a01b038316600090815260056020908152604080832033845290915281205460001981146104fc576104d78382611154565b6001600160a01b03861660009081526005602090815260408083203384529091529020555b6001600160a01b0385166000908152600460205260409020805461052a9085906001600160e01b0316611154565b81546001600160e01b0319166001600160e01b03919091161781556001600160a01b03861660009081526007602052604090205460ff1661058157805461057e90600160e01b900463ffffffff1685610bdd565b93505b6001600160a01b0385166000908152600460209081526040808320546007909252909120546001600160e01b0390911685019060ff166105c4576105c481610d97565b6040805180820182526001600160e01b03928316815263ffffffff42610e1001811660208084019182526001600160a01b03808c16600081815260049093529186902094519251909316600160e01b0291909516179091559051908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906106519088815260200190565b60405180910390a350600195945050505050565b60007f0000000000000000000000000000000000000000000000000000000000000001461461069b57610696610e96565b905090565b507f0d65d6e92b9cf76aeeb4dad33a38fa64b43427911e289c4d339d484481975e9990565b60007f0000000000000000000000000000000000000000000000000000000064b31ab74211156106f1575060001990565b7f0000000000000000000000000000000000000000000000000000000064b3102b421115610728575069d3c21bcecceda100000090565b61038461074969152d02c7e14af680000069d3c21bcecceda1000000611154565b610773427f0000000000000000000000000000000000000000000000000000000064b3102b611154565b61077d9190611167565b610787919061117e565b6106969069d3c21bcecceda1000000611154565b6107a56000610b49565b565b6002805461030590611104565b33600090815260046020526040812080546107d99084906001600160e01b0316611154565b81546001600160e01b0319166001600160e01b03919091161781553360009081526007602052604090205460ff1661082757805461082490600160e01b900463ffffffff1684610bdd565b92505b6001600160a01b0384166000908152600460209081526040808320546007909252909120546001600160e01b0390911684019060ff1661086a5761086a81610d97565b6040805180820182526001600160e01b03928316815263ffffffff42610e1001811660208084019182526001600160a01b038a16600081815260049092529085902093519151909216600160e01b0294169390931790555133907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906108f39087815260200190565b60405180910390a35060019392505050565b428410156109555760405162461bcd60e51b815260206004820152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606401610438565b60006001610961610665565b6001600160a01b038a811660008181526006602090815260409182902080546001810190915582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98184015280840194909452938d166060840152608083018c905260a083019390935260c08083018b90528151808403909101815260e08301909152805192019190912061190160f01b6101008301526101028201929092526101228101919091526101420160408051601f198184030181528282528051602091820120600084529083018083525260ff871690820152606081018590526080810184905260a0016020604051602081039080840390855afa158015610a6d573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811615801590610aa35750876001600160a01b0316816001600160a01b0316145b610ae05760405162461bcd60e51b815260206004820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152606401610438565b6001600160a01b0390811660009081526005602090815260408083208a8516808552908352928190208990555188815291928a16917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350505050505050565b6000546001600160a01b03163314610b925760405162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b6044820152606401610438565b600080546001600160a01b0319166001600160a01b0383169081178255604051909133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b6000428311610bed5750806103ed565b612710610e10610bb842860302048302048015610d8e5730600090815260046020908152604080832080546001600160e01b031981166001600160e01b0391821687019182161790915581516002808252606082018452919493909290830190803683370190505090503081600081518110610c6b57610c6b6111b6565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281600181518110610cbf57610cbf6111b6565b6001600160a01b0392831660209182029290920101526040516318cbafe560e01b81527f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d909116906318cbafe590610d4490859060009086907f0000000000000000000000007342c794e2711ea6cfcc1fbddab9b5ab424dbc079042906004016111cc565b6000604051808303816000875af1925050508015610d8457506040513d6000823e601f3d908101601f19168201604052610d81919081019061123d565b60015b15610d8b57505b50505b90910392915050565b7f0000000000000000000000000000000000000000000000000000000064b31ab7421115610dc25750565b7f0000000000000000000000000000000000000000000000000000000064b3102b421115610e285769d3c21bcecceda1000000811115610e2857604051632baadd4d60e21b815269d3c21bcecceda1000000600482015260248101829052604401610438565b61038469be951906eba2aa800000427f0000000000000000000000000000000000000000000000000000000064b3102b03020469d3c21bcecceda10000000381811015610e9257604051632baadd4d60e21b81526004810182905260248101839052604401610438565b5050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6001604051610ec891906112fb565b6040805191829003822060208301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b600060208083528351808285015260005b81811015610f5d57858101830151858201604001528201610f41565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610f9557600080fd5b919050565b60008060408385031215610fad57600080fd5b610fb683610f7e565b946020939093013593505050565b60008060408385031215610fd757600080fd5b610fe083610f7e565b915060208301358015158114610ff557600080fd5b809150509250929050565b60008060006060848603121561101557600080fd5b61101e84610f7e565b925061102c60208501610f7e565b9150604084013590509250925092565b60006020828403121561104e57600080fd5b61105782610f7e565b9392505050565b600080600080600080600060e0888a03121561107957600080fd5b61108288610f7e565b965061109060208901610f7e565b95506040880135945060608801359350608088013560ff811681146110b457600080fd5b9699959850939692959460a0840135945060c09093013592915050565b600080604083850312156110e457600080fd5b6110ed83610f7e565b91506110fb60208401610f7e565b90509250929050565b600181811c9082168061111857607f821691505b60208210810361113857634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b818103818111156103ed576103ed61113e565b80820281158282048414176103ed576103ed61113e565b60008261119b57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561121c5784516001600160a01b0316835293830193918301916001016111f7565b50506001600160a01b03969096166060850152505050608001529392505050565b6000602080838503121561125057600080fd5b825167ffffffffffffffff8082111561126857600080fd5b818501915085601f83011261127c57600080fd5b81518181111561128e5761128e6111a0565b8060051b604051601f19603f830116810181811085821117156112b3576112b36111a0565b6040529182528482019250838101850191888311156112d157600080fd5b938501935b828510156112ef578451845293850193928501926112d6565b98975050505050505050565b600080835481600182811c91508083168061131757607f831692505b6020808410820361133657634e487b7160e01b86526022600452602486fd5b81801561134a576001811461135f5761138c565b60ff198616895284151585028901965061138c565b60008a81526020902060005b868110156113845781548b82015290850190830161136b565b505084890196505b50949897505050505050505056fea2646970667358221220439f5a223c0aa5386a20397e4074d4b9b31a77269433850b5ea801b1b1f3f87764736f6c63430008130033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000007342c794e2711ea6cfcc1fbddab9b5ab424dbc070000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2

-----Decoded View---------------
Arg [0] : treasury (address): 0x7342c794E2711eA6Cfcc1fBdDab9b5aB424dBC07
Arg [1] : uniV2Router (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
Arg [2] : weth (address): 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 0000000000000000000000007342c794e2711ea6cfcc1fbddab9b5ab424dbc07
Arg [1] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Arg [2] : 000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2


Deployed Bytecode Sourcemap

6702:11938:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7852:18;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10845:209;;;;;;:::i;:::-;;:::i;:::-;;;1169:14:1;;1162:22;1144:41;;1132:2;1117:18;10845:209:0;1004:187:1;18363:180:0;;;;;;:::i;:::-;;:::i;:::-;;8135:26;;;;;;;;;1694:25:1;;;1682:2;1667:18;8135:26:0;1548:177:1;11966:1081:0;;;;;;:::i;:::-;;:::i;7908:31::-;;;;;;;;2235:4:1;2223:17;;;2205:36;;2193:2;2178:18;7908:31:0;2063:184:1;14713:171:0;;;:::i;10725:112::-;;;;;;:::i;:::-;-1:-1:-1;;;;;10808:14:0;10781:7;10808:14;;;:8;:14;;;;;:21;-1:-1:-1;;;;;10808:21:0;;10725:112;17948:407;;;:::i;18551:86::-;;;:::i;8597:41::-;;;;;;:::i;:::-;;;;;;;;;;;;;;705:20;;;;;-1:-1:-1;;;;;705:20:0;;;;;;-1:-1:-1;;;;;2789:32:1;;;2771:51;;2759:2;2744:18;705:20:0;2625:203:1;7879:20:0;;;:::i;11062:896::-;;;;;;:::i;:::-;;:::i;13242:1463::-;;;;;;:::i;:::-;;:::i;8224:64::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;8826:49;;;;;;:::i;:::-;;;;;;;;;;;;;;;;1349:165;;;;;;:::i;:::-;;:::i;7852:18::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;10845:209::-;10938:10;10911:4;10928:21;;;:9;:21;;;;;;;;-1:-1:-1;;;;;10928:30:0;;;;;;;;;;:39;;;10985:37;10911:4;;10928:30;;10985:37;;;;10961:6;1694:25:1;;1682:2;1667:18;;1548:177;10985:37:0;;;;;;;;-1:-1:-1;11042:4:0;10845:209;;;;;:::o;18363:180::-;796:5;;-1:-1:-1;;;;;796:5:0;782:10;:19;774:44;;;;-1:-1:-1;;;774:44:0;;4383:2:1;774:44:0;;;4365:21:1;4422:2;4402:18;;;4395:30;-1:-1:-1;;;4441:18:1;;;4434:42;4493:18;;774:44:0;;;;;;;;;-1:-1:-1;;;;;18449:23:0;::::1;;::::0;;;:17:::1;:23;::::0;;;;;;;;:31;;-1:-1:-1;;18449:31:0::1;::::0;::::1;;::::0;;::::1;::::0;;;18498:37;;1144:41:1;;;18498:37:0::1;::::0;1117:18:1;18498:37:0::1;;;;;;;18363:180:::0;;:::o;11966:1081::-;-1:-1:-1;;;;;12081:15:0;;12046:4;12081:15;;;:9;:15;;;;;;;;12097:10;12081:27;;;;;;;;-1:-1:-1;;12161:28:0;;12157:80;;12221:16;12231:6;12221:7;:16;:::i;:::-;-1:-1:-1;;;;;12191:15:0;;;;;;:9;:15;;;;;;;;12207:10;12191:27;;;;;;;:46;12157:80;-1:-1:-1;;;;;12278:14:0;;12250:25;12278:14;;;:8;:14;;;;;12337:15;;12329:33;;12356:6;;-1:-1:-1;;;;;12337:15:0;12329:33;:::i;:::-;12303:60;;-1:-1:-1;;;;;;12303:60:0;-1:-1:-1;;;;;12303:60:0;;;;;;;-1:-1:-1;;;;;12381:23:0;;-1:-1:-1;12381:23:0;;;:17;:23;;;;;;;;12376:104;;12442:17;;12430:38;;-1:-1:-1;;;12442:17:0;;;;12461:6;12430:11;:38::i;:::-;12421:47;;12376:104;-1:-1:-1;;;;;12708:12:0;;12679:17;12708:12;;;:8;:12;;;;;;;;:19;12749:17;:21;;;;;;;-1:-1:-1;;;;;12708:19:0;;;12699:28;;;12749:21;;12744:97;;12791:34;12815:9;12791:23;:34::i;:::-;12872:88;;;;;;;;-1:-1:-1;;;;;12872:88:0;;;;;;12927:15;8968:7;12927:30;12872:88;;;;;;;;;-1:-1:-1;;;;;12857:12:0;;;-1:-1:-1;12857:12:0;;;:8;:12;;;;;;;:103;;;;;;;-1:-1:-1;;;12857:103:0;;;;;;;;;12989:26;;;;;;;;;;13008:6;1694:25:1;;1682:2;1667:18;;1548:177;12989:26:0;;;;;;;;-1:-1:-1;13035:4:0;;11966:1081;-1:-1:-1;;;;;11966:1081:0:o;14713:171::-;14762:7;14806:16;14789:13;:33;:87;;14852:24;:22;:24::i;:::-;14782:94;;14713:171;:::o;14789:87::-;-1:-1:-1;14825:24:0;;14713:171::o;17948:407::-;17989:7;18031:21;18013:15;:39;18009:96;;;-1:-1:-1;;;18076:17:0;17948:407::o;18009:96::-;18139:16;18121:15;:34;18117:88;;;-1:-1:-1;9451:4:0;;17948:407::o;18117:88::-;9506:10;18294:33;9398:4;9451;18294:33;:::i;:::-;18255:34;18274:15;18255:16;:34;:::i;:::-;18254:74;;;;:::i;:::-;:93;;;;:::i;:::-;18224:123;;9451:4;18224:123;:::i;18551:86::-;18600:29;18626:1;18600:17;:29::i;:::-;18551:86::o;7879:20::-;;;;;;;:::i;11062:896::-;11178:10;11124:4;11169:20;;;:8;:20;;;;;11236:15;;11228:33;;11255:6;;-1:-1:-1;;;;;11236:15:0;11228:33;:::i;:::-;11202:60;;-1:-1:-1;;;;;;11202:60:0;-1:-1:-1;;;;;11202:60:0;;;;;;;11298:10;-1:-1:-1;11280:29:0;;;:17;:29;;;;;;;;11275:110;;11347:17;;11335:38;;-1:-1:-1;;;11347:17:0;;;;11366:6;11335:11;:38::i;:::-;11326:47;;11275:110;-1:-1:-1;;;;;11613:12:0;;11584:17;11613:12;;;:8;:12;;;;;;;;:19;11654:17;:21;;;;;;;-1:-1:-1;;;;;11613:19:0;;;11604:28;;;11654:21;;11649:97;;11696:34;11720:9;11696:23;:34::i;:::-;11777:88;;;;;;;;-1:-1:-1;;;;;11777:88:0;;;;;;11832:15;8968:7;11832:30;11777:88;;;;;;;;;-1:-1:-1;;;;;11762:12:0;;-1:-1:-1;11762:12:0;;;:8;:12;;;;;;;:103;;;;;;;-1:-1:-1;;;11762:103:0;;;;;;;;;11894:32;11903:10;;11894:32;;;;11919:6;1694:25:1;;1682:2;1667:18;;1548:177;11894:32:0;;;;;;;;-1:-1:-1;11946:4:0;;11062:896;-1:-1:-1;;;11062:896:0:o;13242:1463::-;13406:15;13394:8;:27;;13386:63;;;;-1:-1:-1;;;13386:63:0;;5516:2:1;13386:63:0;;;5498:21:1;5555:2;5535:18;;;5528:30;5594:25;5574:18;;;5567:53;5637:18;;13386:63:0;5314:347:1;13386:63:0;13619:24;13646:827;13786:18;:16;:18::i;:::-;-1:-1:-1;;;;;14240:13:0;;;;;;;:6;:13;;;;;;;;;:15;;;;;;;;13871:458;;13916:167;13871:458;;;5953:25:1;6032:18;;;6025:43;;;;6104:15;;;6084:18;;;6077:43;6136:18;;;6129:34;;;6179:19;;;6172:35;;;;6223:19;;;;6216:35;;;13871:458:0;;;;;;;;;;5925:19:1;;;13871:458:0;;;13831:525;;;;;;;;-1:-1:-1;;;13706:673:0;;;6520:27:1;6563:11;;;6556:27;;;;6599:12;;;6592:28;;;;6636:12;;13706:673:0;;;-1:-1:-1;;13706:673:0;;;;;;;;;13674:724;;13706:673;13674:724;;;;13646:827;;;;;;;;;6886:25:1;6959:4;6947:17;;6927:18;;;6920:45;6981:18;;;6974:34;;;7024:18;;;7017:34;;;6858:19;;13646:827:0;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;13646:827:0;;-1:-1:-1;;13646:827:0;;;-1:-1:-1;;;;;;;14498:30:0;;;;;;:59;;;14552:5;-1:-1:-1;;;;;14532:25:0;:16;-1:-1:-1;;;;;14532:25:0;;14498:59;14490:86;;;;-1:-1:-1;;;14490:86:0;;7264:2:1;14490:86:0;;;7246:21:1;7303:2;7283:18;;;7276:30;-1:-1:-1;;;7322:18:1;;;7315:44;7376:18;;14490:86:0;7062:338:1;14490:86:0;-1:-1:-1;;;;;14593:27:0;;;;;;;:9;:27;;;;;;;;:36;;;;;;;;;;;;;:44;;;14666:31;1694:25:1;;;14593:36:0;;14666:31;;;;;1667:18:1;14666:31:0;;;;;;;13242:1463;;;;;;;:::o;1349:165::-;796:5;;-1:-1:-1;;;;;796:5:0;782:10;:19;774:44;;;;-1:-1:-1;;;774:44:0;;4383:2:1;774:44:0;;;4365:21:1;4422:2;4402:18;;;4395:30;-1:-1:-1;;;4441:18:1;;;4434:42;4493:18;;774:44:0;4181:336:1;774:44:0;1430:5:::1;:16:::0;;-1:-1:-1;;;;;;1430:16:0::1;-1:-1:-1::0;;;;;1430:16:0;::::1;::::0;;::::1;::::0;;1464:42:::1;::::0;1430:16;;1485:10:::1;::::0;1464:42:::1;::::0;1430:5;1464:42:::1;1349:165:::0;:::o;15963:1148::-;16036:7;16072:15;16060:8;:27;16056:46;;-1:-1:-1;16096:6:0;16089:13;;16056:46;9025:5;8968:7;8917:4;16332:15;16321:26;;16310:38;:53;:62;;:80;16411:14;;16407:642;;16495:4;16446:17;16478:23;;;:8;:23;;;;;;;;:30;;-1:-1:-1;;;;;;16527:51:0;;-1:-1:-1;;;;;16478:30:0;;;16466:42;;16527:51;;;;;;;16623:16;;16637:1;16623:16;;;;;;;;16466:42;;16446:17;16623:16;;;;;;16478:23;16623:16;;;;;-1:-1:-1;16623:16:0;16599:40;;16676:4;16658;16663:1;16658:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;16658:23:0;;;-1:-1:-1;;;;;16658:23:0;;;;;16710:4;16700;16705:1;16700:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16700:14:0;;;:7;;;;;;;;;:14;16739:75;;-1:-1:-1;;;16739:75:0;;:6;:28;;;;;;:75;;16768:9;;16779:1;;16782:4;;16788:8;;16798:15;;16739:75;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;16739:75:0;;;;;;;;;;;;:::i;:::-;;;16735:299;;;;;16427:622;;16407:642;17073:18;;;;15963:1148;-1:-1:-1;;15963:1148:0:o;17119:821::-;17218:21;17200:15;:39;17196:78;;;17119:821;:::o;17196:78::-;17308:16;17290:15;:34;17286:147;;;9451:4;17345:9;:26;17341:80;;;17380:41;;-1:-1:-1;;;17380:41:0;;9451:4;17380:41;;;9938:25:1;9979:18;;;9972:34;;;9911:18;;17380:41:0;9764:248:1;17341:80:0;9506:10;17775:33;17755:15;17736:16;:34;17735:74;:93;9451:4;17701:127;17849:24;;;17845:76;;;17882:39;;-1:-1:-1;;;17882:39:0;;;;;9938:25:1;;;9979:18;;;9972:34;;;9911:18;;17882:39:0;9764:248:1;17845:76:0;17445:488;17119:821;:::o;14892:404::-;14949:7;15029:95;15159:4;15143:22;;;;;;:::i;:::-;;;;;;;;;;15000:277;;;11543:25:1;;;;11584:18;;11577:34;;;;15184:14:0;11627:18:1;;;11620:34;15217:13:0;11670:18:1;;;11663:34;15257:4:0;11713:19:1;;;11706:61;11515:19;;15000:277:0;;;;;;;;;;;;14976:312;;;;;;14969:319;;14892:404;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:173::-;635:20;;-1:-1:-1;;;;;684:31:1;;674:42;;664:70;;730:1;727;720:12;664:70;567:173;;;:::o;745:254::-;813:6;821;874:2;862:9;853:7;849:23;845:32;842:52;;;890:1;887;880:12;842:52;913:29;932:9;913:29;:::i;:::-;903:39;989:2;974:18;;;;961:32;;-1:-1:-1;;;745:254:1:o;1196:347::-;1261:6;1269;1322:2;1310:9;1301:7;1297:23;1293:32;1290:52;;;1338:1;1335;1328:12;1290:52;1361:29;1380:9;1361:29;:::i;:::-;1351:39;;1440:2;1429:9;1425:18;1412:32;1487:5;1480:13;1473:21;1466:5;1463:32;1453:60;;1509:1;1506;1499:12;1453:60;1532:5;1522:15;;;1196:347;;;;;:::o;1730:328::-;1807:6;1815;1823;1876:2;1864:9;1855:7;1851:23;1847:32;1844:52;;;1892:1;1889;1882:12;1844:52;1915:29;1934:9;1915:29;:::i;:::-;1905:39;;1963:38;1997:2;1986:9;1982:18;1963:38;:::i;:::-;1953:48;;2048:2;2037:9;2033:18;2020:32;2010:42;;1730:328;;;;;:::o;2434:186::-;2493:6;2546:2;2534:9;2525:7;2521:23;2517:32;2514:52;;;2562:1;2559;2552:12;2514:52;2585:29;2604:9;2585:29;:::i;:::-;2575:39;2434:186;-1:-1:-1;;;2434:186:1:o;2833:693::-;2944:6;2952;2960;2968;2976;2984;2992;3045:3;3033:9;3024:7;3020:23;3016:33;3013:53;;;3062:1;3059;3052:12;3013:53;3085:29;3104:9;3085:29;:::i;:::-;3075:39;;3133:38;3167:2;3156:9;3152:18;3133:38;:::i;:::-;3123:48;;3218:2;3207:9;3203:18;3190:32;3180:42;;3269:2;3258:9;3254:18;3241:32;3231:42;;3323:3;3312:9;3308:19;3295:33;3368:4;3361:5;3357:16;3350:5;3347:27;3337:55;;3388:1;3385;3378:12;3337:55;2833:693;;;;-1:-1:-1;2833:693:1;;;;3411:5;3463:3;3448:19;;3435:33;;-1:-1:-1;3515:3:1;3500:19;;;3487:33;;2833:693;-1:-1:-1;;2833:693:1:o;3531:260::-;3599:6;3607;3660:2;3648:9;3639:7;3635:23;3631:32;3628:52;;;3676:1;3673;3666:12;3628:52;3699:29;3718:9;3699:29;:::i;:::-;3689:39;;3747:38;3781:2;3770:9;3766:18;3747:38;:::i;:::-;3737:48;;3531:260;;;;;:::o;3796:380::-;3875:1;3871:12;;;;3918;;;3939:61;;3993:4;3985:6;3981:17;3971:27;;3939:61;4046:2;4038:6;4035:14;4015:18;4012:38;4009:161;;4092:10;4087:3;4083:20;4080:1;4073:31;4127:4;4124:1;4117:15;4155:4;4152:1;4145:15;4009:161;;3796:380;;;:::o;4522:127::-;4583:10;4578:3;4574:20;4571:1;4564:31;4614:4;4611:1;4604:15;4638:4;4635:1;4628:15;4654:128;4721:9;;;4742:11;;;4739:37;;;4756:18;;:::i;4787:168::-;4860:9;;;4891;;4908:15;;;4902:22;;4888:37;4878:71;;4929:18;;:::i;5092:217::-;5132:1;5158;5148:132;;5202:10;5197:3;5193:20;5190:1;5183:31;5237:4;5234:1;5227:15;5265:4;5262:1;5255:15;5148:132;-1:-1:-1;5294:9:1;;5092:217::o;7405:127::-;7466:10;7461:3;7457:20;7454:1;7447:31;7497:4;7494:1;7487:15;7521:4;7518:1;7511:15;7537:127;7598:10;7593:3;7589:20;7586:1;7579:31;7629:4;7626:1;7619:15;7653:4;7650:1;7643:15;7669:980;7931:4;7979:3;7968:9;7964:19;8010:6;7999:9;7992:25;8036:2;8074:6;8069:2;8058:9;8054:18;8047:34;8117:3;8112:2;8101:9;8097:18;8090:31;8141:6;8176;8170:13;8207:6;8199;8192:22;8245:3;8234:9;8230:19;8223:26;;8284:2;8276:6;8272:15;8258:29;;8305:1;8315:195;8329:6;8326:1;8323:13;8315:195;;;8394:13;;-1:-1:-1;;;;;8390:39:1;8378:52;;8485:15;;;;8450:12;;;;8426:1;8344:9;8315:195;;;-1:-1:-1;;;;;;;8566:32:1;;;;8561:2;8546:18;;8539:60;-1:-1:-1;;;8630:3:1;8615:19;8608:35;8527:3;7669:980;-1:-1:-1;;;7669:980:1:o;8654:1105::-;8749:6;8780:2;8823;8811:9;8802:7;8798:23;8794:32;8791:52;;;8839:1;8836;8829:12;8791:52;8872:9;8866:16;8901:18;8942:2;8934:6;8931:14;8928:34;;;8958:1;8955;8948:12;8928:34;8996:6;8985:9;8981:22;8971:32;;9041:7;9034:4;9030:2;9026:13;9022:27;9012:55;;9063:1;9060;9053:12;9012:55;9092:2;9086:9;9114:2;9110;9107:10;9104:36;;;9120:18;;:::i;:::-;9166:2;9163:1;9159:10;9198:2;9192:9;9261:2;9257:7;9252:2;9248;9244:11;9240:25;9232:6;9228:38;9316:6;9304:10;9301:22;9296:2;9284:10;9281:18;9278:46;9275:72;;;9327:18;;:::i;:::-;9363:2;9356:22;9413:18;;;9447:15;;;;-1:-1:-1;9489:11:1;;;9485:20;;;9517:19;;;9514:39;;;9549:1;9546;9539:12;9514:39;9573:11;;;;9593:135;9609:6;9604:3;9601:15;9593:135;;;9675:10;;9663:23;;9626:12;;;;9706;;;;9593:135;;;9747:6;8654:1105;-1:-1:-1;;;;;;;;8654:1105:1:o;10146:1133::-;10276:3;10305:1;10338:6;10332:13;10368:3;10390:1;10418:9;10414:2;10410:18;10400:28;;10478:2;10467:9;10463:18;10500;10490:61;;10544:4;10536:6;10532:17;10522:27;;10490:61;10570:2;10618;10610:6;10607:14;10587:18;10584:38;10581:165;;-1:-1:-1;;;10645:33:1;;10701:4;10698:1;10691:15;10731:4;10652:3;10719:17;10581:165;10762:18;10789:133;;;;10936:1;10931:323;;;;10755:499;;10789:133;-1:-1:-1;;10822:24:1;;10810:37;;10895:14;;10888:22;10876:35;;10867:45;;;-1:-1:-1;10789:133:1;;10931:323;10093:1;10086:14;;;10130:4;10117:18;;11029:1;11043:165;11057:6;11054:1;11051:13;11043:165;;;11135:14;;11122:11;;;11115:35;11178:16;;;;11072:10;;11043:165;;;11047:3;;11237:6;11232:3;11228:16;11221:23;;10755:499;-1:-1:-1;11270:3:1;;10146:1133;-1:-1:-1;;;;;;;;10146:1133:1:o

Swarm Source

ipfs://439f5a223c0aa5386a20397e4074d4b9b31a77269433850b5ea801b1b1f3f877
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.