ETH Price: $2,094.89 (+0.93%)

Contract

0xcFD905f6Fec1EB28a4981f438EF2E9F2FC63F0F5
 

Overview

ETH Balance

0.792488752380224327 ETH

Eth Value

$1,660.18 (@ $2,094.89/ETH)

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Convert Fees179915562023-08-25 11:57:47933 days ago1692964667IN
0xcFD905f6...2FC63F0F5
0 ETH0.0033738216.0829257
Transfer179915532023-08-25 11:57:11933 days ago1692964631IN
0xcFD905f6...2FC63F0F5
0.65 ETH0.0003366215.98776899
Transfer Ownersh...178940972023-08-11 20:41:59946 days ago1691786519IN
0xcFD905f6...2FC63F0F5
0 ETH0.0005355318.44754364

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer234654612025-09-29 1:46:47167 days ago1759110407
0xcFD905f6...2FC63F0F5
0.00236309 ETH
Transfer217112022025-01-26 20:53:35412 days ago1737924815
0xcFD905f6...2FC63F0F5
0.06789003 ETH
Transfer215191042024-12-31 1:14:47439 days ago1735607687
0xcFD905f6...2FC63F0F5
0.022524 ETH
Transfer214616882024-12-23 0:43:59447 days ago1734914639
0xcFD905f6...2FC63F0F5
0.02751353 ETH
Transfer210157952024-10-21 18:37:23509 days ago1729535843
0xcFD905f6...2FC63F0F5
0.05697018 ETH
Transfer206740582024-09-04 1:53:47557 days ago1725414827
0xcFD905f6...2FC63F0F5
0.02088627 ETH
Transfer204936062024-08-09 21:02:59582 days ago1723237379
0xcFD905f6...2FC63F0F5
0.03715882 ETH
Transfer200001102024-06-01 22:58:59651 days ago1717282739
0xcFD905f6...2FC63F0F5
0.0194413 ETH
Transfer199716812024-05-28 23:35:35655 days ago1716939335
0xcFD905f6...2FC63F0F5
0.03453891 ETH
Transfer198880762024-05-17 7:01:59667 days ago1715929319
0xcFD905f6...2FC63F0F5
0.0261134 ETH
Transfer198510882024-05-12 2:53:23672 days ago1715482403
0xcFD905f6...2FC63F0F5
0.07401992 ETH
Transfer184428132023-10-27 16:43:47870 days ago1698425027
0xcFD905f6...2FC63F0F5
0.06646335 ETH
Transfer183972922023-10-21 7:47:59876 days ago1697874479
0xcFD905f6...2FC63F0F5
0.01287676 ETH
Transfer182610412023-10-02 6:25:47895 days ago1696227947
0xcFD905f6...2FC63F0F5
0.01154865 ETH
Transfer182324032023-09-28 6:17:23899 days ago1695881843
0xcFD905f6...2FC63F0F5
0.01806776 ETH
Transfer182324032023-09-28 6:17:23899 days ago1695881843
0xcFD905f6...2FC63F0F5
0.01077591 ETH
Transfer181992122023-09-23 14:48:11904 days ago1695480491
0xcFD905f6...2FC63F0F5
0.01560383 ETH
Transfer181992122023-09-23 14:48:11904 days ago1695480491
0xcFD905f6...2FC63F0F5
0.0112007 ETH
Transfer181683672023-09-19 7:07:23908 days ago1695107243
0xcFD905f6...2FC63F0F5
0.01641652 ETH
Transfer181650992023-09-18 20:07:35908 days ago1695067655
0xcFD905f6...2FC63F0F5
0.01428116 ETH
Transfer181401212023-09-15 7:24:59912 days ago1694762699
0xcFD905f6...2FC63F0F5
0.02303425 ETH
Transfer181401212023-09-15 7:24:59912 days ago1694762699
0xcFD905f6...2FC63F0F5
0.01321211 ETH
Transfer181090152023-09-10 22:41:47916 days ago1694385707
0xcFD905f6...2FC63F0F5
0.01636455 ETH
Transfer181090002023-09-10 22:38:47916 days ago1694385527
0xcFD905f6...2FC63F0F5
0.03092346 ETH
Transfer180995612023-09-09 14:55:23918 days ago1694271323
0xcFD905f6...2FC63F0F5
0.03650245 ETH
View All Internal Transactions
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
QWAFeeHandler

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
// SPDX-License-Identifier: AGPL-3.0
pragma solidity 0.8.19;

import "@openzeppelin/contracts/access/Ownable.sol";
import "./interface/IUniswapV2Router02.sol";
import "./interface/IQWN.sol";
import "./interface/IWETH.sol";
import "./interface/IStaking.sol";

/// @title   QWAFeeHandler
/// @notice  Handles distributing fees for Quantum Wealth Accelerator
contract QWAFeeHandler is Ownable {
    /// EVENTS ///

    event ETHSwapped(uint256 amount, FEETYPE indexed feetype);

    /// VARIABLES ///

    enum FEETYPE {
        LIQUIDITY,
        BUYANDBURN,
        BUYANDSEND,
        ETHTOTREASURY
    }

    /// @notice Current fee type
    FEETYPE public feeType;
    /// @notice Swap ETH at amount
    uint256 public swapETHAtAmount;

    /// @notice Address of QWN
    address public immutable QWN;
    /// @notice Address of staking
    address public immutable staking;
    /// @notice Address of WETH
    address public immutable WETH;
    /// @notice Address of treasury
    address public immutable treasury;
    /// @notice Address for team fees
    address public constant teamAddress =
        0xdDd80699387a25C5BA00a2f1389de73d351C7d3C;

    /// @notice Address of UniswapV2Router
    IUniswapV2Router02 public immutable uniswapV2Router;

    /// CONSTRUCTOR ///

    constructor(address _QWN, address _staking, address _WETH) {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );

        uniswapV2Router = _uniswapV2Router;

        swapETHAtAmount = 2.5 ether;

        QWN = _QWN;
        staking = _staking;
        WETH = _WETH;
        treasury = IQWN(QWN).treasury();

        feeType = FEETYPE.BUYANDSEND;
    }

    /// OWNER FUNCTIONS ///

    /// @notice Set fee type
    function setFeeType(FEETYPE _feeType) external onlyOwner {
        feeType = _feeType;
    }

    /// @notice ETH balance of contract to sawp
    function setSwapETHAtAmount(uint256 _swapETHAtAmount) external onlyOwner {
        swapETHAtAmount = _swapETHAtAmount;
    }

    /// CONVERT FEES ///

    /// @notice Convert fees to `FEETYPE`
    function convertFees() external {
        uint256 wethBalance = IERC20(WETH).balanceOf(address(this));
        if (wethBalance > 0) IWETH(WETH).withdraw(wethBalance);

        uint256 contractBalance = address(this).balance;
        bool canSwap = contractBalance >= swapETHAtAmount;

        if (canSwap) {
            uint256 teamFee = contractBalance / 3;
            bool success;
            (success, ) = address(teamAddress).call{value: teamFee}("");

            contractBalance = address(this).balance;
            if (feeType == FEETYPE.LIQUIDITY) {
                _addLiquidity(contractBalance);
            } else if (feeType == FEETYPE.BUYANDBURN) {
                _swapETHForQWN(contractBalance);
                IQWN(QWN).burn(IERC20(QWN).balanceOf(address(this)));
            } else if (feeType == FEETYPE.BUYANDSEND) {
                _swapETHForQWN(contractBalance);
                uint256 balance = IERC20(QWN).balanceOf(address(this));
                IERC20(QWN).approve(staking, balance);
                IStaking(staking).stake(treasury, balance);
            } else if (feeType == FEETYPE.ETHTOTREASURY) {
                IWETH(WETH).deposit{value: contractBalance}();
                IERC20(WETH).transfer(treasury, contractBalance);
            }
            emit ETHSwapped(contractBalance, feeType);
        }
    }

    //// INTERNAL FUNCTIONS ///

    /// @dev INTERNAL function to add swap ETH fees for QWN
    /// @dev Invoked in `_addLiquidity()` and `convertFees()`
    function _swapETHForQWN(uint256 _ethAmount) internal {
        address[] memory path = new address[](2);
        path[0] = WETH;
        path[1] = QWN;

        uniswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{
            value: _ethAmount
        }(0, path, address(this), block.timestamp);
    }

    /// @dev INTERNAL function to add ETH and QWN to liquidity
    /// @dev Invoked in `convertFees()`
    function _addLiquidity(uint256 _ethBalance) internal {
        _swapETHForQWN(_ethBalance / 2);
        uint256 qwnBalance = IERC20(QWN).balanceOf(address(this));
        IERC20(QWN).approve(address(uniswapV2Router), qwnBalance);

        uniswapV2Router.addLiquidityETH{value: address(this).balance}(
            QWN,
            qwnBalance,
            0,
            0,
            treasury,
            block.timestamp
        );
    }

    /// RECEIVE ///

    receive() external payable {}
}

// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol)

pragma solidity ^0.8.0;

import "../utils/Context.sol";

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

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

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

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }

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

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

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

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        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);
    }
}

// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)

pragma solidity ^0.8.0;

import "../IERC20.sol";

/**
 * @dev Interface for the optional metadata functions from the ERC20 standard.
 *
 * _Available since v4.1._
 */
interface IERC20Metadata is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

    /**
     * @dev Returns the symbol of the token.
     */
    function symbol() external view returns (string memory);

    /**
     * @dev Returns the decimals places of the token.
     */
    function decimals() external view returns (uint8);
}

// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)

pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);

    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `to`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address to, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `from` to `to` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(address from, address to, uint256 amount) external returns (bool);
}

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

import "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";

pragma solidity 0.8.19;

interface IQWN is IERC20Metadata {
    function mint(address to_, uint256 amount_) external;

    function burnFrom(address account_, uint256 amount_) external;

    function burn(uint256 amount_) external;

    function uniswapV2Pair() external view returns (address);

    function treasury() external view returns (address);
}

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

interface IStaking {
    function stake(address _to, uint256 _amount) external;

    function unstake(address _to, uint256 _amount, bool _rebase) external;

    function rebase() external;

    function index() external view returns (uint256);
}

pragma solidity 0.8.19;

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

    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint256 amountADesired,
        uint256 amountBDesired,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline
    ) external returns (uint256 amountA, uint256 amountB, uint256 liquidity);

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

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

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable;

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

    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);
}

pragma solidity >=0.5.0;

interface IWETH {
    function deposit() external payable;

    function transfer(address to, uint value) external returns (bool);

    function transferFrom(
        address from,
        address to,
        uint value
    ) external returns (bool);

    function withdraw(uint) external;
}

Settings
{
  "optimizer": {
    "enabled": false,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"_QWN","type":"address"},{"internalType":"address","name":"_staking","type":"address"},{"internalType":"address","name":"_WETH","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":true,"internalType":"enum QWAFeeHandler.FEETYPE","name":"feetype","type":"uint8"}],"name":"ETHSwapped","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"},{"inputs":[],"name":"QWN","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WETH","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"convertFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeType","outputs":[{"internalType":"enum QWAFeeHandler.FEETYPE","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"enum QWAFeeHandler.FEETYPE","name":"_feeType","type":"uint8"}],"name":"setFeeType","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_swapETHAtAmount","type":"uint256"}],"name":"setSwapETHAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"staking","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapETHAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"teamAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"treasury","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6101206040523480156200001257600080fd5b5060405162001eec38038062001eec833981810160405281019062000038919062000366565b620000586200004c6200023060201b60201c565b6200023860201b60201c565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff166101008173ffffffffffffffffffffffffffffffffffffffff16815250506722b1c8c1227a00006001819055508373ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508273ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250508173ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff168152505060805173ffffffffffffffffffffffffffffffffffffffff166361d027b36040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200019f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001c59190620003c2565b73ffffffffffffffffffffffffffffffffffffffff1660e08173ffffffffffffffffffffffffffffffffffffffff16815250506002600060146101000a81548160ff02191690836003811115620002215762000220620003f4565b5b02179055505050505062000423565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200032e8262000301565b9050919050565b620003408162000321565b81146200034c57600080fd5b50565b600081519050620003608162000335565b92915050565b600080600060608486031215620003825762000381620002fc565b5b600062000392868287016200034f565b9350506020620003a5868287016200034f565b9250506040620003b8868287016200034f565b9150509250925092565b600060208284031215620003db57620003da620002fc565b5b6000620003eb848285016200034f565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60805160a05160c05160e051610100516119f1620004fb6000396000818161031b01528181610e3b01528181610ebe01526110d901526000818161090301528181610a7101528181610ba10152610f2001526000818161039401528181610439015281816109b401528181610a3501528181610c140152610ffb015260008181610844015281816108c70152610b590152600081816105fd015281816106390152818161076c0152818161080801528181610b7d01528181610d6301528181610dff01528181610efb015261106a01526119f16000f3fe6080604052600436106100e15760003560e01c806361d027b31161007f57806391b3dc2b1161005957806391b3dc2b14610271578063ad5c46481461029a578063f2fde38b146102c5578063fb8dc179146102ee576100e8565b806361d027b314610204578063715018a61461022f5780638da5cb5b14610246576100e8565b806329eb1592116100bb57806329eb15921461016e5780632b5335c3146101975780634cf088d9146101ae57806359193ad9146101d9576100e8565b80631694505e146100ed5780631a0a7559146101185780631c75f08514610143576100e8565b366100e857005b600080fd5b3480156100f957600080fd5b50610102610319565b60405161010f91906112b9565b60405180910390f35b34801561012457600080fd5b5061012d61033d565b60405161013a91906112ed565b60405180910390f35b34801561014f57600080fd5b50610158610343565b6040516101659190611329565b60405180910390f35b34801561017a57600080fd5b506101956004803603810190610190919061136e565b61035b565b005b3480156101a357600080fd5b506101ac610390565b005b3480156101ba57600080fd5b506101c3610b57565b6040516101d09190611329565b60405180910390f35b3480156101e557600080fd5b506101ee610b7b565b6040516101fb9190611329565b60405180910390f35b34801561021057600080fd5b50610219610b9f565b6040516102269190611329565b60405180910390f35b34801561023b57600080fd5b50610244610bc3565b005b34801561025257600080fd5b5061025b610bd7565b6040516102689190611329565b60405180910390f35b34801561027d57600080fd5b50610298600480360381019061029391906113c7565b610c00565b005b3480156102a657600080fd5b506102af610c12565b6040516102bc9190611329565b60405180910390f35b3480156102d157600080fd5b506102ec60048036038101906102e79190611420565b610c36565b005b3480156102fa57600080fd5b50610303610cb9565b60405161031091906114c4565b60405180910390f35b7f000000000000000000000000000000000000000000000000000000000000000081565b60015481565b73ddd80699387a25c5ba00a2f1389de73d351c7d3c81565b610363610ccc565b80600060146101000a81548160ff021916908360038111156103885761038761144d565b5b021790555050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016103eb9190611329565b602060405180830381865afa158015610408573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061042c91906114f4565b905060008111156104c3577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d826040518263ffffffff1660e01b815260040161049091906112ed565b600060405180830381600087803b1580156104aa57600080fd5b505af11580156104be573d6000803e3d6000fd5b505050505b6000479050600060015482101590508015610b525760006003836104e79190611550565b9050600073ddd80699387a25c5ba00a2f1389de73d351c7d3c73ffffffffffffffffffffffffffffffffffffffff1682604051610523906115b2565b60006040518083038185875af1925050503d8060008114610560576040519150601f19603f3d011682016040523d82523d6000602084013e610565565b606091505b505080915050479350600060038111156105825761058161144d565b5b600060149054906101000a900460ff1660038111156105a4576105a361144d565b5b036105b7576105b284610d4a565b610af6565b600160038111156105cb576105ca61144d565b5b600060149054906101000a900460ff1660038111156105ed576105ec61144d565b5b03610724576105fb84610fab565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166342966c687f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016106909190611329565b602060405180830381865afa1580156106ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106d191906114f4565b6040518263ffffffff1660e01b81526004016106ed91906112ed565b600060405180830381600087803b15801561070757600080fd5b505af115801561071b573d6000803e3d6000fd5b50505050610af5565b600260038111156107385761073761144d565b5b600060149054906101000a900460ff16600381111561075a5761075961144d565b5b036109785761076884610fab565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016107c39190611329565b602060405180830381865afa1580156107e0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061080491906114f4565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663095ea7b37f0000000000000000000000000000000000000000000000000000000000000000836040518363ffffffff1660e01b81526004016108819291906115c7565b6020604051808303816000875af11580156108a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c49190611628565b507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663adc9772e7f0000000000000000000000000000000000000000000000000000000000000000836040518363ffffffff1660e01b81526004016109409291906115c7565b600060405180830381600087803b15801561095a57600080fd5b505af115801561096e573d6000803e3d6000fd5b5050505050610af4565b60038081111561098b5761098a61144d565b5b600060149054906101000a900460ff1660038111156109ad576109ac61144d565b5b03610af3577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0856040518263ffffffff1660e01b81526004016000604051808303818588803b158015610a1a57600080fd5b505af1158015610a2e573d6000803e3d6000fd5b50505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb7f0000000000000000000000000000000000000000000000000000000000000000866040518363ffffffff1660e01b8152600401610aae9291906115c7565b6020604051808303816000875af1158015610acd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af19190611628565b505b5b5b5b600060149054906101000a900460ff166003811115610b1857610b1761144d565b5b7f067f8d20c940cbfd542cc0f85dc9370513e331387973e37f4b045ec8f3e1294c85604051610b4791906112ed565b60405180910390a250505b505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b610bcb610ccc565b610bd5600061116e565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610c08610ccc565b8060018190555050565b7f000000000000000000000000000000000000000000000000000000000000000081565b610c3e610ccc565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610cad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca4906116d8565b60405180910390fd5b610cb68161116e565b50565b600060149054906101000a900460ff1681565b610cd4611232565b73ffffffffffffffffffffffffffffffffffffffff16610cf2610bd7565b73ffffffffffffffffffffffffffffffffffffffff1614610d48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3f90611744565b60405180910390fd5b565b610d5f600282610d5a9190611550565b610fab565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610dba9190611329565b602060405180830381865afa158015610dd7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dfb91906114f4565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663095ea7b37f0000000000000000000000000000000000000000000000000000000000000000836040518363ffffffff1660e01b8152600401610e789291906115c7565b6020604051808303816000875af1158015610e97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ebb9190611628565b507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f305d719477f0000000000000000000000000000000000000000000000000000000000000000846000807f0000000000000000000000000000000000000000000000000000000000000000426040518863ffffffff1660e01b8152600401610f619695949392919061179f565b60606040518083038185885af1158015610f7f573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610fa49190611800565b5050505050565b6000600267ffffffffffffffff811115610fc857610fc7611853565b5b604051908082528060200260200182016040528015610ff65781602001602082028036833780820191505090505b5090507f00000000000000000000000000000000000000000000000000000000000000008160008151811061102e5761102d611882565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f00000000000000000000000000000000000000000000000000000000000000008160018151811061109d5761109c611882565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663b6f9de958360008430426040518663ffffffff1660e01b8152600401611138949392919061196f565b6000604051808303818588803b15801561115157600080fd5b505af1158015611165573d6000803e3d6000fd5b50505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061127f61127a6112758461123a565b61125a565b61123a565b9050919050565b600061129182611264565b9050919050565b60006112a382611286565b9050919050565b6112b381611298565b82525050565b60006020820190506112ce60008301846112aa565b92915050565b6000819050919050565b6112e7816112d4565b82525050565b600060208201905061130260008301846112de565b92915050565b60006113138261123a565b9050919050565b61132381611308565b82525050565b600060208201905061133e600083018461131a565b92915050565b600080fd5b6004811061135657600080fd5b50565b60008135905061136881611349565b92915050565b60006020828403121561138457611383611344565b5b600061139284828501611359565b91505092915050565b6113a4816112d4565b81146113af57600080fd5b50565b6000813590506113c18161139b565b92915050565b6000602082840312156113dd576113dc611344565b5b60006113eb848285016113b2565b91505092915050565b6113fd81611308565b811461140857600080fd5b50565b60008135905061141a816113f4565b92915050565b60006020828403121561143657611435611344565b5b60006114448482850161140b565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6004811061148d5761148c61144d565b5b50565b600081905061149e8261147c565b919050565b60006114ae82611490565b9050919050565b6114be816114a3565b82525050565b60006020820190506114d960008301846114b5565b92915050565b6000815190506114ee8161139b565b92915050565b60006020828403121561150a57611509611344565b5b6000611518848285016114df565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061155b826112d4565b9150611566836112d4565b92508261157657611575611521565b5b828204905092915050565b600081905092915050565b50565b600061159c600083611581565b91506115a78261158c565b600082019050919050565b60006115bd8261158f565b9150819050919050565b60006040820190506115dc600083018561131a565b6115e960208301846112de565b9392505050565b60008115159050919050565b611605816115f0565b811461161057600080fd5b50565b600081519050611622816115fc565b92915050565b60006020828403121561163e5761163d611344565b5b600061164c84828501611613565b91505092915050565b600082825260208201905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006116c2602683611655565b91506116cd82611666565b604082019050919050565b600060208201905081810360008301526116f1816116b5565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061172e602083611655565b9150611739826116f8565b602082019050919050565b6000602082019050818103600083015261175d81611721565b9050919050565b6000819050919050565b600061178961178461177f84611764565b61125a565b6112d4565b9050919050565b6117998161176e565b82525050565b600060c0820190506117b4600083018961131a565b6117c160208301886112de565b6117ce6040830187611790565b6117db6060830186611790565b6117e8608083018561131a565b6117f560a08301846112de565b979650505050505050565b60008060006060848603121561181957611818611344565b5b6000611827868287016114df565b9350506020611838868287016114df565b9250506040611849868287016114df565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6118e681611308565b82525050565b60006118f883836118dd565b60208301905092915050565b6000602082019050919050565b600061191c826118b1565b61192681856118bc565b9350611931836118cd565b8060005b8381101561196257815161194988826118ec565b975061195483611904565b925050600181019050611935565b5085935050505092915050565b60006080820190506119846000830187611790565b81810360208301526119968186611911565b90506119a5604083018561131a565b6119b260608301846112de565b9594505050505056fea26469706673582212205944629cee1f5939c6afad06149334b3fd4ca6f6332983ff3bbd555022269b7864736f6c63430008130033000000000000000000000000b354b5da5ea39dadb1cea8140bf242eb24b1821a000000000000000000000000a6897cce09980a302822256f875a7dcb1ebb79c9000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2

Deployed Bytecode

0x6080604052600436106100e15760003560e01c806361d027b31161007f57806391b3dc2b1161005957806391b3dc2b14610271578063ad5c46481461029a578063f2fde38b146102c5578063fb8dc179146102ee576100e8565b806361d027b314610204578063715018a61461022f5780638da5cb5b14610246576100e8565b806329eb1592116100bb57806329eb15921461016e5780632b5335c3146101975780634cf088d9146101ae57806359193ad9146101d9576100e8565b80631694505e146100ed5780631a0a7559146101185780631c75f08514610143576100e8565b366100e857005b600080fd5b3480156100f957600080fd5b50610102610319565b60405161010f91906112b9565b60405180910390f35b34801561012457600080fd5b5061012d61033d565b60405161013a91906112ed565b60405180910390f35b34801561014f57600080fd5b50610158610343565b6040516101659190611329565b60405180910390f35b34801561017a57600080fd5b506101956004803603810190610190919061136e565b61035b565b005b3480156101a357600080fd5b506101ac610390565b005b3480156101ba57600080fd5b506101c3610b57565b6040516101d09190611329565b60405180910390f35b3480156101e557600080fd5b506101ee610b7b565b6040516101fb9190611329565b60405180910390f35b34801561021057600080fd5b50610219610b9f565b6040516102269190611329565b60405180910390f35b34801561023b57600080fd5b50610244610bc3565b005b34801561025257600080fd5b5061025b610bd7565b6040516102689190611329565b60405180910390f35b34801561027d57600080fd5b50610298600480360381019061029391906113c7565b610c00565b005b3480156102a657600080fd5b506102af610c12565b6040516102bc9190611329565b60405180910390f35b3480156102d157600080fd5b506102ec60048036038101906102e79190611420565b610c36565b005b3480156102fa57600080fd5b50610303610cb9565b60405161031091906114c4565b60405180910390f35b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b60015481565b73ddd80699387a25c5ba00a2f1389de73d351c7d3c81565b610363610ccc565b80600060146101000a81548160ff021916908360038111156103885761038761144d565b5b021790555050565b60007f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016103eb9190611329565b602060405180830381865afa158015610408573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061042c91906114f4565b905060008111156104c3577f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d826040518263ffffffff1660e01b815260040161049091906112ed565b600060405180830381600087803b1580156104aa57600080fd5b505af11580156104be573d6000803e3d6000fd5b505050505b6000479050600060015482101590508015610b525760006003836104e79190611550565b9050600073ddd80699387a25c5ba00a2f1389de73d351c7d3c73ffffffffffffffffffffffffffffffffffffffff1682604051610523906115b2565b60006040518083038185875af1925050503d8060008114610560576040519150601f19603f3d011682016040523d82523d6000602084013e610565565b606091505b505080915050479350600060038111156105825761058161144d565b5b600060149054906101000a900460ff1660038111156105a4576105a361144d565b5b036105b7576105b284610d4a565b610af6565b600160038111156105cb576105ca61144d565b5b600060149054906101000a900460ff1660038111156105ed576105ec61144d565b5b03610724576105fb84610fab565b7f000000000000000000000000b354b5da5ea39dadb1cea8140bf242eb24b1821a73ffffffffffffffffffffffffffffffffffffffff166342966c687f000000000000000000000000b354b5da5ea39dadb1cea8140bf242eb24b1821a73ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016106909190611329565b602060405180830381865afa1580156106ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106d191906114f4565b6040518263ffffffff1660e01b81526004016106ed91906112ed565b600060405180830381600087803b15801561070757600080fd5b505af115801561071b573d6000803e3d6000fd5b50505050610af5565b600260038111156107385761073761144d565b5b600060149054906101000a900460ff16600381111561075a5761075961144d565b5b036109785761076884610fab565b60007f000000000000000000000000b354b5da5ea39dadb1cea8140bf242eb24b1821a73ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016107c39190611329565b602060405180830381865afa1580156107e0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061080491906114f4565b90507f000000000000000000000000b354b5da5ea39dadb1cea8140bf242eb24b1821a73ffffffffffffffffffffffffffffffffffffffff1663095ea7b37f000000000000000000000000a6897cce09980a302822256f875a7dcb1ebb79c9836040518363ffffffff1660e01b81526004016108819291906115c7565b6020604051808303816000875af11580156108a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c49190611628565b507f000000000000000000000000a6897cce09980a302822256f875a7dcb1ebb79c973ffffffffffffffffffffffffffffffffffffffff1663adc9772e7f0000000000000000000000009021d4f14513ebef91df1db77c363d1a77b0b3b2836040518363ffffffff1660e01b81526004016109409291906115c7565b600060405180830381600087803b15801561095a57600080fd5b505af115801561096e573d6000803e3d6000fd5b5050505050610af4565b60038081111561098b5761098a61144d565b5b600060149054906101000a900460ff1660038111156109ad576109ac61144d565b5b03610af3577f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1663d0e30db0856040518263ffffffff1660e01b81526004016000604051808303818588803b158015610a1a57600080fd5b505af1158015610a2e573d6000803e3d6000fd5b50505050507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb7f0000000000000000000000009021d4f14513ebef91df1db77c363d1a77b0b3b2866040518363ffffffff1660e01b8152600401610aae9291906115c7565b6020604051808303816000875af1158015610acd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af19190611628565b505b5b5b5b600060149054906101000a900460ff166003811115610b1857610b1761144d565b5b7f067f8d20c940cbfd542cc0f85dc9370513e331387973e37f4b045ec8f3e1294c85604051610b4791906112ed565b60405180910390a250505b505050565b7f000000000000000000000000a6897cce09980a302822256f875a7dcb1ebb79c981565b7f000000000000000000000000b354b5da5ea39dadb1cea8140bf242eb24b1821a81565b7f0000000000000000000000009021d4f14513ebef91df1db77c363d1a77b0b3b281565b610bcb610ccc565b610bd5600061116e565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610c08610ccc565b8060018190555050565b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281565b610c3e610ccc565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610cad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca4906116d8565b60405180910390fd5b610cb68161116e565b50565b600060149054906101000a900460ff1681565b610cd4611232565b73ffffffffffffffffffffffffffffffffffffffff16610cf2610bd7565b73ffffffffffffffffffffffffffffffffffffffff1614610d48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3f90611744565b60405180910390fd5b565b610d5f600282610d5a9190611550565b610fab565b60007f000000000000000000000000b354b5da5ea39dadb1cea8140bf242eb24b1821a73ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610dba9190611329565b602060405180830381865afa158015610dd7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dfb91906114f4565b90507f000000000000000000000000b354b5da5ea39dadb1cea8140bf242eb24b1821a73ffffffffffffffffffffffffffffffffffffffff1663095ea7b37f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d836040518363ffffffff1660e01b8152600401610e789291906115c7565b6020604051808303816000875af1158015610e97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ebb9190611628565b507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d719477f000000000000000000000000b354b5da5ea39dadb1cea8140bf242eb24b1821a846000807f0000000000000000000000009021d4f14513ebef91df1db77c363d1a77b0b3b2426040518863ffffffff1660e01b8152600401610f619695949392919061179f565b60606040518083038185885af1158015610f7f573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610fa49190611800565b5050505050565b6000600267ffffffffffffffff811115610fc857610fc7611853565b5b604051908082528060200260200182016040528015610ff65781602001602082028036833780820191505090505b5090507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28160008151811061102e5761102d611882565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000b354b5da5ea39dadb1cea8140bf242eb24b1821a8160018151811061109d5761109c611882565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663b6f9de958360008430426040518663ffffffff1660e01b8152600401611138949392919061196f565b6000604051808303818588803b15801561115157600080fd5b505af1158015611165573d6000803e3d6000fd5b50505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061127f61127a6112758461123a565b61125a565b61123a565b9050919050565b600061129182611264565b9050919050565b60006112a382611286565b9050919050565b6112b381611298565b82525050565b60006020820190506112ce60008301846112aa565b92915050565b6000819050919050565b6112e7816112d4565b82525050565b600060208201905061130260008301846112de565b92915050565b60006113138261123a565b9050919050565b61132381611308565b82525050565b600060208201905061133e600083018461131a565b92915050565b600080fd5b6004811061135657600080fd5b50565b60008135905061136881611349565b92915050565b60006020828403121561138457611383611344565b5b600061139284828501611359565b91505092915050565b6113a4816112d4565b81146113af57600080fd5b50565b6000813590506113c18161139b565b92915050565b6000602082840312156113dd576113dc611344565b5b60006113eb848285016113b2565b91505092915050565b6113fd81611308565b811461140857600080fd5b50565b60008135905061141a816113f4565b92915050565b60006020828403121561143657611435611344565b5b60006114448482850161140b565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6004811061148d5761148c61144d565b5b50565b600081905061149e8261147c565b919050565b60006114ae82611490565b9050919050565b6114be816114a3565b82525050565b60006020820190506114d960008301846114b5565b92915050565b6000815190506114ee8161139b565b92915050565b60006020828403121561150a57611509611344565b5b6000611518848285016114df565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061155b826112d4565b9150611566836112d4565b92508261157657611575611521565b5b828204905092915050565b600081905092915050565b50565b600061159c600083611581565b91506115a78261158c565b600082019050919050565b60006115bd8261158f565b9150819050919050565b60006040820190506115dc600083018561131a565b6115e960208301846112de565b9392505050565b60008115159050919050565b611605816115f0565b811461161057600080fd5b50565b600081519050611622816115fc565b92915050565b60006020828403121561163e5761163d611344565b5b600061164c84828501611613565b91505092915050565b600082825260208201905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006116c2602683611655565b91506116cd82611666565b604082019050919050565b600060208201905081810360008301526116f1816116b5565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061172e602083611655565b9150611739826116f8565b602082019050919050565b6000602082019050818103600083015261175d81611721565b9050919050565b6000819050919050565b600061178961178461177f84611764565b61125a565b6112d4565b9050919050565b6117998161176e565b82525050565b600060c0820190506117b4600083018961131a565b6117c160208301886112de565b6117ce6040830187611790565b6117db6060830186611790565b6117e8608083018561131a565b6117f560a08301846112de565b979650505050505050565b60008060006060848603121561181957611818611344565b5b6000611827868287016114df565b9350506020611838868287016114df565b9250506040611849868287016114df565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6118e681611308565b82525050565b60006118f883836118dd565b60208301905092915050565b6000602082019050919050565b600061191c826118b1565b61192681856118bc565b9350611931836118cd565b8060005b8381101561196257815161194988826118ec565b975061195483611904565b925050600181019050611935565b5085935050505092915050565b60006080820190506119846000830187611790565b81810360208301526119968186611911565b90506119a5604083018561131a565b6119b260608301846112de565b9594505050505056fea26469706673582212205944629cee1f5939c6afad06149334b3fd4ca6f6332983ff3bbd555022269b7864736f6c63430008130033

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

000000000000000000000000b354b5da5ea39dadb1cea8140bf242eb24b1821a000000000000000000000000a6897cce09980a302822256f875a7dcb1ebb79c9000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2

-----Decoded View---------------
Arg [0] : _QWN (address): 0xb354b5da5EA39dadb1Cea8140bF242Eb24b1821A
Arg [1] : _staking (address): 0xA6897ccE09980A302822256F875A7dcB1eBb79C9
Arg [2] : _WETH (address): 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000b354b5da5ea39dadb1cea8140bf242eb24b1821a
Arg [1] : 000000000000000000000000a6897cce09980a302822256f875a7dcb1ebb79c9
Arg [2] : 000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2


Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
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.