ETH Price: $2,416.11 (+2.10%)

Contract

0x743F469f4A603bD2e0D2e78E47292A9bDBb1a860
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

1 address found via
Transaction Hash
Method
Block
From
To
Claim Stuck Bala...170173882023-04-10 11:04:47544 days ago1681124687IN
0x743F469f...bDBb1a860
0 ETH0.0004796420.39585965
Cross170045752023-04-08 15:31:11545 days ago1680967871IN
0x743F469f...bDBb1a860
0 ETH0.0017927124.19707306
Claim Stuck Bala...170016732023-04-08 5:37:35546 days ago1680932255IN
0x743F469f...bDBb1a860
0 ETH0.000509621.66954954
Claim Stuck Toke...170016692023-04-08 5:36:47546 days ago1680932207IN
0x743F469f...bDBb1a860
0 ETH0.0005312521.79778897
Claim Stuck Bala...170016382023-04-08 5:29:59546 days ago1680931799IN
0x743F469f...bDBb1a860
0 ETH0.0005230521.95977787
Claim Stuck Bala...170016132023-04-08 5:24:59546 days ago1680931499IN
0x743F469f...bDBb1a860
0 ETH0.0004942821.01840814
Cross170009072023-04-08 3:02:35546 days ago1680922955IN
0x743F469f...bDBb1a860
0.01 ETH0.0015000719.97548392
Cross169971592023-04-07 14:19:35547 days ago1680877175IN
0x743F469f...bDBb1a860
0 ETH0.0019909221.83611711
Cross169922092023-04-06 21:29:47547 days ago1680816587IN
0x743F469f...bDBb1a860
0 ETH0.0023152831.26563207
Cross169919272023-04-06 20:31:35547 days ago1680813095IN
0x743F469f...bDBb1a860
0 ETH0.0035054447.31464236
Cross169882792023-04-06 7:57:11548 days ago1680767831IN
0x743F469f...bDBb1a860
0.01 ETH0.0021772927.63339002
Cross169836262023-04-05 16:01:11548 days ago1680710471IN
0x743F469f...bDBb1a860
0 ETH0.0039406353.18860514
Cross169610142023-04-02 11:09:11552 days ago1680433751IN
0x743F469f...bDBb1a860
0.01 ETH0.0015767618.86257506
Cross169550602023-04-01 15:03:11552 days ago1680361391IN
0x743F469f...bDBb1a860
0.01 ETH0.0023280927.85063384
Cross169382432023-03-30 6:20:47555 days ago1680157247IN
0x743F469f...bDBb1a860
0 ETH0.0023707931.99972112
Cross169381762023-03-30 6:07:11555 days ago1680156431IN
0x743F469f...bDBb1a860
0.01 ETH0.0024747929.60564624
Cross169291012023-03-28 23:30:11556 days ago1680046211IN
0x743F469f...bDBb1a860
0.01 ETH0.0020892424.9933772
Cross169283562023-03-28 20:59:11556 days ago1680037151IN
0x743F469f...bDBb1a860
0 ETH0.00198726.8194978
Cross169239942023-03-28 6:14:11557 days ago1679984051IN
0x743F469f...bDBb1a860
0.01 ETH0.0023309129.66290993
Cross169015362023-03-25 2:33:11560 days ago1679711591IN
0x743F469f...bDBb1a860
0 ETH0.0011245515.21977999
Cross168675192023-03-20 7:52:47565 days ago1679298767IN
0x743F469f...bDBb1a860
0 ETH0.0011298315.29361951
Cross168671242023-03-20 6:32:59565 days ago1679293979IN
0x743F469f...bDBb1a860
0 ETH0.000917212.41542064
Cross168583772023-03-19 1:02:47566 days ago1679187767IN
0x743F469f...bDBb1a860
0 ETH0.0010197913.80191047
Cross168497482023-03-17 19:57:35567 days ago1679083055IN
0x743F469f...bDBb1a860
0.01 ETH0.0022823427.37277762
Cross168497452023-03-17 19:56:59567 days ago1679083019IN
0x743F469f...bDBb1a860
0 ETH0.0019869526.89578885
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
170009072023-04-08 3:02:35546 days ago1680922955
0x743F469f...bDBb1a860
0.01 ETH
169882792023-04-06 7:57:11548 days ago1680767831
0x743F469f...bDBb1a860
0.01 ETH
169610142023-04-02 11:09:11552 days ago1680433751
0x743F469f...bDBb1a860
0.01 ETH
169550602023-04-01 15:03:11552 days ago1680361391
0x743F469f...bDBb1a860
0.01 ETH
169381762023-03-30 6:07:11555 days ago1680156431
0x743F469f...bDBb1a860
0.01 ETH
169291012023-03-28 23:30:11556 days ago1680046211
0x743F469f...bDBb1a860
0.01 ETH
169239942023-03-28 6:14:11557 days ago1679984051
0x743F469f...bDBb1a860
0.01 ETH
168497482023-03-17 19:57:35567 days ago1679083055
0x743F469f...bDBb1a860
0.01 ETH
168497432023-03-17 19:56:35567 days ago1679082995
0x743F469f...bDBb1a860
0.01 ETH
168395472023-03-16 9:33:23569 days ago1678959203
0x743F469f...bDBb1a860
0.01 ETH
167826102023-03-08 9:20:23577 days ago1678267223
0x743F469f...bDBb1a860
0.01 ETH
167620202023-03-05 11:52:47580 days ago1678017167
0x743F469f...bDBb1a860
0.01 ETH
166834812023-02-22 10:46:35591 days ago1677062795
0x743F469f...bDBb1a860
0.01 ETH
166830902023-02-22 9:26:23591 days ago1677057983
0x743F469f...bDBb1a860
0.01 ETH
166828082023-02-22 8:29:11591 days ago1677054551
0x743F469f...bDBb1a860
0.01 ETH
166827922023-02-22 8:25:59591 days ago1677054359
0x743F469f...bDBb1a860
0.01 ETH
166765002023-02-21 11:12:47592 days ago1676977967
0x743F469f...bDBb1a860
0.01 ETH
166605502023-02-19 5:25:59594 days ago1676784359
0x743F469f...bDBb1a860
0.01 ETH
166601222023-02-19 3:59:23594 days ago1676779163
0x743F469f...bDBb1a860
0.01 ETH
166601042023-02-19 3:55:47594 days ago1676778947
0x743F469f...bDBb1a860
0.01 ETH
166478432023-02-17 10:28:35596 days ago1676629715
0x743F469f...bDBb1a860
0.01 ETH
166464562023-02-17 5:48:35596 days ago1676612915
0x743F469f...bDBb1a860
0.01 ETH
166173152023-02-13 4:01:11600 days ago1676260871
0x743F469f...bDBb1a860
0.01 ETH
166076732023-02-11 19:41:23601 days ago1676144483
0x743F469f...bDBb1a860
0.01 ETH
166007242023-02-10 20:23:59602 days ago1676060639
0x743F469f...bDBb1a860
0.01 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
POM_Connect_ETH

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
File 1 of 1 : Bridge-PEG-ETH.sol
// SPDX-License-Identifier: MIT

pragma solidity 0.8.17;

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address who) external view returns (uint256);
    function allowance(address owner, address spender) external view returns (uint256);
    function transfer(address to, uint256 value) external returns (bool);
    function approve(address spender, uint256 value) external returns (bool);
    function transferFrom(address from, address to, uint256 value) external returns (bool);

    function mint(address to, uint256 amount) external;
    function burnFrom(address account, uint256 amount) external;

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

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

library Address {
    function isContract(address account) internal view returns (bool) {
        // According to EIP-1052, 0x0 is the value returned for not-yet created accounts
        // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned
        // for accounts without code, i.e. `keccak256('')`
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        // solhint-disable-next-line no-inline-assembly
        assembly {
            codehash := extcodehash(account)
        }
        return (codehash != accountHash && codehash != 0x0);
    }

    function sendValue(address payable recipient, uint256 amount) internal {
        require(
            address(this).balance >= amount,
            "Address: insufficient balance"
        );

        // solhint-disable-next-line avoid-low-level-calls, avoid-call-value
        (bool success, ) = recipient.call{value: amount}("");
        require(
            success,
            "Address: unable to send value, recipient may have reverted"
        );
    }

    function functionCall(address target, bytes memory data)
        internal
        returns (bytes memory)
    {
        return functionCall(target, data, "Address: low-level call failed");
    }

    function functionCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        return _functionCallWithValue(target, data, 0, errorMessage);
    }

    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value
    ) internal returns (bytes memory) {
        return
            functionCallWithValue(
                target,
                data,
                value,
                "Address: low-level call with value failed"
            );
    }

    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value,
        string memory errorMessage
    ) internal returns (bytes memory) {
        require(
            address(this).balance >= value,
            "Address: insufficient balance for call"
        );
        return _functionCallWithValue(target, data, value, errorMessage);
    }

    function _functionCallWithValue(
        address target,
        bytes memory data,
        uint256 weiValue,
        string memory errorMessage
    ) private returns (bytes memory) {
        require(isContract(target), "Address: call to non-contract");

        (bool success, bytes memory returndata) = target.call{value: weiValue}(
            data
        );
        if (success) {
            return returndata;
        } else {
            if (returndata.length > 0) {
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _transferOwnership(_msgSender());
    }

    function owner() public view virtual returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

contract POM_Connect_ETH is Context, Ownable {
    using Address for address;

    struct Fees {
        mapping(uint256 => uint256) fee;
        mapping(uint256 => uint256) tax;
    }

    string private _name = "POM Connect";
    string private _symbol = "POM Connect";

    IERC20 public token;
    
    // ChainID => Fees Struct
    // 0 regular fees
    // 1 first month fees
    // 2 second month fees
    // 3 third month fees
    Fees[4] private fees;

    address payable public feeReceiver;
    uint256 public bridgeActivationTime;

    mapping (uint256 => mapping(uint256 => uint256)) public validNonce;
    mapping (uint256 => uint256) public nonces;
    
    mapping (address => bool) public isOperator;
    mapping (address => bool) public excludedFromRestrictions;

    bool public isBridgeActive = false;

    modifier onlyBridgeActive() {
        if(!excludedFromRestrictions[msg.sender]) {
            require(isBridgeActive, "Bridge is not active");
        }
        _;
    }

    modifier onlyOperator(){
        require(isOperator[msg.sender]==true,"Error: Caller is not the operator!");
        _;
    }

    event Crossed(address indexed sender, uint256 value, uint256 fromChainID, uint256 chainID, uint256 nonce);

    constructor(address _token, address payable _feeReceiver) {
        token = IERC20(_token);
        feeReceiver = _feeReceiver;

        // 0 regular fees
        // 1 first month fees
        // 2 second month fees
        // 3 third month fees

        fees[0].fee[56] = 0.01 ether;
        fees[0].tax[56] = 10;
        fees[1].fee[56] = 0.01 ether;
        fees[1].tax[56] = 10;
        fees[2].fee[56] = 0.01 ether;
        fees[2].tax[56] = 10;
        fees[3].fee[56] = 0.01 ether;
        fees[3].tax[56] = 10;

        fees[0].fee[18159] = 0;
        fees[0].tax[18159] = 10;
        fees[1].fee[18159] = 0;
        fees[1].tax[18159] = 10;
        fees[2].fee[18159] = 0;
        fees[2].tax[18159] = 10;
        fees[3].fee[18159] = 0;
        fees[3].tax[18159] = 10;
    }

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

    function symbol() public view returns (string memory) {
        return _symbol;
    }

    function setBridgeFees(uint256 period, uint256 _chainID, uint256 _fee, uint256 _tax) public onlyOwner {
        fees[period].fee[_chainID] = _fee;
        fees[period].tax[_chainID] = _tax;
    }

    function getBridgeFees(uint256 period, uint256 _chainID) public view returns (uint256, uint256) {
        return (fees[period].fee[_chainID], fees[period].tax[_chainID]);
    }

    function getCurrentFees(uint256 _chainID) public view returns (uint256, uint256) {
        if (bridgeActivationTime == 0) {
            return (0, 0);
        } else if (block.timestamp < bridgeActivationTime + 30 days) {
            return (fees[1].fee[_chainID], fees[1].tax[_chainID]);
        } else if (block.timestamp < bridgeActivationTime + 60 days) {
            return (fees[2].fee[_chainID], fees[2].tax[_chainID]);
        } else if (block.timestamp < bridgeActivationTime + 90 days) {
            return (fees[3].fee[_chainID], fees[3].tax[_chainID]);
        } else {
            return (fees[0].fee[_chainID], fees[0].tax[_chainID]);
        }
    }

    function setFeeReceiver(address payable _feeReceiver) public onlyOwner {
        feeReceiver = _feeReceiver;
    }

    function setOperator(address _operator, bool _value) public onlyOwner{
        require(isOperator[_operator]!=_value,"Error: Already set!");
        isOperator[_operator]= _value;
    }

    function setExcludeFromRestrictions(address _user, bool _value) external  onlyOwner {
        require(excludedFromRestrictions[_user] != _value, "Error: Already set!");
        excludedFromRestrictions[_user] = _value;
    }

    function setBridgeActive(bool _isBridgeActive) public onlyOwner {
        if (bridgeActivationTime == 0) {
            bridgeActivationTime = block.timestamp;
        }
        isBridgeActive = _isBridgeActive;
    }

    function transfer(
        address receiver,
        uint256 amount,
        uint256 fromChainID,
        uint256 _txNonce
    ) external onlyOperator {
        require(validNonce[fromChainID][_txNonce] == 0,"Error: This transfer has been proceed!");
        token.mint(receiver, amount);
        validNonce[fromChainID][_txNonce]=1;
    }

    function cross(
        uint256 amount,
        uint256 chainID
    ) external payable onlyBridgeActive {
        uint256 tax = handleFee(amount, chainID);
        token.burnFrom(_msgSender(), amount);
        token.mint(feeReceiver, tax);
        emit Crossed(_msgSender(), amount - tax, block.chainid, chainID, nonces[chainID]);
        nonces[chainID]+=1;
    }

    function handleFee (uint256 _amount, uint256 _chainID) internal returns (uint256) {
        if (bridgeActivationTime == 0 || excludedFromRestrictions[_msgSender()]) {
            return 0;
        }
        (uint256 fee, uint256 tax) = getCurrentFees(_chainID);
        require(msg.value >= fee, "Fee is not enough");
        if (fee > 0) {
            feeReceiver.transfer(fee);
        }
        if (msg.value > fee) {
            payable(_msgSender()).transfer(msg.value - fee);
        }
        return _amount * tax / 1000;
    }

    function claimStuckBalance() external onlyOwner {
        payable(_msgSender()).transfer(address(this).balance);
    }

    function claimStuckTokens(address tokenAddress) external onlyOwner {
        IERC20(tokenAddress).transfer(_msgSender(), IERC20(tokenAddress).balanceOf(address(this)));
    }

    function claimStuckBalanceAmount(uint256 _amount) external  onlyOwner {
        require(_amount <= address(this).balance, "Not enough balance");
        payable(_msgSender()).transfer(_amount);
    }

    function claimStuckTokensAmount(address tokenAddress, uint256 _amount) external onlyOwner {
        IERC20(tokenAddress).transfer(_msgSender(),_amount);
    }

    receive() external payable {}
}

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

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address payable","name":"_feeReceiver","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"fromChainID","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"chainID","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"nonce","type":"uint256"}],"name":"Crossed","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":"bridgeActivationTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"claimStuckBalanceAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"claimStuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"claimStuckTokensAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"chainID","type":"uint256"}],"name":"cross","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"excludedFromRestrictions","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeReceiver","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"period","type":"uint256"},{"internalType":"uint256","name":"_chainID","type":"uint256"}],"name":"getBridgeFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_chainID","type":"uint256"}],"name":"getCurrentFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isBridgeActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isOperator","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_isBridgeActive","type":"bool"}],"name":"setBridgeActive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"period","type":"uint256"},{"internalType":"uint256","name":"_chainID","type":"uint256"},{"internalType":"uint256","name":"_fee","type":"uint256"},{"internalType":"uint256","name":"_tax","type":"uint256"}],"name":"setBridgeFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"bool","name":"_value","type":"bool"}],"name":"setExcludeFromRestrictions","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_feeReceiver","type":"address"}],"name":"setFeeReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_operator","type":"address"},{"internalType":"bool","name":"_value","type":"bool"}],"name":"setOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"fromChainID","type":"uint256"},{"internalType":"uint256","name":"_txNonce","type":"uint256"}],"name":"transfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"validNonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c0604052600b60809081526a1413d34810dbdb9b9958dd60aa1b60a0526001906200002c90826200041e565b5060408051808201909152600b81526a1413d34810dbdb9b9958dd60aa1b60208201526002906200005e90826200041e565b506012805460ff191690553480156200007657600080fd5b5060405162001a6d38038062001a6d833981016040819052620000999162000503565b620000a43362000329565b600380546001600160a01b039384166001600160a01b031991821617909155600c8054929093169116179055662386f26fc100007f34db2c2506a14ae3565d22daf9fb04f13bcfe9437628061d7d65cec98630673c819055600a7f5f395545d7c2ebf6d2fe0bd3c2073d7c4780f2b676eec0a614b06e38606c9b7a8190557f7801d1c83a83dfc069425b0cd3cfee3901116f5c0281c91b30b04f6d53b52b138290557fff447edf4e1c9450b5dae138089da2855247c4e0890d53e4eaf79e09eb9b4bef8190557f65da6c4090fa45091fa442ab136189a2d16234c87e01eb7990c6a6f0bcfbd24c8290557f35cbfc6cecf8f6a20f9ae56f6b797d21d83573be46cd67af485c361e5b9e38898190557f0d66487a4fd51dd587b2804aa978e27509d1f975a58951d636cb4c8aad7c71e1919091557f63f8b8455c25dd574f6f70e6135fc3c46a28496b9350872b5ec064987ff1a9318190556146ef60009081527fabf4e9b252319e456fe7987d388d659f11039b6c11e78bf36f6eb8181732b86d8190557f6d57b2e2a60d8cb94eed8672dbfbbd779da414e1a225ce22a2e5373faae2fca18290557fd7ec2df2decc4e8c6880937aabc0b3018b158805f90fd97bc56eb32dcf1d55178190557ffb41530f7482954a9fe015ef6359416aa42d6c83350347f1f53da39388e17c6e8290557f048d33323b413d30d507abfa803e2239a38722d8aef66b4c870d7bbe84ef8f098190557f564eaf2a399bd99c65e755ed0877c488aff237263bef9aa9296aa316020e77228290557fc0446d846d4522ca78bc5e741b0eb8b7f4d4730ce2a8508c36ec4362cbda8d1055600b6020527e62acacad8410e0ff28a53b832140b3861cd122fbc6c2005e1c3678e626a10b5562000542565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620003a457607f821691505b602082108103620003c557634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200041957600081815260208120601f850160051c81016020861015620003f45750805b601f850160051c820191505b81811015620004155782815560010162000400565b5050505b505050565b81516001600160401b038111156200043a576200043a62000379565b62000452816200044b84546200038f565b84620003cb565b602080601f8311600181146200048a5760008415620004715750858301515b600019600386901b1c1916600185901b17855562000415565b600085815260208120601f198616915b82811015620004bb578886015182559484019460019091019084016200049a565b5085821015620004da5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6001600160a01b03811681146200050057600080fd5b50565b600080604083850312156200051757600080fd5b82516200052481620004ea565b60208401519092506200053781620004ea565b809150509250929050565b61151b80620005526000396000f3fe6080604052600436106101855760003560e01c80638a2fceaf116100d1578063bf4c820d1161008a578063f1ce25c611610064578063f1ce25c6146104b1578063f2fde38b146104c6578063f9d0831a146104e6578063fc0c546a1461050657600080fd5b8063bf4c820d1461045e578063d82a00b21461047e578063efdcd9741461049157600080fd5b80638a2fceaf146103875780638da5cb5b146103b757806395d89b41146103e9578063b23d5cd0146103fe578063b3f006741461041e578063b6510bb31461043e57600080fd5b8063474866f51161013e5780636d70f7ae116101185780636d70f7ae146102ed5780636fad78761461031d578063715018a614610352578063766b91561461036757600080fd5b8063474866f51461028d578063558a7297146102ad5780635ab1d61c146102cd57600080fd5b8063029a7ba61461019157806306fdde03146101c0578063141a468c146101e25780631dbc3b381461021d5780633f73cf32146102335780633fcc20361461026b57600080fd5b3661018c57005b600080fd5b34801561019d57600080fd5b506012546101ab9060ff1681565b60405190151581526020015b60405180910390f35b3480156101cc57600080fd5b506101d5610526565b6040516101b791906111f6565b3480156101ee57600080fd5b5061020f6101fd366004611244565b600f6020526000908152604090205481565b6040519081526020016101b7565b34801561022957600080fd5b5061020f600d5481565b34801561023f57600080fd5b5061020f61024e36600461125d565b600e60209081526000928352604080842090915290825290205481565b34801561027757600080fd5b5061028b610286366004611294565b6105b8565b005b34801561029957600080fd5b5061028b6102a83660046112ce565b610671565b3480156102b957600080fd5b5061028b6102c83660046112ce565b61072c565b3480156102d957600080fd5b5061028b6102e8366004611307565b6107e7565b3480156102f957600080fd5b506101ab61030836600461132b565b60106020526000908152604090205460ff1681565b34801561032957600080fd5b5061033d61033836600461125d565b610833565b604080519283526020830191909152016101b7565b34801561035e57600080fd5b5061028b610899565b34801561037357600080fd5b5061028b610382366004611348565b6108cf565b34801561039357600080fd5b506101ab6103a236600461132b565b60116020526000908152604090205460ff1681565b3480156103c357600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016101b7565b3480156103f557600080fd5b506101d5610959565b34801561040a57600080fd5b5061033d610419366004611244565b610968565b34801561042a57600080fd5b50600c546103d1906001600160a01b031681565b34801561044a57600080fd5b5061028b61045936600461137a565b610a42565b34801561046a57600080fd5b5061028b610479366004611244565b610bae565b61028b61048c36600461125d565b610c4e565b34801561049d57600080fd5b5061028b6104ac36600461132b565b610e31565b3480156104bd57600080fd5b5061028b610e7d565b3480156104d257600080fd5b5061028b6104e136600461132b565b610ed6565b3480156104f257600080fd5b5061028b61050136600461132b565b610f6e565b34801561051257600080fd5b506003546103d1906001600160a01b031681565b606060018054610535906113b5565b80601f0160208091040260200160405190810160405280929190818152602001828054610561906113b5565b80156105ae5780601f10610583576101008083540402835291602001916105ae565b820191906000526020600020905b81548152906001019060200180831161059157829003601f168201915b5050505050905090565b6000546001600160a01b031633146105eb5760405162461bcd60e51b81526004016105e2906113ef565b60405180910390fd5b6001600160a01b03821663a9059cbb336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af1158015610648573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061066c9190611424565b505050565b6000546001600160a01b0316331461069b5760405162461bcd60e51b81526004016105e2906113ef565b6001600160a01b03821660009081526011602052604090205481151560ff9091161515036107015760405162461bcd60e51b81526020600482015260136024820152724572726f723a20416c7265616479207365742160681b60448201526064016105e2565b6001600160a01b03919091166000908152601160205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146107565760405162461bcd60e51b81526004016105e2906113ef565b6001600160a01b03821660009081526010602052604090205481151560ff9091161515036107bc5760405162461bcd60e51b81526020600482015260136024820152724572726f723a20416c7265616479207365742160681b60448201526064016105e2565b6001600160a01b03919091166000908152601060205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146108115760405162461bcd60e51b81526004016105e2906113ef565b600d546000036108205742600d555b6012805460ff1916911515919091179055565b6000806004846004811061084957610849611441565b600202016000016000848152602001908152602001600020546004856004811061087557610875611441565b60020201600101600085815260200190815260200160002054915091509250929050565b6000546001600160a01b031633146108c35760405162461bcd60e51b81526004016105e2906113ef565b6108cd600061107f565b565b6000546001600160a01b031633146108f95760405162461bcd60e51b81526004016105e2906113ef565b816004856004811061090d5761090d611441565b60008681526002919091029190910160205260409020558060048581811061093757610937611441565b6002020160010160008581526020019081526020016000208190555050505050565b606060028054610535906113b5565b600080600d5460000361098057506000928392509050565b600d546109909062278d0061146d565b4210156109cd57600083815260066020526040902054600460015b6002020160010160008581526020019081526020016000205491509150915091565b600d546109dd90624f1a0061146d565b4210156109fc57600083815260086020526040902054600460026109ab565b600d54610a0c906276a70061146d565b421015610a2b576000838152600a6020526040902054600460036109ab565b6000838152600460208190526040822054916109ab565b3360009081526010602052604090205460ff161515600114610ab15760405162461bcd60e51b815260206004820152602260248201527f4572726f723a2043616c6c6572206973206e6f7420746865206f70657261746f604482015261722160f01b60648201526084016105e2565b6000828152600e6020908152604080832084845290915290205415610b275760405162461bcd60e51b815260206004820152602660248201527f4572726f723a2054686973207472616e7366657220686173206265656e2070726044820152656f636565642160d01b60648201526084016105e2565b6003546040516340c10f1960e01b81526001600160a01b03868116600483015260248201869052909116906340c10f1990604401600060405180830381600087803b158015610b7557600080fd5b505af1158015610b89573d6000803e3d6000fd5b505050600092835250600e602090815260408084209284529190529020600190555050565b6000546001600160a01b03163314610bd85760405162461bcd60e51b81526004016105e2906113ef565b47811115610c1d5760405162461bcd60e51b81526020600482015260126024820152714e6f7420656e6f7567682062616c616e636560701b60448201526064016105e2565b604051339082156108fc029083906000818181858888f19350505050158015610c4a573d6000803e3d6000fd5b5050565b3360009081526011602052604090205460ff16610cae5760125460ff16610cae5760405162461bcd60e51b8152602060048201526014602482015273427269646765206973206e6f742061637469766560601b60448201526064016105e2565b6000610cba83836110cf565b6003549091506001600160a01b03166379cc6790336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260248101869052604401600060405180830381600087803b158015610d1757600080fd5b505af1158015610d2b573d6000803e3d6000fd5b5050600354600c546040516340c10f1960e01b81526001600160a01b03918216600482015260248101869052911692506340c10f199150604401600060405180830381600087803b158015610d7f57600080fd5b505af1158015610d93573d6000803e3d6000fd5b50505050610d9e3390565b6001600160a01b03167f067dc886f06d6a272e07cc2499783587e71f7cc2b7b411350fa9fc255595ea20610dd28386611480565b6000858152600f60209081526040918290205482519384524691840191909152908201869052606082015260800160405180910390a26000828152600f60205260408120805460019290610e2790849061146d565b9091555050505050565b6000546001600160a01b03163314610e5b5760405162461bcd60e51b81526004016105e2906113ef565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610ea75760405162461bcd60e51b81526004016105e2906113ef565b60405133904780156108fc02916000818181858888f19350505050158015610ed3573d6000803e3d6000fd5b50565b6000546001600160a01b03163314610f005760405162461bcd60e51b81526004016105e2906113ef565b6001600160a01b038116610f655760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105e2565b610ed38161107f565b6000546001600160a01b03163314610f985760405162461bcd60e51b81526004016105e2906113ef565b6001600160a01b03811663a9059cbb336040516370a0823160e01b81523060048201526001600160a01b038516906370a0823190602401602060405180830381865afa158015610fec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110109190611493565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af115801561105b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4a9190611424565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000600d54600014806110f157503360009081526011602052604090205460ff165b156110fe575060006111f0565b60008061110a84610968565b91509150813410156111525760405162461bcd60e51b815260206004820152601160248201527008ccaca40d2e640dcdee840cadcdeeaced607b1b60448201526064016105e2565b811561119457600c546040516001600160a01b039091169083156108fc029084906000818181858888f19350505050158015611192573d6000803e3d6000fd5b505b813411156111d457336108fc6111aa8434611480565b6040518115909202916000818181858888f193505050501580156111d2573d6000803e3d6000fd5b505b6103e86111e182876114ac565b6111eb91906114c3565b925050505b92915050565b600060208083528351808285015260005b8181101561122357858101830151858201604001528201611207565b506000604082860101526040601f19601f8301168501019250505092915050565b60006020828403121561125657600080fd5b5035919050565b6000806040838503121561127057600080fd5b50508035926020909101359150565b6001600160a01b0381168114610ed357600080fd5b600080604083850312156112a757600080fd5b82356112b28161127f565b946020939093013593505050565b8015158114610ed357600080fd5b600080604083850312156112e157600080fd5b82356112ec8161127f565b915060208301356112fc816112c0565b809150509250929050565b60006020828403121561131957600080fd5b8135611324816112c0565b9392505050565b60006020828403121561133d57600080fd5b81356113248161127f565b6000806000806080858703121561135e57600080fd5b5050823594602084013594506040840135936060013592509050565b6000806000806080858703121561139057600080fd5b843561139b8161127f565b966020860135965060408601359560600135945092505050565b600181811c908216806113c957607f821691505b6020821081036113e957634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561143657600080fd5b8151611324816112c0565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b808201808211156111f0576111f0611457565b818103818111156111f0576111f0611457565b6000602082840312156114a557600080fd5b5051919050565b80820281158282048414176111f0576111f0611457565b6000826114e057634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220c5325a27e70cdb14e66494dc7e95c120681c0e435fbda768206c9286ad2742aa64736f6c634300081100330000000000000000000000003bfcb1e14f2b1bfec9d611cd6b02d48ceef4349100000000000000000000000053b65fce5dc55e31db92f75eb29f03d6e0408c6b

Deployed Bytecode

0x6080604052600436106101855760003560e01c80638a2fceaf116100d1578063bf4c820d1161008a578063f1ce25c611610064578063f1ce25c6146104b1578063f2fde38b146104c6578063f9d0831a146104e6578063fc0c546a1461050657600080fd5b8063bf4c820d1461045e578063d82a00b21461047e578063efdcd9741461049157600080fd5b80638a2fceaf146103875780638da5cb5b146103b757806395d89b41146103e9578063b23d5cd0146103fe578063b3f006741461041e578063b6510bb31461043e57600080fd5b8063474866f51161013e5780636d70f7ae116101185780636d70f7ae146102ed5780636fad78761461031d578063715018a614610352578063766b91561461036757600080fd5b8063474866f51461028d578063558a7297146102ad5780635ab1d61c146102cd57600080fd5b8063029a7ba61461019157806306fdde03146101c0578063141a468c146101e25780631dbc3b381461021d5780633f73cf32146102335780633fcc20361461026b57600080fd5b3661018c57005b600080fd5b34801561019d57600080fd5b506012546101ab9060ff1681565b60405190151581526020015b60405180910390f35b3480156101cc57600080fd5b506101d5610526565b6040516101b791906111f6565b3480156101ee57600080fd5b5061020f6101fd366004611244565b600f6020526000908152604090205481565b6040519081526020016101b7565b34801561022957600080fd5b5061020f600d5481565b34801561023f57600080fd5b5061020f61024e36600461125d565b600e60209081526000928352604080842090915290825290205481565b34801561027757600080fd5b5061028b610286366004611294565b6105b8565b005b34801561029957600080fd5b5061028b6102a83660046112ce565b610671565b3480156102b957600080fd5b5061028b6102c83660046112ce565b61072c565b3480156102d957600080fd5b5061028b6102e8366004611307565b6107e7565b3480156102f957600080fd5b506101ab61030836600461132b565b60106020526000908152604090205460ff1681565b34801561032957600080fd5b5061033d61033836600461125d565b610833565b604080519283526020830191909152016101b7565b34801561035e57600080fd5b5061028b610899565b34801561037357600080fd5b5061028b610382366004611348565b6108cf565b34801561039357600080fd5b506101ab6103a236600461132b565b60116020526000908152604090205460ff1681565b3480156103c357600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016101b7565b3480156103f557600080fd5b506101d5610959565b34801561040a57600080fd5b5061033d610419366004611244565b610968565b34801561042a57600080fd5b50600c546103d1906001600160a01b031681565b34801561044a57600080fd5b5061028b61045936600461137a565b610a42565b34801561046a57600080fd5b5061028b610479366004611244565b610bae565b61028b61048c36600461125d565b610c4e565b34801561049d57600080fd5b5061028b6104ac36600461132b565b610e31565b3480156104bd57600080fd5b5061028b610e7d565b3480156104d257600080fd5b5061028b6104e136600461132b565b610ed6565b3480156104f257600080fd5b5061028b61050136600461132b565b610f6e565b34801561051257600080fd5b506003546103d1906001600160a01b031681565b606060018054610535906113b5565b80601f0160208091040260200160405190810160405280929190818152602001828054610561906113b5565b80156105ae5780601f10610583576101008083540402835291602001916105ae565b820191906000526020600020905b81548152906001019060200180831161059157829003601f168201915b5050505050905090565b6000546001600160a01b031633146105eb5760405162461bcd60e51b81526004016105e2906113ef565b60405180910390fd5b6001600160a01b03821663a9059cbb336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af1158015610648573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061066c9190611424565b505050565b6000546001600160a01b0316331461069b5760405162461bcd60e51b81526004016105e2906113ef565b6001600160a01b03821660009081526011602052604090205481151560ff9091161515036107015760405162461bcd60e51b81526020600482015260136024820152724572726f723a20416c7265616479207365742160681b60448201526064016105e2565b6001600160a01b03919091166000908152601160205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146107565760405162461bcd60e51b81526004016105e2906113ef565b6001600160a01b03821660009081526010602052604090205481151560ff9091161515036107bc5760405162461bcd60e51b81526020600482015260136024820152724572726f723a20416c7265616479207365742160681b60448201526064016105e2565b6001600160a01b03919091166000908152601060205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146108115760405162461bcd60e51b81526004016105e2906113ef565b600d546000036108205742600d555b6012805460ff1916911515919091179055565b6000806004846004811061084957610849611441565b600202016000016000848152602001908152602001600020546004856004811061087557610875611441565b60020201600101600085815260200190815260200160002054915091509250929050565b6000546001600160a01b031633146108c35760405162461bcd60e51b81526004016105e2906113ef565b6108cd600061107f565b565b6000546001600160a01b031633146108f95760405162461bcd60e51b81526004016105e2906113ef565b816004856004811061090d5761090d611441565b60008681526002919091029190910160205260409020558060048581811061093757610937611441565b6002020160010160008581526020019081526020016000208190555050505050565b606060028054610535906113b5565b600080600d5460000361098057506000928392509050565b600d546109909062278d0061146d565b4210156109cd57600083815260066020526040902054600460015b6002020160010160008581526020019081526020016000205491509150915091565b600d546109dd90624f1a0061146d565b4210156109fc57600083815260086020526040902054600460026109ab565b600d54610a0c906276a70061146d565b421015610a2b576000838152600a6020526040902054600460036109ab565b6000838152600460208190526040822054916109ab565b3360009081526010602052604090205460ff161515600114610ab15760405162461bcd60e51b815260206004820152602260248201527f4572726f723a2043616c6c6572206973206e6f7420746865206f70657261746f604482015261722160f01b60648201526084016105e2565b6000828152600e6020908152604080832084845290915290205415610b275760405162461bcd60e51b815260206004820152602660248201527f4572726f723a2054686973207472616e7366657220686173206265656e2070726044820152656f636565642160d01b60648201526084016105e2565b6003546040516340c10f1960e01b81526001600160a01b03868116600483015260248201869052909116906340c10f1990604401600060405180830381600087803b158015610b7557600080fd5b505af1158015610b89573d6000803e3d6000fd5b505050600092835250600e602090815260408084209284529190529020600190555050565b6000546001600160a01b03163314610bd85760405162461bcd60e51b81526004016105e2906113ef565b47811115610c1d5760405162461bcd60e51b81526020600482015260126024820152714e6f7420656e6f7567682062616c616e636560701b60448201526064016105e2565b604051339082156108fc029083906000818181858888f19350505050158015610c4a573d6000803e3d6000fd5b5050565b3360009081526011602052604090205460ff16610cae5760125460ff16610cae5760405162461bcd60e51b8152602060048201526014602482015273427269646765206973206e6f742061637469766560601b60448201526064016105e2565b6000610cba83836110cf565b6003549091506001600160a01b03166379cc6790336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260248101869052604401600060405180830381600087803b158015610d1757600080fd5b505af1158015610d2b573d6000803e3d6000fd5b5050600354600c546040516340c10f1960e01b81526001600160a01b03918216600482015260248101869052911692506340c10f199150604401600060405180830381600087803b158015610d7f57600080fd5b505af1158015610d93573d6000803e3d6000fd5b50505050610d9e3390565b6001600160a01b03167f067dc886f06d6a272e07cc2499783587e71f7cc2b7b411350fa9fc255595ea20610dd28386611480565b6000858152600f60209081526040918290205482519384524691840191909152908201869052606082015260800160405180910390a26000828152600f60205260408120805460019290610e2790849061146d565b9091555050505050565b6000546001600160a01b03163314610e5b5760405162461bcd60e51b81526004016105e2906113ef565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610ea75760405162461bcd60e51b81526004016105e2906113ef565b60405133904780156108fc02916000818181858888f19350505050158015610ed3573d6000803e3d6000fd5b50565b6000546001600160a01b03163314610f005760405162461bcd60e51b81526004016105e2906113ef565b6001600160a01b038116610f655760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105e2565b610ed38161107f565b6000546001600160a01b03163314610f985760405162461bcd60e51b81526004016105e2906113ef565b6001600160a01b03811663a9059cbb336040516370a0823160e01b81523060048201526001600160a01b038516906370a0823190602401602060405180830381865afa158015610fec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110109190611493565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af115801561105b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4a9190611424565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000600d54600014806110f157503360009081526011602052604090205460ff165b156110fe575060006111f0565b60008061110a84610968565b91509150813410156111525760405162461bcd60e51b815260206004820152601160248201527008ccaca40d2e640dcdee840cadcdeeaced607b1b60448201526064016105e2565b811561119457600c546040516001600160a01b039091169083156108fc029084906000818181858888f19350505050158015611192573d6000803e3d6000fd5b505b813411156111d457336108fc6111aa8434611480565b6040518115909202916000818181858888f193505050501580156111d2573d6000803e3d6000fd5b505b6103e86111e182876114ac565b6111eb91906114c3565b925050505b92915050565b600060208083528351808285015260005b8181101561122357858101830151858201604001528201611207565b506000604082860101526040601f19601f8301168501019250505092915050565b60006020828403121561125657600080fd5b5035919050565b6000806040838503121561127057600080fd5b50508035926020909101359150565b6001600160a01b0381168114610ed357600080fd5b600080604083850312156112a757600080fd5b82356112b28161127f565b946020939093013593505050565b8015158114610ed357600080fd5b600080604083850312156112e157600080fd5b82356112ec8161127f565b915060208301356112fc816112c0565b809150509250929050565b60006020828403121561131957600080fd5b8135611324816112c0565b9392505050565b60006020828403121561133d57600080fd5b81356113248161127f565b6000806000806080858703121561135e57600080fd5b5050823594602084013594506040840135936060013592509050565b6000806000806080858703121561139057600080fd5b843561139b8161127f565b966020860135965060408601359560600135945092505050565b600181811c908216806113c957607f821691505b6020821081036113e957634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561143657600080fd5b8151611324816112c0565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b808201808211156111f0576111f0611457565b818103818111156111f0576111f0611457565b6000602082840312156114a557600080fd5b5051919050565b80820281158282048414176111f0576111f0611457565b6000826114e057634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220c5325a27e70cdb14e66494dc7e95c120681c0e435fbda768206c9286ad2742aa64736f6c63430008110033

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

0000000000000000000000003bfcb1e14f2b1bfec9d611cd6b02d48ceef4349100000000000000000000000053b65fce5dc55e31db92f75eb29f03d6e0408c6b

-----Decoded View---------------
Arg [0] : _token (address): 0x3bfcb1E14F2b1BFec9D611CD6B02D48CeEF43491
Arg [1] : _feeReceiver (address): 0x53B65FCe5Dc55E31db92f75Eb29F03d6e0408c6B

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000003bfcb1e14f2b1bfec9d611cd6b02d48ceef43491
Arg [1] : 00000000000000000000000053b65fce5dc55e31db92f75eb29f03d6e0408c6b


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.