ETH Price: $2,641.74 (+1.12%)

Contract

0xf124eD9Ec309907808b1FBc6BEdB2a76927B3665
 

Overview

ETH Balance

0.036326515812983558 ETH

Eth Value

$95.97 (@ $2,641.74/ETH)

Token Holdings

Transaction Hash
Method
Block
From
To
Approve194509712024-03-17 0:20:47215 days ago1710634847IN
0xf124eD9E...6927B3665
0 ETH0.0007483330.75506715
Approve187230552023-12-05 22:14:35317 days ago1701814475IN
0xf124eD9E...6927B3665
0 ETH0.0013071253.72056917
Transfer186836212023-11-30 9:46:35323 days ago1701337595IN
0xf124eD9E...6927B3665
0 ETH0.0016354129.22166332
Approve184864532023-11-02 19:23:59350 days ago1698953039IN
0xf124eD9E...6927B3665
0 ETH0.0006313225.94622406
Approve184296712023-10-25 20:36:59358 days ago1698266219IN
0xf124eD9E...6927B3665
0 ETH0.0013066728.06673397
Approve184295592023-10-25 20:14:23358 days ago1698264863IN
0xf124eD9E...6927B3665
0 ETH0.0017255137.28428421
Approve184067212023-10-22 15:26:59362 days ago1697988419IN
0xf124eD9E...6927B3665
0 ETH0.0004803510.31774835
Approve183863872023-10-19 19:12:23364 days ago1697742743IN
0xf124eD9E...6927B3665
0 ETH0.0004965810.66642297
Approve183755072023-10-18 6:38:35366 days ago1697611115IN
0xf124eD9E...6927B3665
0 ETH0.000383098.22867384
Approve183732052023-10-17 22:54:59366 days ago1697583299IN
0xf124eD9E...6927B3665
0 ETH0.000336587.22046194
Approve182673082023-10-03 3:24:11381 days ago1696303451IN
0xf124eD9E...6927B3665
0 ETH0.000286436.15248466
Approve181956932023-09-23 2:59:11391 days ago1695437951IN
0xf124eD9E...6927B3665
0 ETH0.000382938.22533787
Approve181130822023-09-11 12:22:11403 days ago1694434931IN
0xf124eD9E...6927B3665
0 ETH0.0006173813.26112706
Approve181043942023-09-10 7:10:23404 days ago1694329823IN
0xf124eD9E...6927B3665
0 ETH0.000430429.24538359
Transfer181016892023-09-09 22:03:35404 days ago1694297015IN
0xf124eD9E...6927B3665
0 ETH0.000474628.48064577
Transfer181016802023-09-09 22:01:47404 days ago1694296907IN
0xf124eD9E...6927B3665
0 ETH0.0009533210.3030355
Transfer181004332023-09-09 17:50:59404 days ago1694281859IN
0xf124eD9E...6927B3665
0.00611847 ETH0.000222410.56327611
Approve180364392023-08-31 18:46:23413 days ago1693507583IN
0xf124eD9E...6927B3665
0 ETH0.0017018636.50824818
Transfer180070162023-08-27 15:53:23418 days ago1693151603IN
0xf124eD9E...6927B3665
0 ETH0.0010864619.40459442
Transfer180021132023-08-26 23:25:47418 days ago1693092347IN
0xf124eD9E...6927B3665
0 ETH0.0010265911.7003154
Transfer180014592023-08-26 21:14:35418 days ago1693084475IN
0xf124eD9E...6927B3665
0 ETH0.0005779710.32288332
Transfer180014542023-08-26 21:13:35418 days ago1693084415IN
0xf124eD9E...6927B3665
0 ETH0.0009958210.76229236
Approve179493112023-08-19 14:07:59426 days ago1692454079IN
0xf124eD9E...6927B3665
0 ETH0.0007074515.2745261
Approve179217732023-08-15 17:37:23429 days ago1692121043IN
0xf124eD9E...6927B3665
0 ETH0.0015117232.68174135
Approve179189202023-08-15 8:01:59430 days ago1692086519IN
0xf124eD9E...6927B3665
0 ETH0.0007918917.00959267
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
177627232023-07-24 11:40:11452 days ago1690198811
0xf124eD9E...6927B3665
0.0003964 ETH
177627232023-07-24 11:40:11452 days ago1690198811
0xf124eD9E...6927B3665
0.16011248 ETH
177627232023-07-24 11:40:11452 days ago1690198811
0xf124eD9E...6927B3665
0.16011248 ETH
175830902023-06-29 6:11:23477 days ago1688019083
0xf124eD9E...6927B3665
0.0516433 ETH
175830902023-06-29 6:11:23477 days ago1688019083
0xf124eD9E...6927B3665
0.0516433 ETH
175108412023-06-19 2:32:23487 days ago1687141943
0xf124eD9E...6927B3665
0.0025271 ETH
175108412023-06-19 2:32:23487 days ago1687141943
0xf124eD9E...6927B3665
0.3235701 ETH
175108412023-06-19 2:32:23487 days ago1687141943
0xf124eD9E...6927B3665
0.3235701 ETH
174419072023-06-09 9:52:23497 days ago1686304343
0xf124eD9E...6927B3665
0.01878221 ETH
174419072023-06-09 9:52:23497 days ago1686304343
0xf124eD9E...6927B3665
0.9650246 ETH
174419072023-06-09 9:52:23497 days ago1686304343
0xf124eD9E...6927B3665
0.9650246 ETH
174328692023-06-08 3:16:47498 days ago1686194207
0xf124eD9E...6927B3665
0.00216209 ETH
174328692023-06-08 3:16:47498 days ago1686194207
0xf124eD9E...6927B3665
0.15880659 ETH
174328692023-06-08 3:16:47498 days ago1686194207
0xf124eD9E...6927B3665
0.15880659 ETH
170421642023-04-14 1:21:23553 days ago1681435283
0xf124eD9E...6927B3665
0.00018276 ETH
170421642023-04-14 1:21:23553 days ago1681435283
0xf124eD9E...6927B3665
0.05444919 ETH
170421642023-04-14 1:21:23553 days ago1681435283
0xf124eD9E...6927B3665
0.05444919 ETH
169811012023-04-05 7:27:23562 days ago1680679643
0xf124eD9E...6927B3665
0.00064735 ETH
169811012023-04-05 7:27:23562 days ago1680679643
0xf124eD9E...6927B3665
0.09115142 ETH
169811012023-04-05 7:27:23562 days ago1680679643
0xf124eD9E...6927B3665
0.09115142 ETH
169767222023-04-04 16:32:59562 days ago1680625979
0xf124eD9E...6927B3665
0.00031187 ETH
169767222023-04-04 16:32:59562 days ago1680625979
0xf124eD9E...6927B3665
0.06639157 ETH
169767222023-04-04 16:32:59562 days ago1680625979
0xf124eD9E...6927B3665
0.06639157 ETH
168510662023-03-18 0:24:23580 days ago1679099063
0xf124eD9E...6927B3665
0.00042422 ETH
168510662023-03-18 0:24:23580 days ago1679099063
0xf124eD9E...6927B3665
0.08260996 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
EmpireV2

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-12-19
*/

// File @openzeppelin/contracts/utils/[email protected]

// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)

pragma solidity ^0.8.0;

/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}


// File @openzeppelin/contracts/access/[email protected]


// OpenZeppelin Contracts v4.4.1 (access/Ownable.sol)

pragma solidity ^0.8.0;

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}


// File contracts/dependencies/Controller.sol


pragma solidity 0.8.4;

contract Controller is Ownable {
    mapping(address => bool) public operator;
    event OperatorCreated(address _operator, bool _whiteList);

    modifier onlyOperator() {
        require(operator[msg.sender], "Only-Operator");
        _;
    }

    function setOperator(address _operator, bool _whiteList) public onlyOwner {
        operator[_operator] = _whiteList;
        emit OperatorCreated(_operator, _whiteList);
    }

}


// File contracts/EmpireV2.sol


pragma solidity 0.8.4;

interface IERC20 {
    function transfer(address _to, uint256 _amount) external returns (bool);
    function approve(address spender, uint256 amount) external returns (bool);
    function balanceOf(address owner) external view returns (uint256);
}

interface IEmpireFactory {
    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);
}

interface IEmpireRouter {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
}

/// @title EmpireV2: A contract for the EMPIREv2 token
/// @author Empire Capital (Splnty, Tranquil Flow) https://github.com/Empire-Capital
/// @dev This contract defines the core logic of EMPIRE token
contract EmpireV2 is Controller {
    string  private _name = "Empire Network";
    string  private _symbol = "EMPIRE";
    uint256 private _totalSupply;
    uint8   private _decimals = 18;

    address public pair;
    uint256 public addLiquidityAmount;
    uint256 public buyLiquidityFee;
    uint256 public sellLiquidityFee;
    uint256 public blockCooldownAmount;

    bool private _inSwap;
    bool public tradingActive;
    bool public antiBotsActive;

    IEmpireRouter private router;
    
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => uint256) private _balances;
    mapping (address => bool) public _excludedFees;
    mapping (address => bool) public _excludedAntiMev;
    mapping (address => uint256) public antiMevBlock;
    mapping (address => bool) public automatedMarketMakerPairs;
   
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
    event LiquidityAdded(uint256 tokens, uint256 nativeCoin, uint256 lpAdded);
    event NewLimit(uint256 newAddLiqAmount);
    event NewFees(uint256 newBuyLiqFee, uint256 newSellLiqFee);
    event SetExcludedFees(address addr, bool status);
    event SetTradingActive(bool status);
    
    /// @param _router The address of the router that EMPIRE is interacting with for transfer fees
    constructor (address _router) {

        router = IEmpireRouter(_router);        

        pair = IEmpireFactory(router.factory())
            .createPair(address(this), router.WETH());

        setAutomatedMarketMakerPair(pair, true);

        addLiquidityAmount = 100 * 10 **_decimals;
        buyLiquidityFee = 5000;         // 5%
        sellLiquidityFee = 5000;        // 5%
        blockCooldownAmount = 1;
        antiBotsActive = true;
        
        setExcludedFees(address(this), true);
        setExcludedFees(owner(), true);
        setExcludedAntiMev(address(this), true);
    }
    
    receive() payable external {}

    /*//////////////////////////////////////////////////////////////
                            USER FUNCTIONS
    //////////////////////////////////////////////////////////////*/

    function name() public view returns (string memory) {
        return _name;
    }

    function symbol() public view returns (string memory) {
        return _symbol;
    }
    
    function decimals() public view returns (uint8) {
        return _decimals;
    }
    
    function totalSupply() public view returns (uint256) {
        return _totalSupply;
    }

    function balanceOf(address account) public view returns (uint256) {
        return _balances[account];
    }

    function _approve(address owner, address spender, uint256 amount) internal virtual {
        require(owner != address(0), "Wallet address can not be the zero address!");
        require(spender != address(0), "Spender can not be the zero address!");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function approve(address spender, uint256 amount) public virtual returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }
    
    function allowance(address owner, address spender) public view virtual returns (uint256) {
        return _allowances[owner][spender];
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(msg.sender, spender, _allowances[msg.sender][spender] + addedValue);
        return true;
    }
    
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[msg.sender][spender];
        require(currentAllowance >= subtractedValue, "Decreased allowance below zero!");
        _approve(msg.sender, spender, currentAllowance - subtractedValue);
        return true;
    }

    /// @notice High level function to move `amount` of tokens from `msg.sender` to `recipient` and applying fees
    /// @dev Transfers amount of tokens from the msg.sender to recipient
    /// @param recipient The address that is receiving tokens
    /// @param amount The initial amount of tokens being sent, before fees on transfer
    /// @return True if transfer is successful, else false
    function transfer(address recipient, uint256 amount) public virtual returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }
    
    /// @notice High level function to move `amount` of tokens from `sender` to `recipient` and applying fees
    /// @dev Transfers amount of tokens from sender to recipient
    /// @param sender The address that is sending tokens
    /// @param recipient The address that is receiving tokens
    /// @param amount The initial amount of tokens being sent, before fees on transfer
    /// @return True if transfer is succesful, else false
    function transferFrom(address sender, address recipient, uint256 amount) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[sender][msg.sender];
        require(currentAllowance >= amount, "Amount exceeds allowance!");
        _transfer(sender, recipient, amount);
        _approve(sender, msg.sender, currentAllowance - amount);    
        return true;
    }

    /// @notice Low level function that sends `amount` from `sender` to `recipient`, checking limitations & apply fees
    /// @dev Transfers amount of tokens from sender to recipient
    /// @param sender The address that is sending tokens
    /// @param recipient The address that is receiving tokens
    /// @param amount The initial amount of tokens being sent, before fees on transfer
    function _transfer(address sender, address recipient, uint256 amount) internal virtual {

        //anti mev
        if(antiBotsActive) {
            if(!_excludedAntiMev[sender] && !_excludedAntiMev[recipient])
            {
                address actor = antiMevCheck(sender, recipient);
                antiMevFreq(actor);
                antiMevBlock[actor] = block.number;
            }
        }
        
        uint256 senderBalance = balanceOf(sender);
        require(senderBalance >= amount, "Amount exceeds senders balance!");
        _balances[sender] = senderBalance - amount;

       if(!tradingActive){
            require(_excludedFees[sender] || _excludedFees[recipient], "Trading is not active.");
        }

        bool takeFee = !_inSwap;

        if(
            _excludedFees[sender] || 
            _excludedFees[recipient] 
        ) {
            takeFee = false;
        }

        if(takeFee) {
            uint256 liquidityAmount = 0;
        
            //if buy
            if(automatedMarketMakerPairs[sender]) {
                liquidityAmount = amount * buyLiquidityFee / 100000;
            }

            //if sell
            if(automatedMarketMakerPairs[recipient]) {
                liquidityAmount = amount * sellLiquidityFee / 100000;
                
                swapAddLiquidity();
            }

            if(liquidityAmount > 0){ 
                amount -= liquidityAmount;
                _balances[address(this)] += liquidityAmount;
                emit Transfer(sender, address(this), liquidityAmount);
            }
        }
        
        _balances[recipient] += amount;
        emit Transfer(sender, recipient, amount);
    }

    /// @dev Adds liquidity on the EMPIRE/Native Coin pair
    /// @param tokenAmount The amount of tokens for adding to liquidity
    /// @param amount The amount of native coin for adding to liquidity
    function addLiquidity(uint256 tokenAmount, uint256 amount) internal virtual {
        _approve(address(this), address(router), tokenAmount);
        (uint256 tokens, uint256 eth, uint256 lpCreated) = 
        router.addLiquidityETH{value: amount}(address(this), tokenAmount, 0, 0, address(this), block.timestamp);
        emit LiquidityAdded(tokens, eth, lpCreated);
    }

    /// @dev Swaps `amount` EMPIRE for native coin
    /// @param amount The amount of EMPIRE to swap
    function swapTokensForEth(uint256 amount) internal virtual {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();
        _approve(address(this), address(router), amount);
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(amount, 0, path, address(this), block.timestamp);
    }

    /// @notice Sells EMPIRE for native coin and uses both to add liquidity
    /// @dev Checks if the amount of EMPIRE on the contract is > addLiquidityAmount
    function swapAddLiquidity() internal virtual {
        uint256 tokenBalance = balanceOf(address(this));
        if(!_inSwap && tokenBalance >= addLiquidityAmount) {
            _inSwap = true;
            
            uint256 sellAmount = tokenBalance;
            uint256 sellHalf = sellAmount / 2;

            uint256 initialEth = address(this).balance;
            swapTokensForEth(sellHalf);
            uint256 receivedEth = address(this).balance - initialEth;

            addLiquidity(sellAmount - sellHalf, (receivedEth));

            _inSwap = false;
        }
    }

    /// @notice Burns `amount` EMPIRE tokens
    /// @dev Used to manually burn EMPIRE
    /// @param amount The amount of EMPIRE to burn
    function manualBurn(uint256 amount) external {
        address account = msg.sender;
        require(amount <= _balances[account], "Burn amount exceeds balance");
        _balances[account] -= amount;
        _totalSupply -= amount;
        emit Transfer(account, address(0), amount);
    }

    /*//////////////////////////////////////////////////////////////
                            ANTI BOT FUNCTIONS
    //////////////////////////////////////////////////////////////*/

    function isContract(address account) internal view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

    function antiMevCheck(address _from, address _to) internal virtual returns (address) {
        require(!isContract(_to) || !isContract(_from), "No bots allowed!");
        if (isContract(_to)) return _from;
        else return _to;
    }

    function antiMevFreq(address addr) internal virtual {
        bool isAllowed = antiMevBlock[addr] == 0 ||
            ((antiMevBlock[addr] + blockCooldownAmount) < (block.number + 1));
        require(isAllowed, "Max tx frequency exceeded!");
    }

    /*//////////////////////////////////////////////////////////////
                            ADMIN FUNCTIONS
    //////////////////////////////////////////////////////////////*/

    /// @notice Withdraws token address or native if 0x0 is input
    /// @dev Withdraws native coin or tokens from contract if some gets stuck on the contract
    /// @param token The address of the token being withdrawn
    function recover(address token) external onlyOwner {
        if (token == 0x0000000000000000000000000000000000000000) {
           (bool success,) = payable(msg.sender).call{value: address(this).balance}("");
           require(success, "Transfer failed.");
        } else {
            IERC20(token).transfer(msg.sender, IERC20(token).balanceOf(address(this)));
        }
    }

    /// @notice Changes antiBotsActive to `value`
    /// @dev Determines if anti-MEV checks are conducted on transfers
    /// @param value Determines the new value for antiBotsActive
    function setAntiBotsActive(bool value) external onlyOwner {
        antiBotsActive = value;
    }

    /// @notice Defines the new value for addLiquidityAmount (`_addLiquidityAmount`)
    /// @dev addLiquidityAmount = how many tokens to hold on contract before selling for liquidity
    /// @param _addLiquidityAmount Determines the new value for addLiquidityAmount
    function setLimit(uint256 _addLiquidityAmount) external onlyOwner {
        addLiquidityAmount = _addLiquidityAmount * 10**_decimals;
        emit NewLimit(_addLiquidityAmount);
    }

    /// @dev Defines the fees on transfer for buys and sells separately
    /// @param _buyLiquidityFee Determines the new value for buyLiquidityFee
    /// @param _sellLiquidityFee Determines the new value for sellLiquidityFee
    function setFees(
        uint256 _buyLiquidityFee,
        uint256 _sellLiquidityFee
        ) external onlyOwner {
        require(
            _buyLiquidityFee <= 5000
            && _sellLiquidityFee <= 5000
            , "Fees cannot be more than 5 percent");
        buyLiquidityFee = _buyLiquidityFee;
        sellLiquidityFee = _sellLiquidityFee;
        emit NewFees(_buyLiquidityFee, _sellLiquidityFee);
    }

    /// @notice Defines if an address (`addy`) is exempt from fees on transfer
    /// @param addy Determines the address to be excluded from fees on transfer
    /// @param status Determines if `addy` is excluded from fees on transfer
    function setExcludedFees(address addy, bool status) public onlyOwner {
        _excludedFees[addy] = status;
        emit SetExcludedFees(addy, status);
    }

    /// @notice Defines if an address (`addy`) is exempt from anti-MEV checks
    /// @param addy Determines the address to be excluded from anti-MEV checks
    /// @param status Determines if `addy` is excluded from anti-MEV checks
    function setExcludedAntiMev(address addy, bool status) public onlyOwner {
        _excludedAntiMev[addy] = status;
    }

    /// @notice Defines if `addy` is a DEX trading pair for the EMPIRE token
    /// @dev Specifies the pair address contract
    /// @param addy Determines the address of the market maker pair
    /// @param status Determines if `addy` is a market maker pair
    function setAutomatedMarketMakerPair(address addy, bool status) public onlyOwner {
        automatedMarketMakerPairs[addy] = status;
    }


    /// @notice Changes the tradingActive to `status`
    /// @dev tradingActive determines if trading on a DEX is enabled 
    /// @param status Determines the new status for tradingActive
    function setTradingActive(bool status) external onlyOwner {
        tradingActive = status;
        emit SetTradingActive(status);
    }

    /// @notice Changes the setBlockCooldown variable to `value`
    /// @dev Used to determine anti-MEV logic, setting how many blocks can elapse between transfers
    /// @param value Determines the new value for setBlockCooldown
    function setBlockCooldown(uint value) external onlyOwner {
        blockCooldownAmount = value;
    }

    /// @notice Changes the router variable to `_router`
    /// @dev Used for changing which router is integrated into the auto-liquidity feature
    /// @param _router Determines the address of the new router
    function changeRouter(address _router) external onlyOwner {
        router = IEmpireRouter(_router);
    }

    /*//////////////////////////////////////////////////////////////
                          BRIDGING FUNCTIONS
    //////////////////////////////////////////////////////////////*/

    // BRIDGE OPERATOR ONLY REQUIRES 2BA - TWO BLOCKCHAIN AUTHENTICATION //

    /// @dev Receives `amount` EMPIRE from a cross chain transfer
    /// @param account The address that is receiving a cross chain transfer
    /// @param amount The amount of EMPIRE tokens being received cross chain
    function unlock(address account, uint256 amount) external onlyOperator {
        require(account != address(0), "ERC20: mint to the zero address");

        _totalSupply += amount;
        _balances[account] += amount;

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

    /// @notice Called by bridge when user has calls function lock() on LockBurnBridge
    /// @dev Initiates cross chain transfer of `amount` EMPIRE to another chain
    /// @param account The address that is doing a cross chain transfer
    /// @param amount The amount of EMPIRE tokens being transferred cross chain
    function lock(address account, uint256 amount) external onlyOperator {
        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
        }
        _totalSupply -= amount;

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

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_router","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"nativeCoin","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"lpAdded","type":"uint256"}],"name":"LiquidityAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newBuyLiqFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newSellLiqFee","type":"uint256"}],"name":"NewFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newAddLiqAmount","type":"uint256"}],"name":"NewLimit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_operator","type":"address"},{"indexed":false,"internalType":"bool","name":"_whiteList","type":"bool"}],"name":"OperatorCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"addr","type":"address"},{"indexed":false,"internalType":"bool","name":"status","type":"bool"}],"name":"SetExcludedFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"status","type":"bool"}],"name":"SetTradingActive","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_excludedAntiMev","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_excludedFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addLiquidityAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"antiBotsActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"antiMevBlock","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":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"blockCooldownAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_router","type":"address"}],"name":"changeRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"lock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"manualBurn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"operator","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"recover","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"value","type":"bool"}],"name":"setAntiBotsActive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addy","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"setBlockCooldown","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addy","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setExcludedAntiMev","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addy","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setExcludedFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyLiquidityFee","type":"uint256"},{"internalType":"uint256","name":"_sellLiquidityFee","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_addLiquidityAmount","type":"uint256"}],"name":"setLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_operator","type":"address"},{"internalType":"bool","name":"_whiteList","type":"bool"}],"name":"setOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"name":"setTradingActive","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":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"unlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c0604052600e60808190526d456d70697265204e6574776f726b60901b60a090815262000031916002919062000523565b5060408051808201909152600680825265454d5049524560d01b6020909201918252620000619160039162000523565b506005805460ff191660121790553480156200007c57600080fd5b50604051620029af380380620029af8339810160408190526200009f91620005c9565b620000aa3362000335565b80600a60036101000a8154816001600160a01b0302191690836001600160a01b03160217905550600a60039054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200012057600080fd5b505afa15801562000135573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200015b9190620005c9565b6001600160a01b031663c9c6539630600a60039054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620001b957600080fd5b505afa158015620001ce573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001f49190620005c9565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156200023d57600080fd5b505af115801562000252573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002789190620005c9565b60058054610100600160a81b0319166101006001600160a01b0393841681029190911791829055620002af92910416600162000385565b600554620002c29060ff16600a62000642565b620002cf90606462000703565b600655611388600781905560085560016009819055600a805462ff000019166201000017905562000302903090620003ff565b62000321620003196000546001600160a01b031690565b6001620003ff565b6200032e306001620004ad565b5062000778565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000546001600160a01b03163314620003d45760405162461bcd60e51b815260206004820181905260248201526000805160206200298f83398151915260448201526064015b60405180910390fd5b6001600160a01b03919091166000908152601060205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146200044a5760405162461bcd60e51b815260206004820181905260248201526000805160206200298f8339815191526044820152606401620003cb565b6001600160a01b0382166000818152600d6020908152604091829020805460ff19168515159081179091558251938452908301527f2f6377b1bb86f1f4b88374feff2e0852087984db53f9c4045236ddc58fa0a49a910160405180910390a15050565b6000546001600160a01b03163314620004f85760405162461bcd60e51b815260206004820181905260248201526000805160206200298f8339815191526044820152606401620003cb565b6001600160a01b03919091166000908152600e60205260409020805460ff1916911515919091179055565b828054620005319062000725565b90600052602060002090601f016020900481019282620005555760008555620005a0565b82601f106200057057805160ff1916838001178555620005a0565b82800160010185558215620005a0579182015b82811115620005a057825182559160200191906001019062000583565b50620005ae929150620005b2565b5090565b5b80821115620005ae5760008155600101620005b3565b600060208284031215620005db578081fd5b81516001600160a01b0381168114620005f2578182fd5b9392505050565b600181815b808511156200063a5781600019048211156200061e576200061e62000762565b808516156200062c57918102915b93841c9390800290620005fe565b509250929050565b6000620005f260ff8416836000826200065e57506001620006fd565b816200066d57506000620006fd565b81600181146200068657600281146200069157620006b1565b6001915050620006fd565b60ff841115620006a557620006a562000762565b50506001821b620006fd565b5060208310610133831016604e8410600b8410161715620006d6575081810a620006fd565b620006e28383620005f9565b8060001904821115620006f957620006f962000762565b0290505b92915050565b600081600019048311821515161562000720576200072062000762565b500290565b600181811c908216806200073a57607f821691505b602082108114156200075c57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b61220780620007886000396000f3fe60806040526004361061023f5760003560e01c80636db41ce91161012e578063a457c2d7116100ab578063dd62ed3e1161006f578063dd62ed3e14610708578063f11a24d31461074e578063f2fde38b14610764578063f637434214610784578063fe8a6fc41461079a57600080fd5b8063a457c2d714610654578063a8aa1b3114610674578063a9059cbb14610699578063b62496f5146106b9578063bbc0c742146106e957600080fd5b80638da5cb5b116100f25780638da5cb5b1461059d578063959bd6c2146105cf57806395d89b41146105ef5780639a307391146106045780639a7a23d61461063457600080fd5b80636db41ce9146104f257806370a0823114610512578063715018a6146105485780637eee288d1461055d57806380f683101461057d57600080fd5b806323b872dd116101bc57806337c59b5a1161018057806337c59b5a1461044c578063395093511461047c57806341f20b681461049c578063558a7297146104bc57806363ce099f146104dc57600080fd5b806323b872dd146103aa57806327ea6f2b146103ca578063282d3fdf146103ea578063313ce5671461040a578063340ac20f1461042c57600080fd5b806313c72aed1161020357806313c72aed1461030857806318160ddd146103285780631868aadf146103475780632260ac691461035d57806323b635851461038a57600080fd5b806306fdde031461024b578063095ea7b3146102765780630b78f9c0146102a65780630cd865ec146102c85780630e6fa0ff146102e857600080fd5b3661024657005b600080fd5b34801561025757600080fd5b506102606107ca565b60405161026d9190611ee9565b60405180910390f35b34801561028257600080fd5b50610296610291366004611e08565b61085c565b604051901515815260200161026d565b3480156102b257600080fd5b506102c66102c1366004611e9b565b610873565b005b3480156102d457600080fd5b506102c66102e3366004611d24565b610959565b3480156102f457600080fd5b506102c6610303366004611ddb565b610b22565b34801561031457600080fd5b506102c6610323366004611e6b565b610b77565b34801561033457600080fd5b506004545b60405190815260200161026d565b34801561035357600080fd5b5061033960095481565b34801561036957600080fd5b50610339610378366004611d24565b600f6020526000908152604090205481565b34801561039657600080fd5b506102c66103a5366004611e6b565b610ba6565b3480156103b657600080fd5b506102966103c5366004611d9b565b610c7f565b3480156103d657600080fd5b506102c66103e5366004611e6b565b610d1d565b3480156103f657600080fd5b506102c6610405366004611e08565b610d9c565b34801561041657600080fd5b5060055460405160ff909116815260200161026d565b34801561043857600080fd5b506102c6610447366004611d24565b610ec8565b34801561045857600080fd5b50610296610467366004611d24565b600d6020526000908152604090205460ff1681565b34801561048857600080fd5b50610296610497366004611e08565b610f1e565b3480156104a857600080fd5b50600a546102969062010000900460ff1681565b3480156104c857600080fd5b506102c66104d7366004611ddb565b610f55565b3480156104e857600080fd5b5061033960065481565b3480156104fe57600080fd5b506102c661050d366004611ddb565b610fdb565b34801561051e57600080fd5b5061033961052d366004611d24565b6001600160a01b03166000908152600c602052604090205490565b34801561055457600080fd5b506102c6611061565b34801561056957600080fd5b506102c6610578366004611e08565b611097565b34801561058957600080fd5b506102c6610598366004611e33565b6111ac565b3480156105a957600080fd5b506000546001600160a01b03165b6040516001600160a01b03909116815260200161026d565b3480156105db57600080fd5b506102c66105ea366004611e33565b6111f2565b3480156105fb57600080fd5b50610260611265565b34801561061057600080fd5b5061029661061f366004611d24565b60016020526000908152604090205460ff1681565b34801561064057600080fd5b506102c661064f366004611ddb565b611274565b34801561066057600080fd5b5061029661066f366004611e08565b6112c9565b34801561068057600080fd5b506005546105b79061010090046001600160a01b031681565b3480156106a557600080fd5b506102966106b4366004611e08565b611356565b3480156106c557600080fd5b506102966106d4366004611d24565b60106020526000908152604090205460ff1681565b3480156106f557600080fd5b50600a5461029690610100900460ff1681565b34801561071457600080fd5b50610339610723366004611d63565b6001600160a01b039182166000908152600b6020908152604080832093909416825291909152205490565b34801561075a57600080fd5b5061033960075481565b34801561077057600080fd5b506102c661077f366004611d24565b611363565b34801561079057600080fd5b5061033960085481565b3480156107a657600080fd5b506102966107b5366004611d24565b600e6020526000908152604090205460ff1681565b6060600280546107d99061213d565b80601f01602080910402602001604051908101604052809291908181526020018280546108059061213d565b80156108525780601f1061082757610100808354040283529160200191610852565b820191906000526020600020905b81548152906001019060200180831161083557829003601f168201915b5050505050905090565b60006108693384846113fb565b5060015b92915050565b6000546001600160a01b031633146108a65760405162461bcd60e51b815260040161089d90611f3c565b60405180910390fd5b61138882111580156108ba57506113888111155b6109115760405162461bcd60e51b815260206004820152602260248201527f466565732063616e6e6f74206265206d6f7265207468616e20352070657263656044820152611b9d60f21b606482015260840161089d565b6007829055600881905560408051838152602081018390527f0aaa05fba10caab20c7dfcd757223e489dbd2313a5e1add54bca74aceaf1781991015b60405180910390a15050565b6000546001600160a01b031633146109835760405162461bcd60e51b815260040161089d90611f3c565b6001600160a01b038116610a2057604051600090339047908381818185875af1925050503d80600081146109d3576040519150601f19603f3d011682016040523d82523d6000602084013e6109d8565b606091505b5050905080610a1c5760405162461bcd60e51b815260206004820152601060248201526f2a3930b739b332b9103330b4b632b21760811b604482015260640161089d565b5050565b6040516370a0823160e01b81523060048201526001600160a01b0382169063a9059cbb90339083906370a082319060240160206040518083038186803b158015610a6957600080fd5b505afa158015610a7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aa19190611e83565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381600087803b158015610ae757600080fd5b505af1158015610afb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a1c9190611e4f565b50565b6000546001600160a01b03163314610b4c5760405162461bcd60e51b815260040161089d90611f3c565b6001600160a01b03919091166000908152600e60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610ba15760405162461bcd60e51b815260040161089d90611f3c565b600955565b336000818152600c6020526040902054821115610c055760405162461bcd60e51b815260206004820152601b60248201527f4275726e20616d6f756e7420657863656564732062616c616e63650000000000604482015260640161089d565b6001600160a01b0381166000908152600c602052604081208054849290610c2d908490612126565b925050819055508160046000828254610c469190612126565b90915550506040518281526000906001600160a01b038316906000805160206121b2833981519152906020015b60405180910390a35050565b6001600160a01b0383166000908152600b6020908152604080832033845290915281205482811015610cf35760405162461bcd60e51b815260206004820152601960248201527f416d6f756e74206578636565647320616c6c6f77616e63652100000000000000604482015260640161089d565b610cfe858585611520565b610d128533610d0d8685612126565b6113fb565b506001949350505050565b6000546001600160a01b03163314610d475760405162461bcd60e51b815260040161089d90611f3c565b600554610d589060ff16600a61205c565b610d629082612107565b6006556040518181527fe1e1c8251499b303aefb01cf84a5ce22a95911c20ce2f3f5ae670441a6353d82906020015b60405180910390a150565b3360009081526001602052604090205460ff16610deb5760405162461bcd60e51b815260206004820152600d60248201526c27b7363c96a7b832b930ba37b960991b604482015260640161089d565b6001600160a01b0382166000908152600c602052604090205481811015610e5f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b606482015260840161089d565b6001600160a01b0383166000908152600c60205260408120838303905560048054849290610e8e908490612126565b90915550506040518281526000906001600160a01b038516906000805160206121b2833981519152906020015b60405180910390a3505050565b6000546001600160a01b03163314610ef25760405162461bcd60e51b815260040161089d90611f3c565b600a80546001600160a01b039092166301000000026301000000600160b81b0319909216919091179055565b336000818152600b602090815260408083206001600160a01b03871684529091528120549091610869918590610d0d908690611fe1565b6000546001600160a01b03163314610f7f5760405162461bcd60e51b815260040161089d90611f3c565b6001600160a01b038216600081815260016020908152604091829020805460ff19168515159081179091558251938452908301527f016538030c53a1e2cce1e920121b80b3fca876970fa29ed3c3b1c0a6fc423621910161094d565b6000546001600160a01b031633146110055760405162461bcd60e51b815260040161089d90611f3c565b6001600160a01b0382166000818152600d6020908152604091829020805460ff19168515159081179091558251938452908301527f2f6377b1bb86f1f4b88374feff2e0852087984db53f9c4045236ddc58fa0a49a910161094d565b6000546001600160a01b0316331461108b5760405162461bcd60e51b815260040161089d90611f3c565b6110956000611881565b565b3360009081526001602052604090205460ff166110e65760405162461bcd60e51b815260206004820152600d60248201526c27b7363c96a7b832b930ba37b960991b604482015260640161089d565b6001600160a01b03821661113c5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161089d565b806004600082825461114e9190611fe1565b90915550506001600160a01b0382166000908152600c60205260408120805483929061117b908490611fe1565b90915550506040518181526001600160a01b038316906000906000805160206121b283398151915290602001610c73565b6000546001600160a01b031633146111d65760405162461bcd60e51b815260040161089d90611f3c565b600a8054911515620100000262ff000019909216919091179055565b6000546001600160a01b0316331461121c5760405162461bcd60e51b815260040161089d90611f3c565b600a80548215156101000261ff00199091161790556040517f4fa3af35030a6d531e010728ded75e43818c3b10f563bec547fff22472898da090610d9190831515815260200190565b6060600380546107d99061213d565b6000546001600160a01b0316331461129e5760405162461bcd60e51b815260040161089d90611f3c565b6001600160a01b03919091166000908152601060205260409020805460ff1916911515919091179055565b336000908152600b602090815260408083206001600160a01b03861684529091528120548281101561133d5760405162461bcd60e51b815260206004820152601f60248201527f44656372656173656420616c6c6f77616e63652062656c6f77207a65726f2100604482015260640161089d565b61134c3385610d0d8685612126565b5060019392505050565b6000610869338484611520565b6000546001600160a01b0316331461138d5760405162461bcd60e51b815260040161089d90611f3c565b6001600160a01b0381166113f25760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161089d565b610b1f81611881565b6001600160a01b0383166114655760405162461bcd60e51b815260206004820152602b60248201527f57616c6c657420616464726573732063616e206e6f7420626520746865207a6560448201526a726f20616464726573732160a81b606482015260840161089d565b6001600160a01b0382166114c75760405162461bcd60e51b8152602060048201526024808201527f5370656e6465722063616e206e6f7420626520746865207a65726f20616464726044820152636573732160e01b606482015260840161089d565b6001600160a01b038381166000818152600b602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259101610ebb565b600a5462010000900460ff16156115aa576001600160a01b0383166000908152600e602052604090205460ff1615801561157357506001600160a01b0382166000908152600e602052604090205460ff16155b156115aa57600061158484846118d1565b905061158f81611934565b6001600160a01b03166000908152600f602052604090204390555b6001600160a01b0383166000908152600c6020526040902054818110156116135760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e7420657863656564732073656e646572732062616c616e63652100604482015260640161089d565b61161d8282612126565b6001600160a01b0385166000908152600c6020526040902055600a54610100900460ff166116c9576001600160a01b0384166000908152600d602052604090205460ff168061168457506001600160a01b0383166000908152600d602052604090205460ff165b6116c95760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b604482015260640161089d565b600a546001600160a01b0385166000908152600d602052604090205460ff9182161591168061171057506001600160a01b0384166000908152600d602052604090205460ff165b15611719575060005b8015611810576001600160a01b03851660009081526010602052604081205460ff161561175f57620186a0600754856117529190612107565b61175c9190611ff9565b90505b6001600160a01b03851660009081526010602052604090205460ff16156117a657620186a0600854856117929190612107565b61179c9190611ff9565b90506117a66119d6565b801561180e576117b68185612126565b306000908152600c60205260408120805492965083929091906117da908490611fe1565b909155505060405181815230906001600160a01b038816906000805160206121b28339815191529060200160405180910390a35b505b6001600160a01b0384166000908152600c602052604081208054859290611838908490611fe1565b92505081905550836001600160a01b0316856001600160a01b03166000805160206121b28339815191528560405161187291815260200190565b60405180910390a35050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000813b15806118e05750823b155b61191f5760405162461bcd60e51b815260206004820152601060248201526f4e6f20626f747320616c6c6f7765642160801b604482015260640161089d565b813b1561192d57508161086d565b508061086d565b6001600160a01b0381166000908152600f60205260408120541580611987575061195f436001611fe1565b6009546001600160a01b0384166000908152600f60205260409020546119859190611fe1565b105b905080610a1c5760405162461bcd60e51b815260206004820152601a60248201527f4d6178207478206672657175656e637920657863656564656421000000000000604482015260640161089d565b306000908152600c6020526040902054600a5460ff161580156119fb57506006548110155b15610b1f57600a805460ff19166001179055806000611a1b600283611ff9565b905047611a2782611a59565b6000611a338247612126565b9050611a48611a428486612126565b82611c05565b5050600a805460ff19169055505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611a9c57634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b031681525050600a60039054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611b0a57600080fd5b505afa158015611b1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b429190611d47565b81600181518110611b6357634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152600a54611b909130916301000000900416846113fb565b600a5460405163791ac94760e01b815263010000009091046001600160a01b03169063791ac94790611bcf908590600090869030904290600401611f71565b600060405180830381600087803b158015611be957600080fd5b505af1158015611bfd573d6000803e3d6000fd5b505050505050565b600a54611c24903090630100000090046001600160a01b0316846113fb565b600a5460405163f305d71960e01b81523060048201819052602482018590526000604483018190526064830181905260848301919091524260a48301529182918291630100000090046001600160a01b03169063f305d71990869060c4016060604051808303818588803b158015611c9b57600080fd5b505af1158015611caf573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611cd49190611ebc565b604080518481526020810184905290810182905292955090935091507fd7f28048575eead8851d024ead087913957dfb4fd1a02b4d1573f5352a5a2be39060600160405180910390a15050505050565b600060208284031215611d35578081fd5b8135611d408161218e565b9392505050565b600060208284031215611d58578081fd5b8151611d408161218e565b60008060408385031215611d75578081fd5b8235611d808161218e565b91506020830135611d908161218e565b809150509250929050565b600080600060608486031215611daf578081fd5b8335611dba8161218e565b92506020840135611dca8161218e565b929592945050506040919091013590565b60008060408385031215611ded578182fd5b8235611df88161218e565b91506020830135611d90816121a3565b60008060408385031215611e1a578182fd5b8235611e258161218e565b946020939093013593505050565b600060208284031215611e44578081fd5b8135611d40816121a3565b600060208284031215611e60578081fd5b8151611d40816121a3565b600060208284031215611e7c578081fd5b5035919050565b600060208284031215611e94578081fd5b5051919050565b60008060408385031215611ead578182fd5b50508035926020909101359150565b600080600060608486031215611ed0578283fd5b8351925060208401519150604084015190509250925092565b6000602080835283518082850152825b81811015611f1557858101830151858201604001528201611ef9565b81811115611f265783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b81811015611fc05784516001600160a01b031683529383019391830191600101611f9b565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611ff457611ff4612178565b500190565b60008261201457634e487b7160e01b81526012600452602481fd5b500490565b600181815b8085111561205457816000190482111561203a5761203a612178565b8085161561204757918102915b93841c939080029061201e565b509250929050565b6000611d4060ff8416836000826120755750600161086d565b816120825750600061086d565b816001811461209857600281146120a2576120be565b600191505061086d565b60ff8411156120b3576120b3612178565b50506001821b61086d565b5060208310610133831016604e8410600b84101617156120e1575081810a61086d565b6120eb8383612019565b80600019048211156120ff576120ff612178565b029392505050565b600081600019048311821515161561212157612121612178565b500290565b60008282101561213857612138612178565b500390565b600181811c9082168061215157607f821691505b6020821081141561217257634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0381168114610b1f57600080fd5b8015158114610b1f57600080fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220b90057c6da5e45422c6d7352e4a563fdbe7874f288a90b2c3826febaddbd2f7564736f6c634300080400334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65720000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

Deployed Bytecode

0x60806040526004361061023f5760003560e01c80636db41ce91161012e578063a457c2d7116100ab578063dd62ed3e1161006f578063dd62ed3e14610708578063f11a24d31461074e578063f2fde38b14610764578063f637434214610784578063fe8a6fc41461079a57600080fd5b8063a457c2d714610654578063a8aa1b3114610674578063a9059cbb14610699578063b62496f5146106b9578063bbc0c742146106e957600080fd5b80638da5cb5b116100f25780638da5cb5b1461059d578063959bd6c2146105cf57806395d89b41146105ef5780639a307391146106045780639a7a23d61461063457600080fd5b80636db41ce9146104f257806370a0823114610512578063715018a6146105485780637eee288d1461055d57806380f683101461057d57600080fd5b806323b872dd116101bc57806337c59b5a1161018057806337c59b5a1461044c578063395093511461047c57806341f20b681461049c578063558a7297146104bc57806363ce099f146104dc57600080fd5b806323b872dd146103aa57806327ea6f2b146103ca578063282d3fdf146103ea578063313ce5671461040a578063340ac20f1461042c57600080fd5b806313c72aed1161020357806313c72aed1461030857806318160ddd146103285780631868aadf146103475780632260ac691461035d57806323b635851461038a57600080fd5b806306fdde031461024b578063095ea7b3146102765780630b78f9c0146102a65780630cd865ec146102c85780630e6fa0ff146102e857600080fd5b3661024657005b600080fd5b34801561025757600080fd5b506102606107ca565b60405161026d9190611ee9565b60405180910390f35b34801561028257600080fd5b50610296610291366004611e08565b61085c565b604051901515815260200161026d565b3480156102b257600080fd5b506102c66102c1366004611e9b565b610873565b005b3480156102d457600080fd5b506102c66102e3366004611d24565b610959565b3480156102f457600080fd5b506102c6610303366004611ddb565b610b22565b34801561031457600080fd5b506102c6610323366004611e6b565b610b77565b34801561033457600080fd5b506004545b60405190815260200161026d565b34801561035357600080fd5b5061033960095481565b34801561036957600080fd5b50610339610378366004611d24565b600f6020526000908152604090205481565b34801561039657600080fd5b506102c66103a5366004611e6b565b610ba6565b3480156103b657600080fd5b506102966103c5366004611d9b565b610c7f565b3480156103d657600080fd5b506102c66103e5366004611e6b565b610d1d565b3480156103f657600080fd5b506102c6610405366004611e08565b610d9c565b34801561041657600080fd5b5060055460405160ff909116815260200161026d565b34801561043857600080fd5b506102c6610447366004611d24565b610ec8565b34801561045857600080fd5b50610296610467366004611d24565b600d6020526000908152604090205460ff1681565b34801561048857600080fd5b50610296610497366004611e08565b610f1e565b3480156104a857600080fd5b50600a546102969062010000900460ff1681565b3480156104c857600080fd5b506102c66104d7366004611ddb565b610f55565b3480156104e857600080fd5b5061033960065481565b3480156104fe57600080fd5b506102c661050d366004611ddb565b610fdb565b34801561051e57600080fd5b5061033961052d366004611d24565b6001600160a01b03166000908152600c602052604090205490565b34801561055457600080fd5b506102c6611061565b34801561056957600080fd5b506102c6610578366004611e08565b611097565b34801561058957600080fd5b506102c6610598366004611e33565b6111ac565b3480156105a957600080fd5b506000546001600160a01b03165b6040516001600160a01b03909116815260200161026d565b3480156105db57600080fd5b506102c66105ea366004611e33565b6111f2565b3480156105fb57600080fd5b50610260611265565b34801561061057600080fd5b5061029661061f366004611d24565b60016020526000908152604090205460ff1681565b34801561064057600080fd5b506102c661064f366004611ddb565b611274565b34801561066057600080fd5b5061029661066f366004611e08565b6112c9565b34801561068057600080fd5b506005546105b79061010090046001600160a01b031681565b3480156106a557600080fd5b506102966106b4366004611e08565b611356565b3480156106c557600080fd5b506102966106d4366004611d24565b60106020526000908152604090205460ff1681565b3480156106f557600080fd5b50600a5461029690610100900460ff1681565b34801561071457600080fd5b50610339610723366004611d63565b6001600160a01b039182166000908152600b6020908152604080832093909416825291909152205490565b34801561075a57600080fd5b5061033960075481565b34801561077057600080fd5b506102c661077f366004611d24565b611363565b34801561079057600080fd5b5061033960085481565b3480156107a657600080fd5b506102966107b5366004611d24565b600e6020526000908152604090205460ff1681565b6060600280546107d99061213d565b80601f01602080910402602001604051908101604052809291908181526020018280546108059061213d565b80156108525780601f1061082757610100808354040283529160200191610852565b820191906000526020600020905b81548152906001019060200180831161083557829003601f168201915b5050505050905090565b60006108693384846113fb565b5060015b92915050565b6000546001600160a01b031633146108a65760405162461bcd60e51b815260040161089d90611f3c565b60405180910390fd5b61138882111580156108ba57506113888111155b6109115760405162461bcd60e51b815260206004820152602260248201527f466565732063616e6e6f74206265206d6f7265207468616e20352070657263656044820152611b9d60f21b606482015260840161089d565b6007829055600881905560408051838152602081018390527f0aaa05fba10caab20c7dfcd757223e489dbd2313a5e1add54bca74aceaf1781991015b60405180910390a15050565b6000546001600160a01b031633146109835760405162461bcd60e51b815260040161089d90611f3c565b6001600160a01b038116610a2057604051600090339047908381818185875af1925050503d80600081146109d3576040519150601f19603f3d011682016040523d82523d6000602084013e6109d8565b606091505b5050905080610a1c5760405162461bcd60e51b815260206004820152601060248201526f2a3930b739b332b9103330b4b632b21760811b604482015260640161089d565b5050565b6040516370a0823160e01b81523060048201526001600160a01b0382169063a9059cbb90339083906370a082319060240160206040518083038186803b158015610a6957600080fd5b505afa158015610a7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aa19190611e83565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381600087803b158015610ae757600080fd5b505af1158015610afb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a1c9190611e4f565b50565b6000546001600160a01b03163314610b4c5760405162461bcd60e51b815260040161089d90611f3c565b6001600160a01b03919091166000908152600e60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610ba15760405162461bcd60e51b815260040161089d90611f3c565b600955565b336000818152600c6020526040902054821115610c055760405162461bcd60e51b815260206004820152601b60248201527f4275726e20616d6f756e7420657863656564732062616c616e63650000000000604482015260640161089d565b6001600160a01b0381166000908152600c602052604081208054849290610c2d908490612126565b925050819055508160046000828254610c469190612126565b90915550506040518281526000906001600160a01b038316906000805160206121b2833981519152906020015b60405180910390a35050565b6001600160a01b0383166000908152600b6020908152604080832033845290915281205482811015610cf35760405162461bcd60e51b815260206004820152601960248201527f416d6f756e74206578636565647320616c6c6f77616e63652100000000000000604482015260640161089d565b610cfe858585611520565b610d128533610d0d8685612126565b6113fb565b506001949350505050565b6000546001600160a01b03163314610d475760405162461bcd60e51b815260040161089d90611f3c565b600554610d589060ff16600a61205c565b610d629082612107565b6006556040518181527fe1e1c8251499b303aefb01cf84a5ce22a95911c20ce2f3f5ae670441a6353d82906020015b60405180910390a150565b3360009081526001602052604090205460ff16610deb5760405162461bcd60e51b815260206004820152600d60248201526c27b7363c96a7b832b930ba37b960991b604482015260640161089d565b6001600160a01b0382166000908152600c602052604090205481811015610e5f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b606482015260840161089d565b6001600160a01b0383166000908152600c60205260408120838303905560048054849290610e8e908490612126565b90915550506040518281526000906001600160a01b038516906000805160206121b2833981519152906020015b60405180910390a3505050565b6000546001600160a01b03163314610ef25760405162461bcd60e51b815260040161089d90611f3c565b600a80546001600160a01b039092166301000000026301000000600160b81b0319909216919091179055565b336000818152600b602090815260408083206001600160a01b03871684529091528120549091610869918590610d0d908690611fe1565b6000546001600160a01b03163314610f7f5760405162461bcd60e51b815260040161089d90611f3c565b6001600160a01b038216600081815260016020908152604091829020805460ff19168515159081179091558251938452908301527f016538030c53a1e2cce1e920121b80b3fca876970fa29ed3c3b1c0a6fc423621910161094d565b6000546001600160a01b031633146110055760405162461bcd60e51b815260040161089d90611f3c565b6001600160a01b0382166000818152600d6020908152604091829020805460ff19168515159081179091558251938452908301527f2f6377b1bb86f1f4b88374feff2e0852087984db53f9c4045236ddc58fa0a49a910161094d565b6000546001600160a01b0316331461108b5760405162461bcd60e51b815260040161089d90611f3c565b6110956000611881565b565b3360009081526001602052604090205460ff166110e65760405162461bcd60e51b815260206004820152600d60248201526c27b7363c96a7b832b930ba37b960991b604482015260640161089d565b6001600160a01b03821661113c5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161089d565b806004600082825461114e9190611fe1565b90915550506001600160a01b0382166000908152600c60205260408120805483929061117b908490611fe1565b90915550506040518181526001600160a01b038316906000906000805160206121b283398151915290602001610c73565b6000546001600160a01b031633146111d65760405162461bcd60e51b815260040161089d90611f3c565b600a8054911515620100000262ff000019909216919091179055565b6000546001600160a01b0316331461121c5760405162461bcd60e51b815260040161089d90611f3c565b600a80548215156101000261ff00199091161790556040517f4fa3af35030a6d531e010728ded75e43818c3b10f563bec547fff22472898da090610d9190831515815260200190565b6060600380546107d99061213d565b6000546001600160a01b0316331461129e5760405162461bcd60e51b815260040161089d90611f3c565b6001600160a01b03919091166000908152601060205260409020805460ff1916911515919091179055565b336000908152600b602090815260408083206001600160a01b03861684529091528120548281101561133d5760405162461bcd60e51b815260206004820152601f60248201527f44656372656173656420616c6c6f77616e63652062656c6f77207a65726f2100604482015260640161089d565b61134c3385610d0d8685612126565b5060019392505050565b6000610869338484611520565b6000546001600160a01b0316331461138d5760405162461bcd60e51b815260040161089d90611f3c565b6001600160a01b0381166113f25760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161089d565b610b1f81611881565b6001600160a01b0383166114655760405162461bcd60e51b815260206004820152602b60248201527f57616c6c657420616464726573732063616e206e6f7420626520746865207a6560448201526a726f20616464726573732160a81b606482015260840161089d565b6001600160a01b0382166114c75760405162461bcd60e51b8152602060048201526024808201527f5370656e6465722063616e206e6f7420626520746865207a65726f20616464726044820152636573732160e01b606482015260840161089d565b6001600160a01b038381166000818152600b602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259101610ebb565b600a5462010000900460ff16156115aa576001600160a01b0383166000908152600e602052604090205460ff1615801561157357506001600160a01b0382166000908152600e602052604090205460ff16155b156115aa57600061158484846118d1565b905061158f81611934565b6001600160a01b03166000908152600f602052604090204390555b6001600160a01b0383166000908152600c6020526040902054818110156116135760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e7420657863656564732073656e646572732062616c616e63652100604482015260640161089d565b61161d8282612126565b6001600160a01b0385166000908152600c6020526040902055600a54610100900460ff166116c9576001600160a01b0384166000908152600d602052604090205460ff168061168457506001600160a01b0383166000908152600d602052604090205460ff165b6116c95760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b604482015260640161089d565b600a546001600160a01b0385166000908152600d602052604090205460ff9182161591168061171057506001600160a01b0384166000908152600d602052604090205460ff165b15611719575060005b8015611810576001600160a01b03851660009081526010602052604081205460ff161561175f57620186a0600754856117529190612107565b61175c9190611ff9565b90505b6001600160a01b03851660009081526010602052604090205460ff16156117a657620186a0600854856117929190612107565b61179c9190611ff9565b90506117a66119d6565b801561180e576117b68185612126565b306000908152600c60205260408120805492965083929091906117da908490611fe1565b909155505060405181815230906001600160a01b038816906000805160206121b28339815191529060200160405180910390a35b505b6001600160a01b0384166000908152600c602052604081208054859290611838908490611fe1565b92505081905550836001600160a01b0316856001600160a01b03166000805160206121b28339815191528560405161187291815260200190565b60405180910390a35050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000813b15806118e05750823b155b61191f5760405162461bcd60e51b815260206004820152601060248201526f4e6f20626f747320616c6c6f7765642160801b604482015260640161089d565b813b1561192d57508161086d565b508061086d565b6001600160a01b0381166000908152600f60205260408120541580611987575061195f436001611fe1565b6009546001600160a01b0384166000908152600f60205260409020546119859190611fe1565b105b905080610a1c5760405162461bcd60e51b815260206004820152601a60248201527f4d6178207478206672657175656e637920657863656564656421000000000000604482015260640161089d565b306000908152600c6020526040902054600a5460ff161580156119fb57506006548110155b15610b1f57600a805460ff19166001179055806000611a1b600283611ff9565b905047611a2782611a59565b6000611a338247612126565b9050611a48611a428486612126565b82611c05565b5050600a805460ff19169055505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611a9c57634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b031681525050600a60039054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611b0a57600080fd5b505afa158015611b1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b429190611d47565b81600181518110611b6357634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152600a54611b909130916301000000900416846113fb565b600a5460405163791ac94760e01b815263010000009091046001600160a01b03169063791ac94790611bcf908590600090869030904290600401611f71565b600060405180830381600087803b158015611be957600080fd5b505af1158015611bfd573d6000803e3d6000fd5b505050505050565b600a54611c24903090630100000090046001600160a01b0316846113fb565b600a5460405163f305d71960e01b81523060048201819052602482018590526000604483018190526064830181905260848301919091524260a48301529182918291630100000090046001600160a01b03169063f305d71990869060c4016060604051808303818588803b158015611c9b57600080fd5b505af1158015611caf573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611cd49190611ebc565b604080518481526020810184905290810182905292955090935091507fd7f28048575eead8851d024ead087913957dfb4fd1a02b4d1573f5352a5a2be39060600160405180910390a15050505050565b600060208284031215611d35578081fd5b8135611d408161218e565b9392505050565b600060208284031215611d58578081fd5b8151611d408161218e565b60008060408385031215611d75578081fd5b8235611d808161218e565b91506020830135611d908161218e565b809150509250929050565b600080600060608486031215611daf578081fd5b8335611dba8161218e565b92506020840135611dca8161218e565b929592945050506040919091013590565b60008060408385031215611ded578182fd5b8235611df88161218e565b91506020830135611d90816121a3565b60008060408385031215611e1a578182fd5b8235611e258161218e565b946020939093013593505050565b600060208284031215611e44578081fd5b8135611d40816121a3565b600060208284031215611e60578081fd5b8151611d40816121a3565b600060208284031215611e7c578081fd5b5035919050565b600060208284031215611e94578081fd5b5051919050565b60008060408385031215611ead578182fd5b50508035926020909101359150565b600080600060608486031215611ed0578283fd5b8351925060208401519150604084015190509250925092565b6000602080835283518082850152825b81811015611f1557858101830151858201604001528201611ef9565b81811115611f265783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b81811015611fc05784516001600160a01b031683529383019391830191600101611f9b565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611ff457611ff4612178565b500190565b60008261201457634e487b7160e01b81526012600452602481fd5b500490565b600181815b8085111561205457816000190482111561203a5761203a612178565b8085161561204757918102915b93841c939080029061201e565b509250929050565b6000611d4060ff8416836000826120755750600161086d565b816120825750600061086d565b816001811461209857600281146120a2576120be565b600191505061086d565b60ff8411156120b3576120b3612178565b50506001821b61086d565b5060208310610133831016604e8410600b84101617156120e1575081810a61086d565b6120eb8383612019565b80600019048211156120ff576120ff612178565b029392505050565b600081600019048311821515161561212157612121612178565b500290565b60008282101561213857612138612178565b500390565b600181811c9082168061215157607f821691505b6020821081141561217257634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0381168114610b1f57600080fd5b8015158114610b1f57600080fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220b90057c6da5e45422c6d7352e4a563fdbe7874f288a90b2c3826febaddbd2f7564736f6c63430008040033

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

0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

-----Decoded View---------------
Arg [0] : _router (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d


Deployed Bytecode Sourcemap

5402:16745:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7687:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8550:158;;;;;;;;;;-1:-1:-1;8550:158:0;;;;;:::i;:::-;;:::i;:::-;;;5400:14:1;;5393:22;5375:41;;5363:2;5348:18;8550:158:0;5330:92:1;18004:430:0;;;;;;;;;;-1:-1:-1;18004:430:0;;;;;:::i;:::-;;:::i;:::-;;16621:385;;;;;;;;;;-1:-1:-1;16621:385:0;;;;;:::i;:::-;;:::i;19086:122::-;;;;;;;;;;-1:-1:-1;19086:122:0;;;;;:::i;:::-;;:::i;20205:103::-;;;;;;;;;;-1:-1:-1;20205:103:0;;;;;:::i;:::-;;:::i;7972:91::-;;;;;;;;;;-1:-1:-1;8043:12:0;;7972:91;;;12100:25:1;;;12088:2;12073:18;7972:91:0;12055:76:1;5744:34:0;;;;;;;;;;;;;;;;6160:48;;;;;;;;;;-1:-1:-1;6160:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;15002:296;;;;;;;;;;-1:-1:-1;15002:296:0;;;;;:::i;:::-;;:::i;10487:394::-;;;;;;;;;;-1:-1:-1;10487:394:0;;;;;:::i;:::-;;:::i;17579:186::-;;;;;;;;;;-1:-1:-1;17579:186:0;;;;;:::i;:::-;;:::i;21750:392::-;;;;;;;;;;-1:-1:-1;21750:392:0;;;;;:::i;:::-;;:::i;7877:83::-;;;;;;;;;;-1:-1:-1;7943:9:0;;7877:83;;7943:9;;;;13843:36:1;;13831:2;13816:18;7877:83:0;13798:87:1;20530:108:0;;;;;;;;;;-1:-1:-1;20530:108:0;;;;;:::i;:::-;;:::i;6051:46::-;;;;;;;;;;-1:-1:-1;6051:46:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8870:211;;;;;;;;;;-1:-1:-1;8870:211:0;;;;;:::i;:::-;;:::i;5846:26::-;;;;;;;;;;-1:-1:-1;5846:26:0;;;;;;;;;;;3805:179;;;;;;;;;;-1:-1:-1;3805:179:0;;;;;:::i;:::-;;:::i;5629:33::-;;;;;;;;;;;;;;;;18681:161;;;;;;;;;;-1:-1:-1;18681:161:0;;;;;:::i;:::-;;:::i;8071:110::-;;;;;;;;;;-1:-1:-1;8071:110:0;;;;;:::i;:::-;-1:-1:-1;;;;;8155:18:0;8128:7;8155:18;;;:9;:18;;;;;;;8071:110;2649:103;;;;;;;;;;;;;:::i;21135:284::-;;;;;;;;;;-1:-1:-1;21135:284:0;;;;;:::i;:::-;;:::i;17202:99::-;;;;;;;;;;-1:-1:-1;17202:99:0;;;;;:::i;:::-;;:::i;1998:87::-;;;;;;;;;;-1:-1:-1;2044:7:0;2071:6;-1:-1:-1;;;;;2071:6:0;1998:87;;;-1:-1:-1;;;;;4011:32:1;;;3993:51;;3981:2;3966:18;1998:87:0;3948:102:1;19823:139:0;;;;;;;;;;-1:-1:-1;19823:139:0;;;;;:::i;:::-;;:::i;7778:87::-;;;;;;;;;;;;;:::i;3583:40::-;;;;;;;;;;-1:-1:-1;3583:40:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;19480:140;;;;;;;;;;-1:-1:-1;19480:140:0;;;;;:::i;:::-;;:::i;9093:365::-;;;;;;;;;;-1:-1:-1;9093:365:0;;;;;:::i;:::-;;:::i;5603:19::-;;;;;;;;;;-1:-1:-1;5603:19:0;;;;;;;-1:-1:-1;;;;;5603:19:0;;;9866:164;;;;;;;;;;-1:-1:-1;9866:164:0;;;;;:::i;:::-;;:::i;6215:58::-;;;;;;;;;;-1:-1:-1;6215:58:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5814:25;;;;;;;;;;-1:-1:-1;5814:25:0;;;;;;;;;;;8720:142;;;;;;;;;;-1:-1:-1;8720:142:0;;;;;:::i;:::-;-1:-1:-1;;;;;8827:18:0;;;8800:7;8827:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8720:142;5669:30;;;;;;;;;;;;;;;;2907:201;;;;;;;;;;-1:-1:-1;2907:201:0;;;;;:::i;:::-;;:::i;5706:31::-;;;;;;;;;;;;;;;;6104:49;;;;;;;;;;-1:-1:-1;6104:49:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7687:83;7724:13;7757:5;7750:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7687:83;:::o;8550:158::-;8624:4;8641:37;8650:10;8662:7;8671:6;8641:8;:37::i;:::-;-1:-1:-1;8696:4:0;8550:158;;;;;:::o;18004:430::-;2044:7;2071:6;-1:-1:-1;;;;;2071:6:0;796:10;2218:23;2210:68;;;;-1:-1:-1;;;2210:68:0;;;;;;;:::i;:::-;;;;;;;;;18175:4:::1;18155:16;:24;;:66;;;;;18217:4;18196:17;:25;;18155:66;18133:141;;;::::0;-1:-1:-1;;;18133:141:0;;10678:2:1;18133:141:0::1;::::0;::::1;10660:21:1::0;10717:2;10697:18;;;10690:30;10756:34;10736:18;;;10729:62;-1:-1:-1;;;10807:18:1;;;10800:32;10849:19;;18133:141:0::1;10650:224:1::0;18133:141:0::1;18285:15;:34:::0;;;18330:16:::1;:36:::0;;;18382:44:::1;::::0;;13298:25:1;;;13354:2;13339:18;;13332:34;;;18382:44:0::1;::::0;13271:18:1;18382:44:0::1;;;;;;;;18004:430:::0;;:::o;16621:385::-;2044:7;2071:6;-1:-1:-1;;;;;2071:6:0;796:10;2218:23;2210:68;;;;-1:-1:-1;;;2210:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16687:51:0;::::1;16683:316;;16772:58;::::0;16755:12:::1;::::0;16780:10:::1;::::0;16804:21:::1;::::0;16755:12;16772:58;16755:12;16772:58;16804:21;16780:10;16772:58:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16754:76;;;16852:7;16844:36;;;::::0;-1:-1:-1;;;16844:36:0;;10333:2:1;16844:36:0::1;::::0;::::1;10315:21:1::0;10372:2;10352:18;;;10345:30;-1:-1:-1;;;10391:18:1;;;10384:46;10447:18;;16844:36:0::1;10305:166:1::0;16844:36:0::1;16683:316;16621:385:::0;:::o;16683:316::-:1;16948:38;::::0;-1:-1:-1;;;16948:38:0;;16980:4:::1;16948:38;::::0;::::1;3993:51:1::0;-1:-1:-1;;;;;16913:22:0;::::1;::::0;::::1;::::0;16936:10:::1;::::0;16913:22;;16948:23:::1;::::0;3966:18:1;;16948:38:0::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16913:74;::::0;-1:-1:-1;;;;;;16913:74:0::1;::::0;;;;;;-1:-1:-1;;;;;4536:32:1;;;16913:74:0::1;::::0;::::1;4518:51:1::0;4585:18;;;4578:34;4491:18;;16913:74:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;16683:316::-;16621:385:::0;:::o;19086:122::-;2044:7;2071:6;-1:-1:-1;;;;;2071:6:0;796:10;2218:23;2210:68;;;;-1:-1:-1;;;2210:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19169:22:0;;;::::1;;::::0;;;:16:::1;:22;::::0;;;;:31;;-1:-1:-1;;19169:31:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19086:122::o;20205:103::-;2044:7;2071:6;-1:-1:-1;;;;;2071:6:0;796:10;2218:23;2210:68;;;;-1:-1:-1;;;2210:68:0;;;;;;;:::i;:::-;20273:19:::1;:27:::0;20205:103::o;15002:296::-;15076:10;15058:15;15115:18;;;:9;:18;;;;;;15105:28;;;15097:68;;;;-1:-1:-1;;;15097:68:0;;9211:2:1;15097:68:0;;;9193:21:1;9250:2;9230:18;;;9223:30;9289:29;9269:18;;;9262:57;9336:18;;15097:68:0;9183:177:1;15097:68:0;-1:-1:-1;;;;;15176:18:0;;;;;;:9;:18;;;;;:28;;15198:6;;15176:18;:28;;15198:6;;15176:28;:::i;:::-;;;;;;;;15231:6;15215:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;15253:37:0;;12100:25:1;;;15279:1:0;;-1:-1:-1;;;;;15253:37:0;;;-1:-1:-1;;;;;;;;;;;15253:37:0;12088:2:1;12073:18;15253:37:0;;;;;;;;15002:296;;:::o;10487:394::-;-1:-1:-1;;;;;10628:19:0;;10584:4;10628:19;;;:11;:19;;;;;;;;10648:10;10628:31;;;;;;;;10678:26;;;;10670:64;;;;-1:-1:-1;;;10670:64:0;;8857:2:1;10670:64:0;;;8839:21:1;8896:2;8876:18;;;8869:30;8935:27;8915:18;;;8908:55;8980:18;;10670:64:0;8829:175:1;10670:64:0;10745:36;10755:6;10763:9;10774:6;10745:9;:36::i;:::-;10792:55;10801:6;10809:10;10821:25;10840:6;10821:16;:25;:::i;:::-;10792:8;:55::i;:::-;-1:-1:-1;10869:4:0;;10487:394;-1:-1:-1;;;;10487:394:0:o;17579:186::-;2044:7;2071:6;-1:-1:-1;;;;;2071:6:0;796:10;2218:23;2210:68;;;;-1:-1:-1;;;2210:68:0;;;;;;;:::i;:::-;17703:9:::1;::::0;17699:13:::1;::::0;17703:9:::1;;17699:2;:13;:::i;:::-;17677:35;::::0;:19;:35:::1;:::i;:::-;17656:18;:56:::0;17728:29:::1;::::0;12100:25:1;;;17728:29:0::1;::::0;12088:2:1;12073:18;17728:29:0::1;;;;;;;;17579:186:::0;:::o;21750:392::-;3748:10;3739:20;;;;:8;:20;;;;;;;;3731:46;;;;-1:-1:-1;;;3731:46:0;;7398:2:1;3731:46:0;;;7380:21:1;7437:2;7417:18;;;7410:30;-1:-1:-1;;;7456:18:1;;;7449:43;7509:18;;3731:46:0;7370:163:1;3731:46:0;-1:-1:-1;;;;;21855:18:0;::::1;21830:22;21855:18:::0;;;:9:::1;:18;::::0;;;;;21892:24;;::::1;;21884:71;;;::::0;-1:-1:-1;;;21884:71:0;;6237:2:1;21884:71:0::1;::::0;::::1;6219:21:1::0;6276:2;6256:18;;;6249:30;6315:34;6295:18;;;6288:62;-1:-1:-1;;;6366:18:1;;;6359:32;6408:19;;21884:71:0::1;6209:224:1::0;21884:71:0::1;-1:-1:-1::0;;;;;21991:18:0;::::1;;::::0;;;:9:::1;:18;::::0;;;;22012:23;;::::1;21991:44:::0;;22057:12:::1;:22:::0;;22029:6;;21991:18;22057:22:::1;::::0;22029:6;;22057:22:::1;:::i;:::-;::::0;;;-1:-1:-1;;22097:37:0::1;::::0;12100:25:1;;;22123:1:0::1;::::0;-1:-1:-1;;;;;22097:37:0;::::1;::::0;-1:-1:-1;;;;;;;;;;;22097:37:0;12088:2:1;12073:18;22097:37:0::1;;;;;;;;3788:1;21750:392:::0;;:::o;20530:108::-;2044:7;2071:6;-1:-1:-1;;;;;2071:6:0;796:10;2218:23;2210:68;;;;-1:-1:-1;;;2210:68:0;;;;;;;:::i;:::-;20599:6:::1;:31:::0;;-1:-1:-1;;;;;20599:31:0;;::::1;::::0;::::1;-1:-1:-1::0;;;;;;20599:31:0;;::::1;::::0;;;::::1;::::0;;20530:108::o;8870:211::-;8984:10;8958:4;9005:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;9005:32:0;;;;;;;;;;8958:4;;8975:76;;8996:7;;9005:45;;9040:10;;9005:45;:::i;3805:179::-;2044:7;2071:6;-1:-1:-1;;;;;2071:6:0;796:10;2218:23;2210:68;;;;-1:-1:-1;;;2210:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3890:19:0;::::1;;::::0;;;:8:::1;:19;::::0;;;;;;;;:32;;-1:-1:-1;;3890:32:0::1;::::0;::::1;;::::0;;::::1;::::0;;;3938:38;;4223:51:1;;;4290:18;;;4283:50;3938:38:0::1;::::0;4196:18:1;3938:38:0::1;4178:161:1::0;18681::0;2044:7;2071:6;-1:-1:-1;;;;;2071:6:0;796:10;2218:23;2210:68;;;;-1:-1:-1;;;2210:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18761:19:0;::::1;;::::0;;;:13:::1;:19;::::0;;;;;;;;:28;;-1:-1:-1;;18761:28:0::1;::::0;::::1;;::::0;;::::1;::::0;;;18805:29;;4223:51:1;;;4290:18;;;4283:50;18805:29:0::1;::::0;4196:18:1;18805:29:0::1;4178:161:1::0;2649:103:0;2044:7;2071:6;-1:-1:-1;;;;;2071:6:0;796:10;2218:23;2210:68;;;;-1:-1:-1;;;2210:68:0;;;;;;;:::i;:::-;2714:30:::1;2741:1;2714:18;:30::i;:::-;2649:103::o:0;21135:284::-;3748:10;3739:20;;;;:8;:20;;;;;;;;3731:46;;;;-1:-1:-1;;;3731:46:0;;7398:2:1;3731:46:0;;;7380:21:1;7437:2;7417:18;;;7410:30;-1:-1:-1;;;7456:18:1;;;7449:43;7509:18;;3731:46:0;7370:163:1;3731:46:0;-1:-1:-1;;;;;21225:21:0;::::1;21217:65;;;::::0;-1:-1:-1;;;21217:65:0;;11796:2:1;21217:65:0::1;::::0;::::1;11778:21:1::0;11835:2;11815:18;;;11808:30;11874:33;11854:18;;;11847:61;11925:18;;21217:65:0::1;11768:181:1::0;21217:65:0::1;21311:6;21295:12;;:22;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;;;;;;21328:18:0;::::1;;::::0;;;:9:::1;:18;::::0;;;;:28;;21350:6;;21328:18;:28:::1;::::0;21350:6;;21328:28:::1;:::i;:::-;::::0;;;-1:-1:-1;;21374:37:0::1;::::0;12100:25:1;;;-1:-1:-1;;;;;21374:37:0;::::1;::::0;21391:1:::1;::::0;-1:-1:-1;;;;;;;;;;;21374:37:0;12088:2:1;12073:18;21374:37:0::1;12055:76:1::0;17202:99:0;2044:7;2071:6;-1:-1:-1;;;;;2071:6:0;796:10;2218:23;2210:68;;;;-1:-1:-1;;;2210:68:0;;;;;;;:::i;:::-;17271:14:::1;:22:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;17271:22:0;;::::1;::::0;;;::::1;::::0;;17202:99::o;19823:139::-;2044:7;2071:6;-1:-1:-1;;;;;2071:6:0;796:10;2218:23;2210:68;;;;-1:-1:-1;;;2210:68:0;;;;;;;:::i;:::-;19892:13:::1;:22:::0;;;::::1;;;;-1:-1:-1::0;;19892:22:0;;::::1;;::::0;;19930:24:::1;::::0;::::1;::::0;::::1;::::0;19908:6;5400:14:1;5393:22;5375:41;;5363:2;5348:18;;5330:92;7778:87:0;7817:13;7850:7;7843:14;;;;;:::i;19480:140::-;2044:7;2071:6;-1:-1:-1;;;;;2071:6:0;796:10;2218:23;2210:68;;;;-1:-1:-1;;;2210:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19572:31:0;;;::::1;;::::0;;;:25:::1;:31;::::0;;;;:40;;-1:-1:-1;;19572:40:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19480:140::o;9093:365::-;9242:10;9186:4;9230:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;9230:32:0;;;;;;;;;;9281:35;;;;9273:79;;;;-1:-1:-1;;;9273:79:0;;7740:2:1;9273:79:0;;;7722:21:1;7779:2;7759:18;;;7752:30;7818:33;7798:18;;;7791:61;7869:18;;9273:79:0;7712:181:1;9273:79:0;9363:65;9372:10;9384:7;9393:34;9412:15;9393:16;:34;:::i;9363:65::-;-1:-1:-1;9446:4:0;;9093:365;-1:-1:-1;;;9093:365:0:o;9866:164::-;9943:4;9960:40;9970:10;9982:9;9993:6;9960:9;:40::i;2907:201::-;2044:7;2071:6;-1:-1:-1;;;;;2071:6:0;796:10;2218:23;2210:68;;;;-1:-1:-1;;;2210:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2996:22:0;::::1;2988:73;;;::::0;-1:-1:-1;;;2988:73:0;;6991:2:1;2988:73:0::1;::::0;::::1;6973:21:1::0;7030:2;7010:18;;;7003:30;7069:34;7049:18;;;7042:62;-1:-1:-1;;;7120:18:1;;;7113:36;7166:19;;2988:73:0::1;6963:228:1::0;2988:73:0::1;3072:28;3091:8;3072:18;:28::i;8189:353::-:0;-1:-1:-1;;;;;8291:19:0;;8283:75;;;;-1:-1:-1;;;8283:75:0;;8100:2:1;8283:75:0;;;8082:21:1;8139:2;8119:18;;;8112:30;8178:34;8158:18;;;8151:62;-1:-1:-1;;;8229:18:1;;;8222:41;8280:19;;8283:75:0;8072:233:1;8283:75:0;-1:-1:-1;;;;;8377:21:0;;8369:70;;;;-1:-1:-1;;;8369:70:0;;9928:2:1;8369:70:0;;;9910:21:1;9967:2;9947:18;;;9940:30;10006:34;9986:18;;;9979:62;-1:-1:-1;;;10057:18:1;;;10050:34;10101:19;;8369:70:0;9900:226:1;8369:70:0;-1:-1:-1;;;;;8450:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8502:32;;12100:25:1;;;8502:32:0;;12073:18:1;8502:32:0;12055:76:1;11284:1741:0;11407:14;;;;;;;11404:292;;;-1:-1:-1;;;;;11442:24:0;;;;;;:16;:24;;;;;;;;11441:25;:57;;;;-1:-1:-1;;;;;;11471:27:0;;;;;;:16;:27;;;;;;;;11470:28;11441:57;11438:247;;;11532:13;11548:31;11561:6;11569:9;11548:12;:31::i;:::-;11532:47;;11598:18;11610:5;11598:11;:18::i;:::-;-1:-1:-1;;;;;11635:19:0;;;;;:12;:19;;;;;11657:12;11635:34;;11438:247;-1:-1:-1;;;;;8155:18:0;;11716:21;8155:18;;;:9;:18;;;;;;11776:23;;;;11768:67;;;;-1:-1:-1;;;11768:67:0;;11436:2:1;11768:67:0;;;11418:21:1;11475:2;11455:18;;;11448:30;11514:33;11494:18;;;11487:61;11565:18;;11768:67:0;11408:181:1;11768:67:0;11866:22;11882:6;11866:13;:22;:::i;:::-;-1:-1:-1;;;;;11846:17:0;;;;;;:9;:17;;;;;:42;11904:13;;;;;;;11900:129;;-1:-1:-1;;;;;11941:21:0;;;;;;:13;:21;;;;;;;;;:49;;-1:-1:-1;;;;;;11966:24:0;;;;;;:13;:24;;;;;;;;11941:49;11933:84;;;;-1:-1:-1;;;11933:84:0;;6640:2:1;11933:84:0;;;6622:21:1;6679:2;6659:18;;;6652:30;-1:-1:-1;;;6698:18:1;;;6691:52;6760:18;;11933:84:0;6612:172:1;11933:84:0;12057:7;;-1:-1:-1;;;;;12094:21:0;;12041:12;12094:21;;;:13;:21;;;;;;12057:7;;;;12056:8;;12094:21;;:63;;-1:-1:-1;;;;;;12133:24:0;;;;;;:13;:24;;;;;;;;12094:63;12077:135;;;-1:-1:-1;12195:5:0;12077:135;12227:7;12224:692;;;-1:-1:-1;;;;;12328:33:0;;12251:23;12328:33;;;:25;:33;;;;;;;;12325:124;;;12427:6;12409:15;;12400:6;:24;;;;:::i;:::-;:33;;;;:::i;:::-;12382:51;;12325:124;-1:-1:-1;;;;;12491:36:0;;;;;;:25;:36;;;;;;;;12488:183;;;12594:6;12575:16;;12566:6;:25;;;;:::i;:::-;:34;;;;:::i;:::-;12548:52;;12637:18;:16;:18::i;:::-;12690:19;;12687:218;;12730:25;12740:15;12730:25;;:::i;:::-;12792:4;12774:24;;;;:9;:24;;;;;:43;;12730:25;;-1:-1:-1;12802:15:0;;12774:24;;;:43;;12802:15;;12774:43;:::i;:::-;;;;-1:-1:-1;;12841:48:0;;12100:25:1;;;12866:4:0;;-1:-1:-1;;;;;12841:48:0;;;-1:-1:-1;;;;;;;;;;;12841:48:0;12088:2:1;12073:18;12841:48:0;;;;;;;12687:218;12224:692;;-1:-1:-1;;;;;12936:20:0;;;;;;:9;:20;;;;;:30;;12960:6;;12936:20;:30;;12960:6;;12936:30;:::i;:::-;;;;;;;;12999:9;-1:-1:-1;;;;;12982:35:0;12991:6;-1:-1:-1;;;;;12982:35:0;-1:-1:-1;;;;;;;;;;;13010:6:0;12982:35;;;;12100:25:1;;12088:2;12073:18;;12055:76;12982:35:0;;;;;;;;11284:1741;;;;;:::o;3268:191::-;3342:16;3361:6;;-1:-1:-1;;;;;3378:17:0;;;-1:-1:-1;;;;;;3378:17:0;;;;;;3411:40;;3361:6;;;;;;;3411:40;;3342:16;3411:40;3268:191;;:::o;15700:241::-;15776:7;15628:20;;15676:8;;15804:38;;-1:-1:-1;15628:20:0;;15676:8;15804:38;15796:67;;;;-1:-1:-1;;;15796:67:0;;8512:2:1;15796:67:0;;;8494:21:1;8551:2;8531:18;;;8524:30;-1:-1:-1;;;8570:18:1;;;8563:46;8626:18;;15796:67:0;8484:166:1;15796:67:0;15628:20;;15676:8;15874:59;;-1:-1:-1;15902:5:0;15895:12;;15874:59;-1:-1:-1;15930:3:0;15923:10;;15949:252;-1:-1:-1;;;;;16029:18:0;;16012:14;16029:18;;;:12;:18;;;;;;:23;;:105;;-1:-1:-1;16116:16:0;:12;16131:1;16116:16;:::i;:::-;16092:19;;-1:-1:-1;;;;;16071:18:0;;;;;;:12;:18;;;;;;:40;;16092:19;16071:40;:::i;:::-;16070:63;16029:105;16012:122;;16153:9;16145:48;;;;-1:-1:-1;;;16145:48:0;;11081:2:1;16145:48:0;;;11063:21:1;11120:2;11100:18;;;11093:30;11159:28;11139:18;;;11132:56;11205:18;;16145:48:0;11053:176:1;14260:593:0;14357:4;14316:20;8155:18;;;:9;:18;;;;;;14378:7;;;;14377:8;:46;;;;;14405:18;;14389:12;:34;;14377:46;14374:472;;;14440:7;:14;;-1:-1:-1;;14440:14:0;14450:4;14440:14;;;14504:12;14440:7;14550:14;14563:1;14504:12;14550:14;:::i;:::-;14531:33;-1:-1:-1;14602:21:0;14638:26;14531:33;14638:16;:26::i;:::-;14679:19;14701:34;14725:10;14701:21;:34;:::i;:::-;14679:56;-1:-1:-1;14752:50:0;14765:21;14778:8;14765:10;:21;:::i;:::-;14789:11;14752:12;:50::i;:::-;-1:-1:-1;;14819:7:0;:15;;-1:-1:-1;;14819:15:0;;;-1:-1:-1;;14260:593:0;:::o;13728:362::-;13822:16;;;13836:1;13822:16;;;;;;;;13798:21;;13822:16;;;;;;;;;;-1:-1:-1;13822:16:0;13798:40;;13867:4;13849;13854:1;13849:7;;;;;;-1:-1:-1;;;13849:7:0;;;;;;;;;;;;;;:23;-1:-1:-1;;;;;13849:23:0;;;-1:-1:-1;;;;;13849:23:0;;;;;13893:6;;;;;;;;;-1:-1:-1;;;;;13893:6:0;-1:-1:-1;;;;;13893:11:0;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13883:4;13888:1;13883:7;;;;;;-1:-1:-1;;;13883:7:0;;;;;;;;;-1:-1:-1;;;;;13883:23:0;;;:7;;;;;;;;;:23;13949:6;;13917:48;;13934:4;;13949:6;;;;13958;13917:8;:48::i;:::-;13976:6;;:106;;-1:-1:-1;;;13976:106:0;;:6;;;;-1:-1:-1;;;;;13976:6:0;;:57;;:106;;14034:6;;14042:1;;14045:4;;14059;;14066:15;;13976:106;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13728:362;;:::o;13239:377::-;13358:6;;13326:53;;13343:4;;13358:6;;;-1:-1:-1;;;;;13358:6:0;13367:11;13326:8;:53::i;:::-;13451:6;;:103;;-1:-1:-1;;;13451:103:0;;13497:4;13451:103;;;4964:34:1;;;5014:18;;;5007:34;;;13391:14:0;5057:18:1;;;5050:34;;;5100:18;;;5093:34;;;5143:19;;;5136:44;;;;13538:15:0;5196:19:1;;;5189:35;13391:14:0;;;;;13451:6;;;-1:-1:-1;;;;;13451:6:0;;:22;;13481:6;;4898:19:1;;13451:103:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13570:38;;;13579:25:1;;;13635:2;13620:18;;13613:34;;;13663:18;;;13656:34;;;13390:164:0;;-1:-1:-1;13390:164:0;;-1:-1:-1;13390:164:0;-1:-1:-1;13570:38:0;;13567:2:1;13552:18;13570:38:0;;;;;;;13239:377;;;;;:::o;14:257:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;191:9;178:23;210:31;235:5;210:31;:::i;:::-;260:5;84:187;-1:-1:-1;;;84:187:1:o;276:261::-;346:6;399:2;387:9;378:7;374:23;370:32;367:2;;;420:6;412;405:22;367:2;457:9;451:16;476:31;501:5;476:31;:::i;542:398::-;610:6;618;671:2;659:9;650:7;646:23;642:32;639:2;;;692:6;684;677:22;639:2;736:9;723:23;755:31;780:5;755:31;:::i;:::-;805:5;-1:-1:-1;862:2:1;847:18;;834:32;875:33;834:32;875:33;:::i;:::-;927:7;917:17;;;629:311;;;;;:::o;945:466::-;1022:6;1030;1038;1091:2;1079:9;1070:7;1066:23;1062:32;1059:2;;;1112:6;1104;1097:22;1059:2;1156:9;1143:23;1175:31;1200:5;1175:31;:::i;:::-;1225:5;-1:-1:-1;1282:2:1;1267:18;;1254:32;1295:33;1254:32;1295:33;:::i;:::-;1049:362;;1347:7;;-1:-1:-1;;;1401:2:1;1386:18;;;;1373:32;;1049:362::o;1416:392::-;1481:6;1489;1542:2;1530:9;1521:7;1517:23;1513:32;1510:2;;;1563:6;1555;1548:22;1510:2;1607:9;1594:23;1626:31;1651:5;1626:31;:::i;:::-;1676:5;-1:-1:-1;1733:2:1;1718:18;;1705:32;1746:30;1705:32;1746:30;:::i;1813:325::-;1881:6;1889;1942:2;1930:9;1921:7;1917:23;1913:32;1910:2;;;1963:6;1955;1948:22;1910:2;2007:9;1994:23;2026:31;2051:5;2026:31;:::i;:::-;2076:5;2128:2;2113:18;;;;2100:32;;-1:-1:-1;;;1900:238:1:o;2143:251::-;2199:6;2252:2;2240:9;2231:7;2227:23;2223:32;2220:2;;;2273:6;2265;2258:22;2220:2;2317:9;2304:23;2336:28;2358:5;2336:28;:::i;2399:255::-;2466:6;2519:2;2507:9;2498:7;2494:23;2490:32;2487:2;;;2540:6;2532;2525:22;2487:2;2577:9;2571:16;2596:28;2618:5;2596:28;:::i;2659:190::-;2718:6;2771:2;2759:9;2750:7;2746:23;2742:32;2739:2;;;2792:6;2784;2777:22;2739:2;-1:-1:-1;2820:23:1;;2729:120;-1:-1:-1;2729:120:1:o;2854:194::-;2924:6;2977:2;2965:9;2956:7;2952:23;2948:32;2945:2;;;2998:6;2990;2983:22;2945:2;-1:-1:-1;3026:16:1;;2935:113;-1:-1:-1;2935:113:1:o;3053:258::-;3121:6;3129;3182:2;3170:9;3161:7;3157:23;3153:32;3150:2;;;3203:6;3195;3188:22;3150:2;-1:-1:-1;;3231:23:1;;;3301:2;3286:18;;;3273:32;;-1:-1:-1;3140:171:1:o;3316:316::-;3404:6;3412;3420;3473:2;3461:9;3452:7;3448:23;3444:32;3441:2;;;3494:6;3486;3479:22;3441:2;3528:9;3522:16;3512:26;;3578:2;3567:9;3563:18;3557:25;3547:35;;3622:2;3611:9;3607:18;3601:25;3591:35;;3431:201;;;;;:::o;5427:603::-;5539:4;5568:2;5597;5586:9;5579:21;5629:6;5623:13;5672:6;5667:2;5656:9;5652:18;5645:34;5697:4;5710:140;5724:6;5721:1;5718:13;5710:140;;;5819:14;;;5815:23;;5809:30;5785:17;;;5804:2;5781:26;5774:66;5739:10;;5710:140;;;5868:6;5865:1;5862:13;5859:2;;;5938:4;5933:2;5924:6;5913:9;5909:22;5905:31;5898:45;5859:2;-1:-1:-1;6014:2:1;5993:15;-1:-1:-1;;5989:29:1;5974:45;;;;6021:2;5970:54;;5548:482;-1:-1:-1;;;5548:482:1:o;9365:356::-;9567:2;9549:21;;;9586:18;;;9579:30;9645:34;9640:2;9625:18;;9618:62;9712:2;9697:18;;9539:182::o;12136:983::-;12398:4;12446:3;12435:9;12431:19;12477:6;12466:9;12459:25;12503:2;12541:6;12536:2;12525:9;12521:18;12514:34;12584:3;12579:2;12568:9;12564:18;12557:31;12608:6;12643;12637:13;12674:6;12666;12659:22;12712:3;12701:9;12697:19;12690:26;;12751:2;12743:6;12739:15;12725:29;;12772:4;12785:195;12799:6;12796:1;12793:13;12785:195;;;12864:13;;-1:-1:-1;;;;;12860:39:1;12848:52;;12955:15;;;;12920:12;;;;12896:1;12814:9;12785:195;;;-1:-1:-1;;;;;;;13036:32:1;;;;13031:2;13016:18;;13009:60;-1:-1:-1;;;13100:3:1;13085:19;13078:35;12997:3;12407:712;-1:-1:-1;;;12407:712:1:o;13890:128::-;13930:3;13961:1;13957:6;13954:1;13951:13;13948:2;;;13967:18;;:::i;:::-;-1:-1:-1;14003:9:1;;13938:80::o;14023:217::-;14063:1;14089;14079:2;;-1:-1:-1;;;14114:31:1;;14168:4;14165:1;14158:15;14196:4;14121:1;14186:15;14079:2;-1:-1:-1;14225:9:1;;14069:171::o;14245:422::-;14334:1;14377:5;14334:1;14391:270;14412:7;14402:8;14399:21;14391:270;;;14471:4;14467:1;14463:6;14459:17;14453:4;14450:27;14447:2;;;14480:18;;:::i;:::-;14530:7;14520:8;14516:22;14513:2;;;14550:16;;;;14513:2;14629:22;;;;14589:15;;;;14391:270;;;14395:3;14309:358;;;;;:::o;14672:140::-;14730:5;14759:47;14800:4;14790:8;14786:19;14780:4;14866:5;14896:8;14886:2;;-1:-1:-1;14937:1:1;14951:5;;14886:2;14985:4;14975:2;;-1:-1:-1;15022:1:1;15036:5;;14975:2;15067:4;15085:1;15080:59;;;;15153:1;15148:130;;;;15060:218;;15080:59;15110:1;15101:10;;15124:5;;;15148:130;15185:3;15175:8;15172:17;15169:2;;;15192:18;;:::i;:::-;-1:-1:-1;;15248:1:1;15234:16;;15263:5;;15060:218;;15362:2;15352:8;15349:16;15343:3;15337:4;15334:13;15330:36;15324:2;15314:8;15311:16;15306:2;15300:4;15297:12;15293:35;15290:77;15287:2;;;-1:-1:-1;15399:19:1;;;15431:5;;15287:2;15478:34;15503:8;15497:4;15478:34;:::i;:::-;15548:6;15544:1;15540:6;15536:19;15527:7;15524:32;15521:2;;;15559:18;;:::i;:::-;15597:20;;14876:747;-1:-1:-1;;;14876:747:1:o;15628:168::-;15668:7;15734:1;15730;15726:6;15722:14;15719:1;15716:21;15711:1;15704:9;15697:17;15693:45;15690:2;;;15741:18;;:::i;:::-;-1:-1:-1;15781:9:1;;15680:116::o;15801:125::-;15841:4;15869:1;15866;15863:8;15860:2;;;15874:18;;:::i;:::-;-1:-1:-1;15911:9:1;;15850:76::o;15931:380::-;16010:1;16006:12;;;;16053;;;16074:2;;16128:4;16120:6;16116:17;16106:27;;16074:2;16181;16173:6;16170:14;16150:18;16147:38;16144:2;;;16227:10;16222:3;16218:20;16215:1;16208:31;16262:4;16259:1;16252:15;16290:4;16287:1;16280:15;16144:2;;15986:325;;;:::o;16316:127::-;16377:10;16372:3;16368:20;16365:1;16358:31;16408:4;16405:1;16398:15;16432:4;16429:1;16422:15;16448:131;-1:-1:-1;;;;;16523:31:1;;16513:42;;16503:2;;16569:1;16566;16559:12;16584:118;16670:5;16663:13;16656:21;16649:5;16646:32;16636:2;;16692:1;16689;16682:12

Swarm Source

ipfs://b90057c6da5e45422c6d7352e4a563fdbe7874f288a90b2c3826febaddbd2f75

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
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.