ETH Price: $3,111.29 (+0.14%)

Contract

0x054eb222d0BDaE95b1B03E46304406F901f0201D
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve169588502023-04-02 3:48:59598 days ago1680407339IN
0x054eb222...901f0201D
0 ETH0.0004776219.65781866
Approve163364802023-01-04 22:41:47685 days ago1672872107IN
0x054eb222...901f0201D
0 ETH0.0005959124.52645139
Approve163247652023-01-03 7:28:47687 days ago1672730927IN
0x054eb222...901f0201D
0 ETH0.0006228513.37145708
Approve162717132022-12-26 21:48:35694 days ago1672091315IN
0x054eb222...901f0201D
0 ETH0.0005252111.27520759
Approve162439452022-12-23 0:50:59698 days ago1671756659IN
0x054eb222...901f0201D
0 ETH0.0006580214.12641677
Approve162079172022-12-18 0:12:23703 days ago1671322343IN
0x054eb222...901f0201D
0 ETH0.0007721216.57599568
Approve162044632022-12-17 12:37:47704 days ago1671280667IN
0x054eb222...901f0201D
0 ETH0.0006599914.16875918
Approve161972492022-12-16 12:26:35705 days ago1671193595IN
0x054eb222...901f0201D
0 ETH0.0007838416.82749356
Approve161950542022-12-16 5:04:59705 days ago1671167099IN
0x054eb222...901f0201D
0 ETH0.0007314515.70295141
Transfer161950362022-12-16 5:01:23705 days ago1671166883IN
0x054eb222...901f0201D
0 ETH0.0008877513.46547559
Transfer161950142022-12-16 4:56:59705 days ago1671166619IN
0x054eb222...901f0201D
0 ETH0.0008474612.85447382
Transfer161950072022-12-16 4:55:35705 days ago1671166535IN
0x054eb222...901f0201D
0 ETH0.0008218912.46652522
Transfer161949982022-12-16 4:53:47705 days ago1671166427IN
0x054eb222...901f0201D
0 ETH0.000884813.42071598
Approve161945372022-12-16 3:21:23705 days ago1671160883IN
0x054eb222...901f0201D
0 ETH0.0005275721.71350231
Approve161944722022-12-16 3:08:23705 days ago1671160103IN
0x054eb222...901f0201D
0 ETH0.0005437222.37809972
Approve161944452022-12-16 3:02:59705 days ago1671159779IN
0x054eb222...901f0201D
0 ETH0.0004373117.99872323
Approve161943992022-12-16 2:53:47705 days ago1671159227IN
0x054eb222...901f0201D
0 ETH0.0003236213.31944867
Approve161921442022-12-15 19:20:35705 days ago1671132035IN
0x054eb222...901f0201D
0 ETH0.0014825631.82774366
Approve161917532022-12-15 18:01:59705 days ago1671127319IN
0x054eb222...901f0201D
0 ETH0.0015818633.95937262
Approve161917452022-12-15 18:00:23705 days ago1671127223IN
0x054eb222...901f0201D
0 ETH0.0011461224.6049318
Approve161917182022-12-15 17:54:59705 days ago1671126899IN
0x054eb222...901f0201D
0 ETH0.0009499520.39351216
Approve161916632022-12-15 17:43:47705 days ago1671126227IN
0x054eb222...901f0201D
0 ETH0.0009017919.35974617
Approve161915992022-12-15 17:30:59705 days ago1671125459IN
0x054eb222...901f0201D
0 ETH0.00101421.76867759
Approve161915612022-12-15 17:23:23705 days ago1671125003IN
0x054eb222...901f0201D
0 ETH0.0011138123.91126434
Approve161915242022-12-15 17:15:59705 days ago1671124559IN
0x054eb222...901f0201D
0 ETH0.0013568429.12861802
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
162379542022-12-22 4:48:47699 days ago1671684527
0x054eb222...901f0201D
0.00660748 ETH
162379542022-12-22 4:48:47699 days ago1671684527
0x054eb222...901f0201D
0.00660748 ETH
161954362022-12-16 6:22:23705 days ago1671171743
0x054eb222...901f0201D
0.01089561 ETH
161954362022-12-16 6:22:23705 days ago1671171743
0x054eb222...901f0201D
0.01089561 ETH
161926352022-12-15 20:59:23705 days ago1671137963
0x054eb222...901f0201D
0.0223678 ETH
161926352022-12-15 20:59:23705 days ago1671137963
0x054eb222...901f0201D
0.0223678 ETH
161916492022-12-15 17:40:59705 days ago1671126059
0x054eb222...901f0201D
0.01098258 ETH
161916492022-12-15 17:40:59705 days ago1671126059
0x054eb222...901f0201D
0.01098258 ETH
161914372022-12-15 16:58:23705 days ago1671123503
0x054eb222...901f0201D
0.03588394 ETH
161914372022-12-15 16:58:23705 days ago1671123503
0x054eb222...901f0201D
0.03588394 ETH
161913312022-12-15 16:37:11705 days ago1671122231
0x054eb222...901f0201D
0.04701805 ETH
161913312022-12-15 16:37:11705 days ago1671122231
0x054eb222...901f0201D
0.04701805 ETH
161908962022-12-15 15:09:23706 days ago1671116963
0x054eb222...901f0201D
0.07357536 ETH
161908962022-12-15 15:09:23706 days ago1671116963
0x054eb222...901f0201D
0.07357536 ETH
161906872022-12-15 14:27:23706 days ago1671114443
0x054eb222...901f0201D
0.00847546 ETH
161906872022-12-15 14:27:23706 days ago1671114443
0x054eb222...901f0201D
0.00847546 ETH
161905332022-12-15 13:56:35706 days ago1671112595
0x054eb222...901f0201D
0.07387083 ETH
161905332022-12-15 13:56:35706 days ago1671112595
0x054eb222...901f0201D
0.07387083 ETH
161901192022-12-15 12:33:23706 days ago1671107603
0x054eb222...901f0201D
0.10847579 ETH
161901192022-12-15 12:33:23706 days ago1671107603
0x054eb222...901f0201D
0.10847579 ETH
161899692022-12-15 12:03:23706 days ago1671105803
0x054eb222...901f0201D
0.11770384 ETH
161899692022-12-15 12:03:23706 days ago1671105803
0x054eb222...901f0201D
0.11770384 ETH
161893542022-12-15 9:59:35706 days ago1671098375
0x054eb222...901f0201D
0.1377886 ETH
161893542022-12-15 9:59:35706 days ago1671098375
0x054eb222...901f0201D
0.1377886 ETH
161891552022-12-15 9:19:11706 days ago1671095951
0x054eb222...901f0201D
0.06789905 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
cerberusai

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, GNU GPLv3 license
File 1 of 1 : main
// SPDX-License-Identifier: MIT
/**

Cerberus AI (CAI) is inspired by the three-headed dog known as Cerberus in Greek mythology that was guarding the entrance to hell.

CAI is our in-house Telegram bot that leverages true state-of-the-art AI (Articifial Intelligence) in order to safeguard chats from various attacks.

Socials
https://cerberusai.xyz
https://twitter.com/cerberusaieth
https://medium.com/@cerberusai

https://t.me/cerberusai 



**/
pragma solidity 0.8.17;

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

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) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }

    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) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }

}

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

}

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract cerberusai is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = true;
    address payable private _taxWallet;

    uint256 private _initialTax=10;
    uint256 private _finalTax=5;
    uint256 private _reduceTaxAt=10;
    uint256 private _preventSwapBefore=30;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 8;
    uint256 private constant _tTotal = 1000000 * 10**_decimals;
    string private constant _name = unicode"Cerberus AI";
    string private constant _symbol = unicode"CAI";
    uint256 public _maxTxAmount =   20000 * 10**_decimals;
    uint256 public _maxWalletSize = 30000 * 10**_decimals;
    uint256 public _taxSwapThreshold=5000 * 10**_decimals;
    uint256 public _maxTaxSwap=5000 * 10**_decimals;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;

    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _taxWallet = payable(_msgSender());
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;

        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

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

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

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

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

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

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            if(!inSwap){
              taxAmount = amount.mul((_buyCount>_reduceTaxAt)?_finalTax:_initialTax).div(100);
            }

            if (transferDelayEnabled) {
                  if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) {
                      require(
                          _holderLastTransferTimestamp[tx.origin] <
                              block.number,
                          "_transfer:: Transfer Delay enabled.  Only one purchase per block allowed."
                      );
                      _holderLastTransferTimestamp[tx.origin] = block.number;
                  }
              }

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                _buyCount++;
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) {
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        _balances[from]=_balances[from].sub(amount);
        _balances[to]=_balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
        if(taxAmount>0){
          _balances[address(this)]=_balances[address(this)].add(taxAmount);
          emit Transfer(from, address(this),taxAmount);
        }
    }


    function min(uint256 a, uint256 b) private view returns (uint256){
      return (a>b)?b:a;
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        transferDelayEnabled=false;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function sendETHToFee(uint256 amount) private {
        _taxWallet.transfer(amount);
    }

    function addBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function delBots(address[] memory notbot) public onlyOwner {
      for (uint i = 0; i < notbot.length; i++) {
          bots[notbot[i]] = false;
      }
    }

    function isBot(address a) public view returns (bool){
      return bots[a];
    }

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        swapEnabled = true;
        tradingOpen = true;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }

    

    receive() external payable {}

    function manualSwap() external {
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }
}

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

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":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","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":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"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":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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"},{"stateMutability":"payable","type":"receive"}]

60806040526006805460ff19166001179055600a6007819055600560089081556009829055601e82556000600b5562000038916200033b565b6200004690614e2062000353565b600c55620000576008600a6200033b565b620000659061753062000353565b600d55620000766008600a6200033b565b620000849061138862000353565b600e55620000956008600a6200033b565b620000a39061138862000353565b600f556011805461ffff60a81b19169055348015620000c157600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060068054610100600160a81b0319166101003302179055620001286008600a6200033b565b6200013790620f424062000353565b336000908152600160208190526040822092909255600390620001626000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905530815260039093528183208054851660019081179091556006546101009004909116835291208054909216179055620001c63390565b6001600160a01b031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002006008600a6200033b565b6200020f90620f424062000353565b60405190815260200160405180910390a36200036d565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200027d57816000190482111562000261576200026162000226565b808516156200026f57918102915b93841c939080029062000241565b509250929050565b600082620002965750600162000335565b81620002a55750600062000335565b8160018114620002be5760028114620002c957620002e9565b600191505062000335565b60ff841115620002dd57620002dd62000226565b50506001821b62000335565b5060208310610133831016604e8410600b84101617156200030e575081810a62000335565b6200031a83836200023c565b806000190482111562000331576200033162000226565b0290505b92915050565b60006200034c60ff84168362000285565b9392505050565b808202811582820484141762000335576200033562000226565b611b01806200037d6000396000f3fe6080604052600436106101395760003560e01c8063751039fc116100ab578063a9059cbb1161006f578063a9059cbb14610380578063bf474bed146103a0578063c876d0b9146103b6578063c9567bf9146103d0578063d34628cc146103e5578063dd62ed3e1461040557600080fd5b8063751039fc146102eb5780637d1db4a5146103005780638da5cb5b146103165780638f9a55c01461033e57806395d89b411461035457600080fd5b8063313ce567116100fd578063313ce5671461021457806331c2d847146102305780633bbac5791461025257806351bc3c851461028b57806370a08231146102a0578063715018a6146102d657600080fd5b806306fdde0314610145578063095ea7b31461018b5780630faee56f146101bb57806318160ddd146101df57806323b872dd146101f457600080fd5b3661014057005b600080fd5b34801561015157600080fd5b5060408051808201909152600b81526a436572626572757320414960a81b60208201525b60405161018291906115e8565b60405180910390f35b34801561019757600080fd5b506101ab6101a636600461165b565b61044b565b6040519015158152602001610182565b3480156101c757600080fd5b506101d1600f5481565b604051908152602001610182565b3480156101eb57600080fd5b506101d1610462565b34801561020057600080fd5b506101ab61020f366004611687565b610482565b34801561022057600080fd5b5060405160088152602001610182565b34801561023c57600080fd5b5061025061024b3660046116de565b6104eb565b005b34801561025e57600080fd5b506101ab61026d3660046117a3565b6001600160a01b031660009081526004602052604090205460ff1690565b34801561029757600080fd5b5061025061058a565b3480156102ac57600080fd5b506101d16102bb3660046117a3565b6001600160a01b031660009081526001602052604090205490565b3480156102e257600080fd5b506102506105b9565b3480156102f757600080fd5b5061025061062d565b34801561030c57600080fd5b506101d1600c5481565b34801561032257600080fd5b506000546040516001600160a01b039091168152602001610182565b34801561034a57600080fd5b506101d1600d5481565b34801561036057600080fd5b5060408051808201909152600381526243414960e81b6020820152610175565b34801561038c57600080fd5b506101ab61039b36600461165b565b6106e6565b3480156103ac57600080fd5b506101d1600e5481565b3480156103c257600080fd5b506006546101ab9060ff1681565b3480156103dc57600080fd5b506102506106f3565b3480156103f157600080fd5b506102506104003660046116de565b610aad565b34801561041157600080fd5b506101d16104203660046117c0565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6000610458338484610b3f565b5060015b92915050565b60006104706008600a6118f3565b61047d90620f4240611902565b905090565b600061048f848484610c63565b6104e184336104dc85604051806060016040528060288152602001611aa4602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190611247565b610b3f565b5060019392505050565b6000546001600160a01b0316331461051e5760405162461bcd60e51b815260040161051590611919565b60405180910390fd5b60005b8151811015610586576000600460008484815181106105425761054261194e565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061057e81611964565b915050610521565b5050565b3060009081526001602052604090205480156105a9576105a981611281565b47801561058657610586816113fb565b6000546001600160a01b031633146105e35760405162461bcd60e51b815260040161051590611919565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146106575760405162461bcd60e51b815260040161051590611919565b6106636008600a6118f3565b61067090620f4240611902565b600c5561067f6008600a6118f3565b61068c90620f4240611902565b600d556006805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6106c66008600a6118f3565b6106d390620f4240611902565b60405190815260200160405180910390a1565b6000610458338484610c63565b6000546001600160a01b0316331461071d5760405162461bcd60e51b815260040161051590611919565b601154600160a01b900460ff16156107775760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610515565b601080546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556107bf9030906107b26008600a6118f3565b6104dc90620f4240611902565b601060009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610812573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610836919061197d565b6001600160a01b031663c9c6539630601060009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610898573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108bc919061197d565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610909573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061092d919061197d565b601180546001600160a01b039283166001600160a01b03199091161790556010541663f305d7194730610975816001600160a01b031660009081526001602052604090205490565b60008061098a6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156109f2573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610a17919061199a565b50506011805462ff00ff60a01b1981166201000160a01b1790915560105460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610a86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aaa91906119c8565b50565b6000546001600160a01b03163314610ad75760405162461bcd60e51b815260040161051590611919565b60005b815181101561058657600160046000848481518110610afb57610afb61194e565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610b3781611964565b915050610ada565b6001600160a01b038316610ba15760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610515565b6001600160a01b038216610c025760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610515565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610cc75760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610515565b6001600160a01b038216610d295760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610515565b60008111610d8b5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610515565b600080546001600160a01b03858116911614801590610db857506000546001600160a01b03848116911614155b15611104576001600160a01b03841660009081526004602052604090205460ff16158015610dff57506001600160a01b03831660009081526004602052604090205460ff16155b610e0857600080fd5b601154600160a81b900460ff16610e4857610e456064610e3f600954600b5411610e3457600754610e38565b6008545b8590611439565b906114c2565b90505b60065460ff1615610f2d576010546001600160a01b03848116911614801590610e7f57506011546001600160a01b03848116911614155b15610f2d57326000908152600560205260409020544311610f1a5760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a401610515565b3260009081526005602052604090204390555b6011546001600160a01b038581169116148015610f5857506010546001600160a01b03848116911614155b8015610f7d57506001600160a01b03831660009081526003602052604090205460ff16155b1561106557600c54821115610fd45760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610515565b600d5482610ff7856001600160a01b031660009081526001602052604090205490565b61100191906119ea565b111561104f5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610515565b600b805490600061105f83611964565b91905055505b30600090815260016020526040902054601154600160a81b900460ff1615801561109d57506011546001600160a01b03868116911614155b80156110b25750601154600160b01b900460ff165b80156110bf5750600e5481115b80156110ce5750600a54600b54115b15611102576110f06110eb846110e684600f54611504565b611504565b611281565b47801561110057611100476113fb565b505b505b6001600160a01b0384166000908152600160205260409020546111279083611519565b6001600160a01b03851660009081526001602052604090205561116c61114d8383611519565b6001600160a01b0385166000908152600160205260409020549061155b565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6111b68585611519565b60405190815260200160405180910390a3801561124157306000908152600160205260409020546111e7908261155b565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112389085815260200190565b60405180910390a35b50505050565b6000818484111561126b5760405162461bcd60e51b815260040161051591906115e8565b50600061127884866119fd565b95945050505050565b6011805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106112c9576112c961194e565b6001600160a01b03928316602091820292909201810191909152601054604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611322573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611346919061197d565b816001815181106113595761135961194e565b6001600160a01b03928316602091820292909201015260105461137f9130911684610b3f565b60105460405163791ac94760e01b81526001600160a01b039091169063791ac947906113b8908590600090869030904290600401611a10565b600060405180830381600087803b1580156113d257600080fd5b505af11580156113e6573d6000803e3d6000fd5b50506011805460ff60a81b1916905550505050565b6006546040516101009091046001600160a01b0316906108fc8315029083906000818181858888f19350505050158015610586573d6000803e3d6000fd5b60008260000361144b5750600061045c565b60006114578385611902565b9050826114648583611a81565b146114bb5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610515565b9392505050565b60006114bb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506115ba565b600081831161151357826114bb565b50919050565b60006114bb83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611247565b60008061156883856119ea565b9050838110156114bb5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610515565b600081836115db5760405162461bcd60e51b815260040161051591906115e8565b5060006112788486611a81565b600060208083528351808285015260005b81811015611615578581018301518582016040015282016115f9565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610aaa57600080fd5b803561165681611636565b919050565b6000806040838503121561166e57600080fd5b823561167981611636565b946020939093013593505050565b60008060006060848603121561169c57600080fd5b83356116a781611636565b925060208401356116b781611636565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b600060208083850312156116f157600080fd5b823567ffffffffffffffff8082111561170957600080fd5b818501915085601f83011261171d57600080fd5b81358181111561172f5761172f6116c8565b8060051b604051601f19603f83011681018181108582111715611754576117546116c8565b60405291825284820192508381018501918883111561177257600080fd5b938501935b82851015611797576117888561164b565b84529385019392850192611777565b98975050505050505050565b6000602082840312156117b557600080fd5b81356114bb81611636565b600080604083850312156117d357600080fd5b82356117de81611636565b915060208301356117ee81611636565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561184a578160001904821115611830576118306117f9565b8085161561183d57918102915b93841c9390800290611814565b509250929050565b6000826118615750600161045c565b8161186e5750600061045c565b8160018114611884576002811461188e576118aa565b600191505061045c565b60ff84111561189f5761189f6117f9565b50506001821b61045c565b5060208310610133831016604e8410600b84101617156118cd575081810a61045c565b6118d7838361180f565b80600019048211156118eb576118eb6117f9565b029392505050565b60006114bb60ff841683611852565b808202811582820484141761045c5761045c6117f9565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b600060018201611976576119766117f9565b5060010190565b60006020828403121561198f57600080fd5b81516114bb81611636565b6000806000606084860312156119af57600080fd5b8351925060208401519150604084015190509250925092565b6000602082840312156119da57600080fd5b815180151581146114bb57600080fd5b8082018082111561045c5761045c6117f9565b8181038181111561045c5761045c6117f9565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611a605784516001600160a01b031683529383019391830191600101611a3b565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611a9e57634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c03781e045d44f29e4a4a670979b70bfb834d61329c4731a898d8520790a867b64736f6c63430008110033

Deployed Bytecode

0x6080604052600436106101395760003560e01c8063751039fc116100ab578063a9059cbb1161006f578063a9059cbb14610380578063bf474bed146103a0578063c876d0b9146103b6578063c9567bf9146103d0578063d34628cc146103e5578063dd62ed3e1461040557600080fd5b8063751039fc146102eb5780637d1db4a5146103005780638da5cb5b146103165780638f9a55c01461033e57806395d89b411461035457600080fd5b8063313ce567116100fd578063313ce5671461021457806331c2d847146102305780633bbac5791461025257806351bc3c851461028b57806370a08231146102a0578063715018a6146102d657600080fd5b806306fdde0314610145578063095ea7b31461018b5780630faee56f146101bb57806318160ddd146101df57806323b872dd146101f457600080fd5b3661014057005b600080fd5b34801561015157600080fd5b5060408051808201909152600b81526a436572626572757320414960a81b60208201525b60405161018291906115e8565b60405180910390f35b34801561019757600080fd5b506101ab6101a636600461165b565b61044b565b6040519015158152602001610182565b3480156101c757600080fd5b506101d1600f5481565b604051908152602001610182565b3480156101eb57600080fd5b506101d1610462565b34801561020057600080fd5b506101ab61020f366004611687565b610482565b34801561022057600080fd5b5060405160088152602001610182565b34801561023c57600080fd5b5061025061024b3660046116de565b6104eb565b005b34801561025e57600080fd5b506101ab61026d3660046117a3565b6001600160a01b031660009081526004602052604090205460ff1690565b34801561029757600080fd5b5061025061058a565b3480156102ac57600080fd5b506101d16102bb3660046117a3565b6001600160a01b031660009081526001602052604090205490565b3480156102e257600080fd5b506102506105b9565b3480156102f757600080fd5b5061025061062d565b34801561030c57600080fd5b506101d1600c5481565b34801561032257600080fd5b506000546040516001600160a01b039091168152602001610182565b34801561034a57600080fd5b506101d1600d5481565b34801561036057600080fd5b5060408051808201909152600381526243414960e81b6020820152610175565b34801561038c57600080fd5b506101ab61039b36600461165b565b6106e6565b3480156103ac57600080fd5b506101d1600e5481565b3480156103c257600080fd5b506006546101ab9060ff1681565b3480156103dc57600080fd5b506102506106f3565b3480156103f157600080fd5b506102506104003660046116de565b610aad565b34801561041157600080fd5b506101d16104203660046117c0565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6000610458338484610b3f565b5060015b92915050565b60006104706008600a6118f3565b61047d90620f4240611902565b905090565b600061048f848484610c63565b6104e184336104dc85604051806060016040528060288152602001611aa4602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190611247565b610b3f565b5060019392505050565b6000546001600160a01b0316331461051e5760405162461bcd60e51b815260040161051590611919565b60405180910390fd5b60005b8151811015610586576000600460008484815181106105425761054261194e565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061057e81611964565b915050610521565b5050565b3060009081526001602052604090205480156105a9576105a981611281565b47801561058657610586816113fb565b6000546001600160a01b031633146105e35760405162461bcd60e51b815260040161051590611919565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146106575760405162461bcd60e51b815260040161051590611919565b6106636008600a6118f3565b61067090620f4240611902565b600c5561067f6008600a6118f3565b61068c90620f4240611902565b600d556006805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6106c66008600a6118f3565b6106d390620f4240611902565b60405190815260200160405180910390a1565b6000610458338484610c63565b6000546001600160a01b0316331461071d5760405162461bcd60e51b815260040161051590611919565b601154600160a01b900460ff16156107775760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610515565b601080546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556107bf9030906107b26008600a6118f3565b6104dc90620f4240611902565b601060009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610812573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610836919061197d565b6001600160a01b031663c9c6539630601060009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610898573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108bc919061197d565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610909573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061092d919061197d565b601180546001600160a01b039283166001600160a01b03199091161790556010541663f305d7194730610975816001600160a01b031660009081526001602052604090205490565b60008061098a6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156109f2573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610a17919061199a565b50506011805462ff00ff60a01b1981166201000160a01b1790915560105460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610a86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aaa91906119c8565b50565b6000546001600160a01b03163314610ad75760405162461bcd60e51b815260040161051590611919565b60005b815181101561058657600160046000848481518110610afb57610afb61194e565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610b3781611964565b915050610ada565b6001600160a01b038316610ba15760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610515565b6001600160a01b038216610c025760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610515565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610cc75760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610515565b6001600160a01b038216610d295760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610515565b60008111610d8b5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610515565b600080546001600160a01b03858116911614801590610db857506000546001600160a01b03848116911614155b15611104576001600160a01b03841660009081526004602052604090205460ff16158015610dff57506001600160a01b03831660009081526004602052604090205460ff16155b610e0857600080fd5b601154600160a81b900460ff16610e4857610e456064610e3f600954600b5411610e3457600754610e38565b6008545b8590611439565b906114c2565b90505b60065460ff1615610f2d576010546001600160a01b03848116911614801590610e7f57506011546001600160a01b03848116911614155b15610f2d57326000908152600560205260409020544311610f1a5760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a401610515565b3260009081526005602052604090204390555b6011546001600160a01b038581169116148015610f5857506010546001600160a01b03848116911614155b8015610f7d57506001600160a01b03831660009081526003602052604090205460ff16155b1561106557600c54821115610fd45760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610515565b600d5482610ff7856001600160a01b031660009081526001602052604090205490565b61100191906119ea565b111561104f5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610515565b600b805490600061105f83611964565b91905055505b30600090815260016020526040902054601154600160a81b900460ff1615801561109d57506011546001600160a01b03868116911614155b80156110b25750601154600160b01b900460ff165b80156110bf5750600e5481115b80156110ce5750600a54600b54115b15611102576110f06110eb846110e684600f54611504565b611504565b611281565b47801561110057611100476113fb565b505b505b6001600160a01b0384166000908152600160205260409020546111279083611519565b6001600160a01b03851660009081526001602052604090205561116c61114d8383611519565b6001600160a01b0385166000908152600160205260409020549061155b565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6111b68585611519565b60405190815260200160405180910390a3801561124157306000908152600160205260409020546111e7908261155b565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112389085815260200190565b60405180910390a35b50505050565b6000818484111561126b5760405162461bcd60e51b815260040161051591906115e8565b50600061127884866119fd565b95945050505050565b6011805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106112c9576112c961194e565b6001600160a01b03928316602091820292909201810191909152601054604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611322573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611346919061197d565b816001815181106113595761135961194e565b6001600160a01b03928316602091820292909201015260105461137f9130911684610b3f565b60105460405163791ac94760e01b81526001600160a01b039091169063791ac947906113b8908590600090869030904290600401611a10565b600060405180830381600087803b1580156113d257600080fd5b505af11580156113e6573d6000803e3d6000fd5b50506011805460ff60a81b1916905550505050565b6006546040516101009091046001600160a01b0316906108fc8315029083906000818181858888f19350505050158015610586573d6000803e3d6000fd5b60008260000361144b5750600061045c565b60006114578385611902565b9050826114648583611a81565b146114bb5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610515565b9392505050565b60006114bb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506115ba565b600081831161151357826114bb565b50919050565b60006114bb83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611247565b60008061156883856119ea565b9050838110156114bb5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610515565b600081836115db5760405162461bcd60e51b815260040161051591906115e8565b5060006112788486611a81565b600060208083528351808285015260005b81811015611615578581018301518582016040015282016115f9565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610aaa57600080fd5b803561165681611636565b919050565b6000806040838503121561166e57600080fd5b823561167981611636565b946020939093013593505050565b60008060006060848603121561169c57600080fd5b83356116a781611636565b925060208401356116b781611636565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b600060208083850312156116f157600080fd5b823567ffffffffffffffff8082111561170957600080fd5b818501915085601f83011261171d57600080fd5b81358181111561172f5761172f6116c8565b8060051b604051601f19603f83011681018181108582111715611754576117546116c8565b60405291825284820192508381018501918883111561177257600080fd5b938501935b82851015611797576117888561164b565b84529385019392850192611777565b98975050505050505050565b6000602082840312156117b557600080fd5b81356114bb81611636565b600080604083850312156117d357600080fd5b82356117de81611636565b915060208301356117ee81611636565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561184a578160001904821115611830576118306117f9565b8085161561183d57918102915b93841c9390800290611814565b509250929050565b6000826118615750600161045c565b8161186e5750600061045c565b8160018114611884576002811461188e576118aa565b600191505061045c565b60ff84111561189f5761189f6117f9565b50506001821b61045c565b5060208310610133831016604e8410600b84101617156118cd575081810a61045c565b6118d7838361180f565b80600019048211156118eb576118eb6117f9565b029392505050565b60006114bb60ff841683611852565b808202811582820484141761045c5761045c6117f9565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b600060018201611976576119766117f9565b5060010190565b60006020828403121561198f57600080fd5b81516114bb81611636565b6000806000606084860312156119af57600080fd5b8351925060208401519150604084015190509250925092565b6000602082840312156119da57600080fd5b815180151581146114bb57600080fd5b8082018082111561045c5761045c6117f9565b8181038181111561045c5761045c6117f9565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611a605784516001600160a01b031683529383019391830191600101611a3b565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611a9e57634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c03781e045d44f29e4a4a670979b70bfb834d61329c4731a898d8520790a867b64736f6c63430008110033

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.