ETH Price: $2,416.26 (-1.30%)

Contract

0xA66F823E352F133a33fCd74cE7FD94dF2DB0c046
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
0x60806040168290502023-03-14 22:06:59549 days ago1678831619IN
 Create: MemeAI
0 ETH0.1187854130.49884022

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
MemeAI

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
File 1 of 1 : Token.sol
// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.7;

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

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

    function WETH() external pure returns (address);

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

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

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

    function _msgData() internal view returns (bytes memory) {
        this;
        return msg.data;
    }
}

contract Ownable is Context {
    address private _owner;

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

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

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

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

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

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

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

contract MemeAI is IERC20, Ownable {
    uint256 _totalSupply = 100_000_000 * (10 ** _decimals);

    string constant _name = "Meme AI";
    string constant _symbol = "MEMEAI";
    uint8 constant _decimals = 18;

    mapping(address => bool) hasExemption;
    mapping(address => bool) canCreateInitialLiq;

    uint256 totalFee = 5; // in percent

    IDEXRouter public router;
    address routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    mapping(address => bool) liquidityPools;

    address public pair;

    bool publicTradesLaunched = false;
    bool _shouldTakeFee = true;
    uint256 public launchedAt;

    bool isSwapping;
    modifier swapping() {
        isSwapping = true;
        _;
        isSwapping = false;
    }

    address teamAddress;
    modifier onlyTeam() {
        require(_msgSender() == teamAddress, "Caller is not in team");
        _;
    }

    mapping(address => uint256) _balances;
    mapping(address => mapping(address => uint256)) _allowances;

    constructor() {
        router = IDEXRouter(routerAddress);
        pair = IDEXFactory(router.factory()).createPair(
            router.WETH(),
            address(this)
        );
        liquidityPools[pair] = true;
        _allowances[owner()][routerAddress] = type(uint256).max;
        _allowances[address(this)][routerAddress] = type(uint256).max;

        hasExemption[owner()] = true;
        canCreateInitialLiq[owner()] = true;

        _balances[owner()] = _totalSupply;

        emit Transfer(address(0), owner(), _totalSupply);
    }

    receive() external payable {}

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

    function decimals() external pure returns (uint8) {
        return _decimals;
    }

    function symbol() external pure returns (string memory) {
        return _symbol;
    }

    function name() external pure returns (string memory) {
        return _name;
    }

    function getOwner() external view returns (address) {
        return owner();
    }

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

    function allowance(
        address holder,
        address spender
    ) external view override returns (uint256) {
        return _allowances[holder][spender];
    }

    function approve(
        address spender,
        uint256 amount
    ) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMaximum(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

    function setTeamWallet(address _team) external onlyOwner {
        teamAddress = _team;
    }

    function teamWithdrawal(uint256 amount) external onlyTeam {
        uint256 amountETH = address(this).balance;
        payable(teamAddress).transfer((amountETH * amount) / 100);
    }

    function beginPublicTrading() external onlyOwner {
        require(!publicTradesLaunched);
        publicTradesLaunched = true;
        launchedAt = block.number;
    }

    function transfer(
        address recipient,
        uint256 amount
    ) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external override returns (bool) {
        if (_allowances[sender][msg.sender] != type(uint256).max) {
            _allowances[sender][msg.sender] =
                _allowances[sender][msg.sender] -
                amount;
        }

        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {
        require(sender != address(0), "ERC20: transfer from 0x0");
        require(recipient != address(0), "ERC20: transfer to 0x0");
        require(amount > 0, "Amount must be > zero");
        require(_balances[sender] >= amount, "Insufficient balance");
        if (!launched() && liquidityPools[recipient]) {
            require(canCreateInitialLiq[sender], "Liquidity not added yet.");
            transitionLiquidityAdded();
        }
        if (!publicTradesLaunched) {
            require(
                canCreateInitialLiq[sender] || canCreateInitialLiq[recipient],
                "Trading not open yet."
            );
        }

        if (isSwapping) {
            return _basicTransfer(sender, recipient, amount);
        }

        _balances[sender] = _balances[sender] - amount;

        uint256 amountReceived = feeExcluded(sender) ? takeFee(amount) : amount;

        if (shouldSwapBack(recipient)) {
            if (amount > 0) swapBack();
        }

        _balances[recipient] = _balances[recipient] + amountReceived;

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }

    function launched() internal view returns (bool) {
        return launchedAt != 0;
    }

    function transitionLiquidityAdded() internal {
        launchedAt = block.number;
    }

    function _basicTransfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {
        _balances[sender] = _balances[sender] - amount;
        _balances[recipient] = _balances[recipient] + amount;
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function feeExcluded(address sender) internal view returns (bool) {
        return !hasExemption[sender];
    }

    function takeFee(uint256 amount) internal returns (uint256) {
        uint256 feeAmount = (amount * totalFee) / 100;
        _balances[address(this)] += feeAmount;
        return amount - feeAmount;
    }

    function shouldSwapBack(address recipient) internal view returns (bool) {
        return
            !liquidityPools[msg.sender] &&
            !isSwapping &&
            liquidityPools[recipient] &&
            _shouldTakeFee;
    }

    function swapBack() internal swapping {
        if (_balances[address(this)] > 0) {
            uint256 amountToSwap = _balances[address(this)];

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

            router.swapExactTokensForETHSupportingFeeOnTransferTokens(
                amountToSwap,
                0,
                path,
                address(this),
                block.timestamp
            );
        }
    }

    function getCurrentSupply() public view returns (uint256) {
        return
            _totalSupply -
            (balanceOf(address(0)) +
                balanceOf(address(0x000000000000000000000000000000000000dEaD)));
    }

    function setTakeFee(bool enabled) external onlyTeam returns (bool) {
        if (enabled) {
            _shouldTakeFee = true;
        } else _shouldTakeFee = false;
        return _shouldTakeFee;
    }

    function takeFee() public view returns (bool) {
        return _shouldTakeFee;
    }
}

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMaximum","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"beginPublicTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getCurrentSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setTakeFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_team","type":"address"}],"name":"setTeamWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"takeFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"teamWithdrawal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126012600a620003fa565b62000022906305f5e100620004bb565b6001556005600455600680546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d1790556008805461ffff60a01b1916600160a81b1790553480156200007157600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600654600580546001600160a01b0319166001600160a01b0390921691821790556040805163c45a015560e01b8152905163c45a015591600480820192602092909190829003018186803b1580156200010b57600080fd5b505afa15801562000120573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200014691906200037f565b6001600160a01b031663c9c65396600560009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620001a357600080fd5b505afa158015620001b8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001de91906200037f565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152306024820152604401602060405180830381600087803b1580156200022657600080fd5b505af11580156200023b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200026191906200037f565b600880546001600160a01b0319166001600160a01b039290921691821790556000908152600760205260408120805460ff1916600117905560001990600c90620002b36000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120600680548416835290855283822095909555308152600c84528281209454821681529383528184206000199055835481168452600283528184208054600160ff1991821681179092558554831686526003855283862080549091168217905554845482168552600b845282852081905584549251908152911692917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620004f3565b6000602082840312156200039257600080fd5b81516001600160a01b0381168114620003aa57600080fd5b9392505050565b600181815b80851115620003f2578160001904821115620003d657620003d6620004dd565b80851615620003e457918102915b93841c9390800290620003b6565b509250929050565b6000620003aa60ff8416836000826200041657506001620004b5565b816200042557506000620004b5565b81600181146200043e5760028114620004495762000469565b6001915050620004b5565b60ff8411156200045d576200045d620004dd565b50506001821b620004b5565b5060208310610133831016604e8410600b84101617156200048e575081810a620004b5565b6200049a8383620003b1565b8060001904821115620004b157620004b1620004dd565b0290505b92915050565b6000816000190483118215151615620004d857620004d8620004dd565b500290565b634e487b7160e01b600052601160045260246000fd5b61132c80620005036000396000f3fe6080604052600436106101445760003560e01c80637c6e0a5e116100b6578063bf56b3711161006f578063bf56b371146103bd578063dd62ed3e146103d3578063dd63b12b14610419578063ee7d587514610439578063f2fde38b1461044e578063f887ea401461046e57600080fd5b80637c6e0a5e146102de578063893d20e8146102fe5780638da5cb5b1461033057806395d89b411461034e578063a8aa1b311461037d578063a9059cbb1461039d57600080fd5b806323b872dd1161010857806323b872dd14610222578063313ce567146102425780634b175cc81461025e5780634f3e1efc1461027e57806370a0823114610293578063715018a6146102c957600080fd5b806306fdde0314610150578063095ea7b3146101925780631525ff7d146101c257806318160ddd146101e4578063181aa1fd1461020357600080fd5b3661014b57005b600080fd5b34801561015c57600080fd5b506040805180820190915260078152664d656d6520414960c81b60208201525b6040516101899190611147565b60405180910390f35b34801561019e57600080fd5b506101b26101ad3660046110e0565b61048e565b6040519015158152602001610189565b3480156101ce57600080fd5b506101e26101dd36600461102c565b6104fa565b005b3480156101f057600080fd5b506001545b604051908152602001610189565b34801561020f57600080fd5b50600854600160a81b900460ff166101b2565b34801561022e57600080fd5b506101b261023d36600461109f565b610555565b34801561024e57600080fd5b5060405160128152602001610189565b34801561026a57600080fd5b506101e261027936600461112e565b6105ea565b34801561028a57600080fd5b506101f56106a3565b34801561029f57600080fd5b506101f56102ae36600461102c565b6001600160a01b03166000908152600b602052604090205490565b3480156102d557600080fd5b506101e261070e565b3480156102ea57600080fd5b506101b26102f936600461102c565b610782565b34801561030a57600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610189565b34801561033c57600080fd5b506000546001600160a01b0316610318565b34801561035a57600080fd5b506040805180820190915260068152654d454d45414960d01b602082015261017c565b34801561038957600080fd5b50600854610318906001600160a01b031681565b3480156103a957600080fd5b506101b26103b83660046110e0565b610796565b3480156103c957600080fd5b506101f560095481565b3480156103df57600080fd5b506101f56103ee366004611066565b6001600160a01b039182166000908152600c6020908152604080832093909416825291909152205490565b34801561042557600080fd5b506101b261043436600461110c565b6107a3565b34801561044557600080fd5b506101e2610844565b34801561045a57600080fd5b506101e261046936600461102c565b61089e565b34801561047a57600080fd5b50600554610318906001600160a01b031681565b336000818152600c602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906104e99086815260200190565b60405180910390a350600192915050565b6000546001600160a01b0316331461052d5760405162461bcd60e51b81526004016105249061119c565b60405180910390fd5b600a80546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6001600160a01b0383166000908152600c60209081526040808320338452909152812054600019146105d5576001600160a01b0384166000908152600c602090815260408083203384529091529020546105b090839061129b565b6001600160a01b0385166000908152600c602090815260408083203384529091529020555b6105e0848484610988565b90505b9392505050565b600a5461010090046001600160a01b0316336001600160a01b03161461064a5760405162461bcd60e51b815260206004820152601560248201527443616c6c6572206973206e6f7420696e207465616d60581b6044820152606401610524565b600a54479061010090046001600160a01b03166108fc606461066c858561127c565b610676919061125a565b6040518115909202916000818181858888f1935050505015801561069e573d6000803e3d6000fd5b505050565b600b6020527f44433eeeda1d04bdae79f62169cdb2ab0a6af287fa15706d3fafdbac5fac34155460008080527fdf7de25b7f1fd6d0b5205f0e18f1f35bd7b8d84cce336588d184533ce43a6f765490916106fc91611242565b600154610709919061129b565b905090565b6000546001600160a01b031633146107385760405162461bcd60e51b81526004016105249061119c565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60006107908260001961048e565b92915050565b60006105e3338484610988565b600a5460009061010090046001600160a01b0316336001600160a01b0316146108065760405162461bcd60e51b815260206004820152601560248201527443616c6c6572206973206e6f7420696e207465616d60581b6044820152606401610524565b8115610824576008805460ff60a81b1916600160a81b179055610832565b6008805460ff60a81b191690555b5050600854600160a81b900460ff1690565b6000546001600160a01b0316331461086e5760405162461bcd60e51b81526004016105249061119c565b600854600160a01b900460ff161561088557600080fd5b6008805460ff60a01b1916600160a01b17905543600955565b6000546001600160a01b031633146108c85760405162461bcd60e51b81526004016105249061119c565b6001600160a01b03811661092d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610524565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60006001600160a01b0384166109e05760405162461bcd60e51b815260206004820152601860248201527f45524332303a207472616e736665722066726f6d2030783000000000000000006044820152606401610524565b6001600160a01b038316610a2f5760405162461bcd60e51b8152602060048201526016602482015275045524332303a207472616e7366657220746f203078360541b6044820152606401610524565b60008211610a775760405162461bcd60e51b8152602060048201526015602482015274416d6f756e74206d757374206265203e207a65726f60581b6044820152606401610524565b6001600160a01b0384166000908152600b6020526040902054821115610ad65760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742062616c616e636560601b6044820152606401610524565b600954158015610afe57506001600160a01b03831660009081526007602052604090205460ff165b15610b74576001600160a01b03841660009081526003602052604090205460ff16610b6b5760405162461bcd60e51b815260206004820152601860248201527f4c6971756964697479206e6f74206164646564207965742e00000000000000006044820152606401610524565b610b7443600955565b600854600160a01b900460ff16610c08576001600160a01b03841660009081526003602052604090205460ff1680610bc457506001600160a01b03831660009081526003602052604090205460ff165b610c085760405162461bcd60e51b81526020600482015260156024820152742a3930b234b733903737ba1037b832b7103cb2ba1760591b6044820152606401610524565b600a5460ff1615610c2557610c1e848484610d30565b90506105e3565b6001600160a01b0384166000908152600b6020526040902054610c4990839061129b565b6001600160a01b0385166000908152600b6020908152604080832093909355600290529081205460ff1615610c7e5782610c87565b610c8783610dea565b9050610c9284610e3b565b15610ca5578215610ca557610ca5610e9c565b6001600160a01b0384166000908152600b6020526040902054610cc9908290611242565b6001600160a01b038086166000818152600b602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610d1d9085815260200190565b60405180910390a3506001949350505050565b6001600160a01b0383166000908152600b6020526040812054610d5490839061129b565b6001600160a01b038086166000908152600b60205260408082209390935590851681522054610d84908390611242565b6001600160a01b038085166000818152600b602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610dd89086815260200190565b60405180910390a35060019392505050565b600080606460045484610dfd919061127c565b610e07919061125a565b306000908152600b6020526040812080549293508392909190610e2b908490611242565b909155506105e39050818461129b565b3360009081526007602052604081205460ff16158015610e5e5750600a5460ff16155b8015610e8257506001600160a01b03821660009081526007602052604090205460ff165b8015610790575050600854600160a81b900460ff16919050565b600a805460ff19166001179055306000908152600b60205260409020541561102057306000908152600b60205260408082205481516002808252606082019093529092918160200160208202803683370190505090503081600081518110610f0657610f066112c8565b6001600160a01b03928316602091820292909201810191909152600554604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015610f5a57600080fd5b505afa158015610f6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f929190611049565b81600181518110610fa557610fa56112c8565b6001600160a01b03928316602091820292909201015260055460405163791ac94760e01b815291169063791ac94790610feb9085906000908690309042906004016111d1565b600060405180830381600087803b15801561100557600080fd5b505af1158015611019573d6000803e3d6000fd5b5050505050505b600a805460ff19169055565b60006020828403121561103e57600080fd5b81356105e3816112de565b60006020828403121561105b57600080fd5b81516105e3816112de565b6000806040838503121561107957600080fd5b8235611084816112de565b91506020830135611094816112de565b809150509250929050565b6000806000606084860312156110b457600080fd5b83356110bf816112de565b925060208401356110cf816112de565b929592945050506040919091013590565b600080604083850312156110f357600080fd5b82356110fe816112de565b946020939093013593505050565b60006020828403121561111e57600080fd5b813580151581146105e357600080fd5b60006020828403121561114057600080fd5b5035919050565b600060208083528351808285015260005b8181101561117457858101830151858201604001528201611158565b81811115611186576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156112215784516001600160a01b0316835293830193918301916001016111fc565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611255576112556112b2565b500190565b60008261127757634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611296576112966112b2565b500290565b6000828210156112ad576112ad6112b2565b500390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b03811681146112f357600080fd5b5056fea264697066735822122009fcf3e20a75c48b7bd9f857dde3571493aa9e44328b9294c2dd2a18c90182d564736f6c63430008070033

Deployed Bytecode

0x6080604052600436106101445760003560e01c80637c6e0a5e116100b6578063bf56b3711161006f578063bf56b371146103bd578063dd62ed3e146103d3578063dd63b12b14610419578063ee7d587514610439578063f2fde38b1461044e578063f887ea401461046e57600080fd5b80637c6e0a5e146102de578063893d20e8146102fe5780638da5cb5b1461033057806395d89b411461034e578063a8aa1b311461037d578063a9059cbb1461039d57600080fd5b806323b872dd1161010857806323b872dd14610222578063313ce567146102425780634b175cc81461025e5780634f3e1efc1461027e57806370a0823114610293578063715018a6146102c957600080fd5b806306fdde0314610150578063095ea7b3146101925780631525ff7d146101c257806318160ddd146101e4578063181aa1fd1461020357600080fd5b3661014b57005b600080fd5b34801561015c57600080fd5b506040805180820190915260078152664d656d6520414960c81b60208201525b6040516101899190611147565b60405180910390f35b34801561019e57600080fd5b506101b26101ad3660046110e0565b61048e565b6040519015158152602001610189565b3480156101ce57600080fd5b506101e26101dd36600461102c565b6104fa565b005b3480156101f057600080fd5b506001545b604051908152602001610189565b34801561020f57600080fd5b50600854600160a81b900460ff166101b2565b34801561022e57600080fd5b506101b261023d36600461109f565b610555565b34801561024e57600080fd5b5060405160128152602001610189565b34801561026a57600080fd5b506101e261027936600461112e565b6105ea565b34801561028a57600080fd5b506101f56106a3565b34801561029f57600080fd5b506101f56102ae36600461102c565b6001600160a01b03166000908152600b602052604090205490565b3480156102d557600080fd5b506101e261070e565b3480156102ea57600080fd5b506101b26102f936600461102c565b610782565b34801561030a57600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610189565b34801561033c57600080fd5b506000546001600160a01b0316610318565b34801561035a57600080fd5b506040805180820190915260068152654d454d45414960d01b602082015261017c565b34801561038957600080fd5b50600854610318906001600160a01b031681565b3480156103a957600080fd5b506101b26103b83660046110e0565b610796565b3480156103c957600080fd5b506101f560095481565b3480156103df57600080fd5b506101f56103ee366004611066565b6001600160a01b039182166000908152600c6020908152604080832093909416825291909152205490565b34801561042557600080fd5b506101b261043436600461110c565b6107a3565b34801561044557600080fd5b506101e2610844565b34801561045a57600080fd5b506101e261046936600461102c565b61089e565b34801561047a57600080fd5b50600554610318906001600160a01b031681565b336000818152600c602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906104e99086815260200190565b60405180910390a350600192915050565b6000546001600160a01b0316331461052d5760405162461bcd60e51b81526004016105249061119c565b60405180910390fd5b600a80546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6001600160a01b0383166000908152600c60209081526040808320338452909152812054600019146105d5576001600160a01b0384166000908152600c602090815260408083203384529091529020546105b090839061129b565b6001600160a01b0385166000908152600c602090815260408083203384529091529020555b6105e0848484610988565b90505b9392505050565b600a5461010090046001600160a01b0316336001600160a01b03161461064a5760405162461bcd60e51b815260206004820152601560248201527443616c6c6572206973206e6f7420696e207465616d60581b6044820152606401610524565b600a54479061010090046001600160a01b03166108fc606461066c858561127c565b610676919061125a565b6040518115909202916000818181858888f1935050505015801561069e573d6000803e3d6000fd5b505050565b600b6020527f44433eeeda1d04bdae79f62169cdb2ab0a6af287fa15706d3fafdbac5fac34155460008080527fdf7de25b7f1fd6d0b5205f0e18f1f35bd7b8d84cce336588d184533ce43a6f765490916106fc91611242565b600154610709919061129b565b905090565b6000546001600160a01b031633146107385760405162461bcd60e51b81526004016105249061119c565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60006107908260001961048e565b92915050565b60006105e3338484610988565b600a5460009061010090046001600160a01b0316336001600160a01b0316146108065760405162461bcd60e51b815260206004820152601560248201527443616c6c6572206973206e6f7420696e207465616d60581b6044820152606401610524565b8115610824576008805460ff60a81b1916600160a81b179055610832565b6008805460ff60a81b191690555b5050600854600160a81b900460ff1690565b6000546001600160a01b0316331461086e5760405162461bcd60e51b81526004016105249061119c565b600854600160a01b900460ff161561088557600080fd5b6008805460ff60a01b1916600160a01b17905543600955565b6000546001600160a01b031633146108c85760405162461bcd60e51b81526004016105249061119c565b6001600160a01b03811661092d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610524565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60006001600160a01b0384166109e05760405162461bcd60e51b815260206004820152601860248201527f45524332303a207472616e736665722066726f6d2030783000000000000000006044820152606401610524565b6001600160a01b038316610a2f5760405162461bcd60e51b8152602060048201526016602482015275045524332303a207472616e7366657220746f203078360541b6044820152606401610524565b60008211610a775760405162461bcd60e51b8152602060048201526015602482015274416d6f756e74206d757374206265203e207a65726f60581b6044820152606401610524565b6001600160a01b0384166000908152600b6020526040902054821115610ad65760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742062616c616e636560601b6044820152606401610524565b600954158015610afe57506001600160a01b03831660009081526007602052604090205460ff165b15610b74576001600160a01b03841660009081526003602052604090205460ff16610b6b5760405162461bcd60e51b815260206004820152601860248201527f4c6971756964697479206e6f74206164646564207965742e00000000000000006044820152606401610524565b610b7443600955565b600854600160a01b900460ff16610c08576001600160a01b03841660009081526003602052604090205460ff1680610bc457506001600160a01b03831660009081526003602052604090205460ff165b610c085760405162461bcd60e51b81526020600482015260156024820152742a3930b234b733903737ba1037b832b7103cb2ba1760591b6044820152606401610524565b600a5460ff1615610c2557610c1e848484610d30565b90506105e3565b6001600160a01b0384166000908152600b6020526040902054610c4990839061129b565b6001600160a01b0385166000908152600b6020908152604080832093909355600290529081205460ff1615610c7e5782610c87565b610c8783610dea565b9050610c9284610e3b565b15610ca5578215610ca557610ca5610e9c565b6001600160a01b0384166000908152600b6020526040902054610cc9908290611242565b6001600160a01b038086166000818152600b602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610d1d9085815260200190565b60405180910390a3506001949350505050565b6001600160a01b0383166000908152600b6020526040812054610d5490839061129b565b6001600160a01b038086166000908152600b60205260408082209390935590851681522054610d84908390611242565b6001600160a01b038085166000818152600b602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610dd89086815260200190565b60405180910390a35060019392505050565b600080606460045484610dfd919061127c565b610e07919061125a565b306000908152600b6020526040812080549293508392909190610e2b908490611242565b909155506105e39050818461129b565b3360009081526007602052604081205460ff16158015610e5e5750600a5460ff16155b8015610e8257506001600160a01b03821660009081526007602052604090205460ff165b8015610790575050600854600160a81b900460ff16919050565b600a805460ff19166001179055306000908152600b60205260409020541561102057306000908152600b60205260408082205481516002808252606082019093529092918160200160208202803683370190505090503081600081518110610f0657610f066112c8565b6001600160a01b03928316602091820292909201810191909152600554604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015610f5a57600080fd5b505afa158015610f6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f929190611049565b81600181518110610fa557610fa56112c8565b6001600160a01b03928316602091820292909201015260055460405163791ac94760e01b815291169063791ac94790610feb9085906000908690309042906004016111d1565b600060405180830381600087803b15801561100557600080fd5b505af1158015611019573d6000803e3d6000fd5b5050505050505b600a805460ff19169055565b60006020828403121561103e57600080fd5b81356105e3816112de565b60006020828403121561105b57600080fd5b81516105e3816112de565b6000806040838503121561107957600080fd5b8235611084816112de565b91506020830135611094816112de565b809150509250929050565b6000806000606084860312156110b457600080fd5b83356110bf816112de565b925060208401356110cf816112de565b929592945050506040919091013590565b600080604083850312156110f357600080fd5b82356110fe816112de565b946020939093013593505050565b60006020828403121561111e57600080fd5b813580151581146105e357600080fd5b60006020828403121561114057600080fd5b5035919050565b600060208083528351808285015260005b8181101561117457858101830151858201604001528201611158565b81811115611186576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156112215784516001600160a01b0316835293830193918301916001016111fc565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611255576112556112b2565b500190565b60008261127757634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611296576112966112b2565b500290565b6000828210156112ad576112ad6112b2565b500390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b03811681146112f357600080fd5b5056fea264697066735822122009fcf3e20a75c48b7bd9f857dde3571493aa9e44328b9294c2dd2a18c90182d564736f6c63430008070033

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  ]

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.