POL Price: $0.700041 (+0.71%)
 

Overview

POL Balance

Polygon PoS Chain LogoPolygon PoS Chain LogoPolygon PoS Chain Logo0 POL

POL Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve649859242024-12-02 8:20:454 days ago1733127645IN
0x33bE9D99...b9eEb4Ca5
0 POL0.01052098226.49650077
Transfer647464252024-11-26 7:52:5011 days ago1732607570IN
0x33bE9D99...b9eEb4Ca5
0 POL0.0024073399.79419792
Transfer647442942024-11-26 6:36:3911 days ago1732602999IN
0x33bE9D99...b9eEb4Ca5
0 POL0.0018049674.78609463
Transfer646729192024-11-24 11:31:5512 days ago1732447915IN
0x33bE9D99...b9eEb4Ca5
0 POL0.0020118383.35772791
Approve646262992024-11-23 7:24:0114 days ago1732346641IN
0x33bE9D99...b9eEb4Ca5
0 POL0.0025650855.2212939
Approve645042142024-11-20 6:18:3317 days ago1732083513IN
0x33bE9D99...b9eEb4Ca5
0 POL0.0024744553.64435358
Approve645041982024-11-20 6:17:5917 days ago1732083479IN
0x33bE9D99...b9eEb4Ca5
0 POL0.0025852855.97420022
Approve645041772024-11-20 6:17:1517 days ago1732083435IN
0x33bE9D99...b9eEb4Ca5
0 POL0.0013638356.34968917
Approve645041762024-11-20 6:17:1317 days ago1732083433IN
0x33bE9D99...b9eEb4Ca5
0 POL0.0013603656.34629232
Transfer641929692024-11-12 11:28:5924 days ago1731410939IN
0x33bE9D99...b9eEb4Ca5
0 POL0.00809671335.47587909
Approve640634732024-11-09 6:03:3228 days ago1731132212IN
0x33bE9D99...b9eEb4Ca5
0 POL0.0029134862.72176834
Approve640587852024-11-09 3:16:0028 days ago1731122160IN
0x33bE9D99...b9eEb4Ca5
0 POL0.0008148933.66924662
Approve639875252024-11-07 8:32:3129 days ago1730968351IN
0x33bE9D99...b9eEb4Ca5
0 POL0.0010145641.91917407
Approve639874752024-11-07 8:30:3529 days ago1730968235IN
0x33bE9D99...b9eEb4Ca5
0 POL0.0020334344.01478545
Transfer639855392024-11-07 7:20:2630 days ago1730964026IN
0x33bE9D99...b9eEb4Ca5
0 POL0.0011617453.64518304
Transfer639855032024-11-07 7:19:0830 days ago1730963948IN
0x33bE9D99...b9eEb4Ca5
0 POL0.0019492490.00927434
Approve639581782024-11-06 14:38:4330 days ago1730903923IN
0x33bE9D99...b9eEb4Ca5
0 POL0.00320521132.43047515
Approve638004152024-11-02 16:19:1834 days ago1730564358IN
0x33bE9D99...b9eEb4Ca5
0 POL0.00720181297.55880595
Approve636611222024-10-30 5:25:3638 days ago1730265936IN
0x33bE9D99...b9eEb4Ca5
0 POL0.0020811285.98629118
Approve635965892024-10-28 15:01:0639 days ago1730127666IN
0x33bE9D99...b9eEb4Ca5
0 POL0.0019564642.35963698
Approve635160462024-10-26 14:38:4541 days ago1729953525IN
0x33bE9D99...b9eEb4Ca5
0 POL0.0008209433.91928484
Transfer634761882024-10-25 15:03:4842 days ago1729868628IN
0x33bE9D99...b9eEb4Ca5
0 POL0.00774931321.08213197
Transfer633322092024-10-22 1:15:4346 days ago1729559743IN
0x33bE9D99...b9eEb4Ca5
0 POL0.001791974.24512014
Transfer633148772024-10-21 15:01:0246 days ago1729522862IN
0x33bE9D99...b9eEb4Ca5
0 POL0.0039495163.6422264
Transfer633145522024-10-21 14:49:3246 days ago1729522172IN
0x33bE9D99...b9eEb4Ca5
0 POL0.00372503154.3416122
View all transactions

Parent Transaction Hash Block From To
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
MetacraftToken

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at polygonscan.com on 2024-02-06
*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.20;

// ----------------------------------------------------------------------------
// Safe maths
// ----------------------------------------------------------------------------
library MySafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256 c) {
        c = a + b;
        require(c >= a);
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256 c) {
        require(b <= a);
        c = a - b;
    }
    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 c) {
        if (a == 0) {
            revert();
        }
        c = a * b;
        require(c / a == b);
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256 c) {
        require(b > 0);
        c = a / b;
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
    // Solidity only automatically asserts when dividing by 0
    require(b > 0, errorMessage);
    uint256 c = a / b;
    // assert(a == b * c + a % b); // There is no case in which this doesn't hold

    return c;
  }
}

interface IERC20 {
    
    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(address indexed owner, address indexed spender, uint256 value);

    
    function totalSupply() external view returns (uint256);

   
    function balanceOf(address account) external view returns (uint256);

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

    function allowance(address owner, address spender) external view returns (uint256);

    function approve(address spender, uint256 value) external returns (bool);

    
    function transferFrom(address from, address to, uint256 value) external returns (bool);
}
contract Context {
  // Empty internal constructor, to prevent people from mistakenly deploying
  // an instance of this contract, which should be used via inheritance.
  constructor ()  { }

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

  function _msgData() internal view returns (bytes memory) {
    this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
    return msg.data;
  }
}
// ----------------------------------------------------------------------------
// Owned contract
// ----------------------------------------------------------------------------
contract Ownable is Context {
  address private _owner;

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

  /**
   * @dev Initializes the contract setting the deployer as the initial owner.
   */
  constructor ()  {
    address msgSender = _msgSender();
    _owner = msgSender;
    emit OwnershipTransferred(address(0), msgSender);
  }

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

  /**
   * @dev Throws if called by any account other than the owner.
   */
  modifier onlyOwner() {
    require(_owner == _msgSender(), "Ownable: caller is not the owner");
    _;
  }

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

  /**
   * @dev Transfers ownership of the contract to a new account (`newOwner`).
   * Can only be called by the current owner.
   */
  function transferOwnership(address newOwner) public onlyOwner {
    _transferOwnership(newOwner);
  }

  /**
   * @dev Transfers ownership of the contract to a new account (`newOwner`).
   */
  function _transferOwnership(address newOwner) internal {
    require(newOwner != address(0), "Ownable: new owner is the zero address");
    emit OwnershipTransferred(_owner, newOwner);
    _owner = newOwner;
  }
}

// ----------------------------------------------------------------------------
// MetaCraftToken
// ----------------------------------------------------------------------------
contract MetacraftToken is Context, IERC20, Ownable {
    using MySafeMath for uint256;
   
    string constant _name = "Metacraft Token"; 
    string constant _symbol = "MCTP";
    uint256 constant  _decimals = 18;
    uint256 internal  totalSupply_ = 10 * 10**8 * 10**18;
    bool internal halted_ = false;

    mapping(address => uint256) internal balances_;
    mapping(address => mapping(address => uint256)) internal allowed_;
    
    // ------------------------------------------------------------------------
    // Constructor
    // ------------------------------------------------------------------------
    constructor() {
        balances_[msg.sender] = totalSupply_;
        emit Transfer(address(0), msg.sender, totalSupply_);    
    }

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

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

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

   
    // ------------------------------------------------------------------------
    // Set the halted tag when the emergent case happened
    // ------------------------------------------------------------------------
    function setEmergentHalt(bool _tag) external onlyOwner {
        halted_ = _tag;
    }

    // ------------------------------------------------------------------------
    // Total supply
    // ------------------------------------------------------------------------
    function totalSupply() external override view returns (uint256) {
        return totalSupply_;
    }

    // ------------------------------------------------------------------------
    // Get the token balance for account `tokenOwner`
    // ------------------------------------------------------------------------
    function balanceOf(address _tokenOwner) external override view returns (uint256) {
        return balances_[_tokenOwner];
    }

    // ------------------------------------------------------------------------
    // Transfer the balance from token owner's account to `to` account
    // - Owner's account must have sufficient balance to transfer
    // - 0 value transfers are allowed
    // ------------------------------------------------------------------------

     function transfer(address recipient, uint256 amount) external override returns (bool) {
          require(!halted_);
         _transfer(msg.sender, recipient, amount);
         return true;
  }

    // ------------------------------------------------------------------------
    // Token owner can approve for `spender` to transferFrom(...) `tokens`
    // from the token owner's account
    //
    // https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20-token-standard.md
    // recommends that there are no checks for the approval double-spend attack
    // as this should be implemented in user interfaces 
    // ------------------------------------------------------------------------
    function approve(address _spender, uint256 _tokens) external override returns(bool){
        // require(_spender != msg.sender);
        allowed_[msg.sender][_spender] = _tokens;
        emit Approval(msg.sender, _spender, _tokens);
        return true;
    }

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

        allowed_[owner][spender] = amount;
        emit Approval(owner, spender, amount);
  }
    // ------------------------------------------------------------------------
    // Transfer `tokens` from the `from` account to the `to` account
    // 
    // The calling account must already have sufficient tokens approve(...)-d
    // for spending from the `from` account and
    // - From account must have sufficient balance to transfer
    // - Spender must have sufficient allowance to transfer
    // - 0 value transfers are allowed
    // ------------------------------------------------------------------------
    function _transfer(address sender, address recipient, uint256 amount) internal {
        require(sender != address(0), "MCTP: transfer from the zero address");
        require(recipient != address(0), "MCTP: transfer to the zero address");

        balances_[sender] = balances_[sender].sub(amount, "MCTP: transfer amount exceeds balance");
        balances_[recipient] = balances_[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
    }
    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        require(!halted_);
        _transfer(sender, recipient, amount);
        _approve(sender, msg.sender, allowed_[sender][msg.sender].sub(amount, "MCTP: transfer amount exceeds allowance"));
        return true;
  }
    function increaseAllowance(address spender, uint256 addedValue) external returns (bool) {
        _approve(msg.sender, spender, allowed_[msg.sender][spender].add(addedValue));
        return true;
  }

    function decreaseAllowance(address spender, uint256 subtractedValue) external returns (bool) {
        _approve(msg.sender, spender, allowed_[msg.sender][spender].sub(subtractedValue, "MCTP: decreased allowance below zero"));
        return true;
    }
    // ------------------------------------------------------------------------
    // Returns the amount of tokens approved by the owner that can be
    // transferred to the spender's account
    // ------------------------------------------------------------------------
    function allowance(address _tokenOwner, address _spender) external override view returns (uint256) {
        return allowed_[_tokenOwner][_spender];
    }

}

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":"_tokenOwner","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":"_tokens","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenOwner","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":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tag","type":"bool"}],"name":"setEmergentHalt","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":"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"}]

60806040526b033b2e3c9fd0803ce80000006001556002805460ff19169055348015610029575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600154335f81815260036020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610b02806100c15f395ff3fe608060405234801561000f575f80fd5b50600436106100f0575f3560e01c8063715018a611610093578063a457c2d711610063578063a457c2d71461021a578063a9059cbb1461022d578063dd62ed3e14610240578063f2fde38b14610278575f80fd5b8063715018a6146101c35780638da5cb5b146101cd57806395d89b41146101e7578063a398063a14610207575f80fd5b806323b872dd116100ce57806323b872dd14610166578063313ce56714610179578063395093511461018857806370a082311461019b575f80fd5b806306fdde03146100f4578063095ea7b31461013157806318160ddd14610154575b5f80fd5b60408051808201909152600f81526e26b2ba30b1b930b33a102a37b5b2b760891b60208201525b60405161012891906108b6565b60405180910390f35b61014461013f36600461091c565b61028b565b6040519015158152602001610128565b6001545b604051908152602001610128565b610144610174366004610944565b6102f7565b60405160128152602001610128565b61014461019636600461091c565b61036e565b6101586101a936600461097d565b6001600160a01b03165f9081526003602052604090205490565b6101cb6103ac565b005b5f546040516001600160a01b039091168152602001610128565b60408051808201909152600481526304d4354560e41b602082015261011b565b6101cb61021536600461099d565b610426565b61014461022836600461091c565b610462565b61014461023b36600461091c565b6104af565b61015861024e3660046109bc565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b6101cb61028636600461097d565b6104cb565b335f8181526004602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906102e59086815260200190565b60405180910390a35060015b92915050565b6002545f9060ff1615610308575f80fd5b610313848484610500565b610364843361035f85604051806060016040528060278152602001610aa6602791396001600160a01b038a165f908152600460209081526040808320338452909152902054919061068d565b6106c5565b5060019392505050565b335f8181526004602090815260408083206001600160a01b038716845290915281205490916103a391859061035f90866107df565b50600192915050565b5f546001600160a01b031633146103de5760405162461bcd60e51b81526004016103d5906109ed565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461044f5760405162461bcd60e51b81526004016103d5906109ed565b6002805460ff1916911515919091179055565b5f6103a3338461035f85604051806060016040528060248152602001610a5d60249139335f9081526004602090815260408083206001600160a01b038d168452909152902054919061068d565b6002545f9060ff16156104c0575f80fd5b6103a3338484610500565b5f546001600160a01b031633146104f45760405162461bcd60e51b81526004016103d5906109ed565b6104fd816107f8565b50565b6001600160a01b0383166105625760405162461bcd60e51b8152602060048201526024808201527f4d4354503a207472616e736665722066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103d5565b6001600160a01b0382166105c35760405162461bcd60e51b815260206004820152602260248201527f4d4354503a207472616e7366657220746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103d5565b6105ff81604051806060016040528060258152602001610a81602591396001600160a01b0386165f90815260036020526040902054919061068d565b6001600160a01b038085165f90815260036020526040808220939093559084168152205461062d90826107df565b6001600160a01b038084165f8181526003602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906106809085815260200190565b60405180910390a3505050565b5f81848411156106b05760405162461bcd60e51b81526004016103d591906108b6565b505f6106bc8486610a36565b95945050505050565b6001600160a01b0383166107275760405162461bcd60e51b815260206004820152602360248201527f4d4354503a20617070726f76652066726f6d20746865207a65726f206164647260448201526265737360e81b60648201526084016103d5565b6001600160a01b0382166107875760405162461bcd60e51b815260206004820152602160248201527f4d4354503a20617070726f766520746f20746865207a65726f206164647265736044820152607360f81b60648201526084016103d5565b6001600160a01b038381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259101610680565b5f6107ea8284610a49565b9050828110156102f1575f80fd5b6001600160a01b03811661085d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016103d5565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f6020808352835180828501525f5b818110156108e1578581018301518582016040015282016108c5565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610917575f80fd5b919050565b5f806040838503121561092d575f80fd5b61093683610901565b946020939093013593505050565b5f805f60608486031215610956575f80fd5b61095f84610901565b925061096d60208501610901565b9150604084013590509250925092565b5f6020828403121561098d575f80fd5b61099682610901565b9392505050565b5f602082840312156109ad575f80fd5b81358015158114610996575f80fd5b5f80604083850312156109cd575f80fd5b6109d683610901565b91506109e460208401610901565b90509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b818103818111156102f1576102f1610a22565b808201808211156102f1576102f1610a2256fe4d4354503a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f4d4354503a207472616e7366657220616d6f756e7420657863656564732062616c616e63654d4354503a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122033e696d335e46e968de5441767b1424ae91bad5e40289b60b4d0a6c6d692c92564736f6c63430008140033

Deployed Bytecode

0x608060405234801561000f575f80fd5b50600436106100f0575f3560e01c8063715018a611610093578063a457c2d711610063578063a457c2d71461021a578063a9059cbb1461022d578063dd62ed3e14610240578063f2fde38b14610278575f80fd5b8063715018a6146101c35780638da5cb5b146101cd57806395d89b41146101e7578063a398063a14610207575f80fd5b806323b872dd116100ce57806323b872dd14610166578063313ce56714610179578063395093511461018857806370a082311461019b575f80fd5b806306fdde03146100f4578063095ea7b31461013157806318160ddd14610154575b5f80fd5b60408051808201909152600f81526e26b2ba30b1b930b33a102a37b5b2b760891b60208201525b60405161012891906108b6565b60405180910390f35b61014461013f36600461091c565b61028b565b6040519015158152602001610128565b6001545b604051908152602001610128565b610144610174366004610944565b6102f7565b60405160128152602001610128565b61014461019636600461091c565b61036e565b6101586101a936600461097d565b6001600160a01b03165f9081526003602052604090205490565b6101cb6103ac565b005b5f546040516001600160a01b039091168152602001610128565b60408051808201909152600481526304d4354560e41b602082015261011b565b6101cb61021536600461099d565b610426565b61014461022836600461091c565b610462565b61014461023b36600461091c565b6104af565b61015861024e3660046109bc565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b6101cb61028636600461097d565b6104cb565b335f8181526004602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906102e59086815260200190565b60405180910390a35060015b92915050565b6002545f9060ff1615610308575f80fd5b610313848484610500565b610364843361035f85604051806060016040528060278152602001610aa6602791396001600160a01b038a165f908152600460209081526040808320338452909152902054919061068d565b6106c5565b5060019392505050565b335f8181526004602090815260408083206001600160a01b038716845290915281205490916103a391859061035f90866107df565b50600192915050565b5f546001600160a01b031633146103de5760405162461bcd60e51b81526004016103d5906109ed565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461044f5760405162461bcd60e51b81526004016103d5906109ed565b6002805460ff1916911515919091179055565b5f6103a3338461035f85604051806060016040528060248152602001610a5d60249139335f9081526004602090815260408083206001600160a01b038d168452909152902054919061068d565b6002545f9060ff16156104c0575f80fd5b6103a3338484610500565b5f546001600160a01b031633146104f45760405162461bcd60e51b81526004016103d5906109ed565b6104fd816107f8565b50565b6001600160a01b0383166105625760405162461bcd60e51b8152602060048201526024808201527f4d4354503a207472616e736665722066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103d5565b6001600160a01b0382166105c35760405162461bcd60e51b815260206004820152602260248201527f4d4354503a207472616e7366657220746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103d5565b6105ff81604051806060016040528060258152602001610a81602591396001600160a01b0386165f90815260036020526040902054919061068d565b6001600160a01b038085165f90815260036020526040808220939093559084168152205461062d90826107df565b6001600160a01b038084165f8181526003602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906106809085815260200190565b60405180910390a3505050565b5f81848411156106b05760405162461bcd60e51b81526004016103d591906108b6565b505f6106bc8486610a36565b95945050505050565b6001600160a01b0383166107275760405162461bcd60e51b815260206004820152602360248201527f4d4354503a20617070726f76652066726f6d20746865207a65726f206164647260448201526265737360e81b60648201526084016103d5565b6001600160a01b0382166107875760405162461bcd60e51b815260206004820152602160248201527f4d4354503a20617070726f766520746f20746865207a65726f206164647265736044820152607360f81b60648201526084016103d5565b6001600160a01b038381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259101610680565b5f6107ea8284610a49565b9050828110156102f1575f80fd5b6001600160a01b03811661085d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016103d5565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f6020808352835180828501525f5b818110156108e1578581018301518582016040015282016108c5565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610917575f80fd5b919050565b5f806040838503121561092d575f80fd5b61093683610901565b946020939093013593505050565b5f805f60608486031215610956575f80fd5b61095f84610901565b925061096d60208501610901565b9150604084013590509250925092565b5f6020828403121561098d575f80fd5b61099682610901565b9392505050565b5f602082840312156109ad575f80fd5b81358015158114610996575f80fd5b5f80604083850312156109cd575f80fd5b6109d683610901565b91506109e460208401610901565b90509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b818103818111156102f1576102f1610a22565b808201808211156102f1576102f1610a2256fe4d4354503a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f4d4354503a207472616e7366657220616d6f756e7420657863656564732062616c616e63654d4354503a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122033e696d335e46e968de5441767b1424ae91bad5e40289b60b4d0a6c6d692c92564736f6c63430008140033

Deployed Bytecode Sourcemap

4700:5963:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5479:85;5551:5;;;;;;;;;;;;-1:-1:-1;;;5551:5:0;;;;5479:85;;;;;;;:::i;:::-;;;;;;;;7796:264;;;;;;:::i;:::-;;:::i;:::-;;;1169:14:1;;1162:22;1144:41;;1132:2;1117:18;7796:264:0;1004:187:1;6276:102:0;6358:12;;6276:102;;;1342:25:1;;;1330:2;1315:18;6276:102:0;1196:177:1;9413:333:0;;;;;;:::i;:::-;;:::i;5670:93::-;;;4917:2;1853:36:1;;1841:2;1826:18;5670:93:0;1711:184:1;9752:203:0;;;;;;:::i;:::-;;:::i;6603:129::-;;;;;;:::i;:::-;-1:-1:-1;;;;;6702:22:0;6675:7;6702:22;;;:9;:22;;;;;;;6603:129;3821:130;;;:::i;:::-;;3219:73;3257:7;3280:6;3219:73;;-1:-1:-1;;;;;3280:6:0;;;2237:51:1;;2225:2;2210:18;3219:73:0;2091:203:1;5572:90:0;5647:7;;;;;;;;;;;;-1:-1:-1;;;5647:7:0;;;;5572:90;;5997:88;;;;;;:::i;:::-;;:::i;9963:255::-;;;;;;:::i;:::-;;:::i;7084:197::-;;;;;;:::i;:::-;;:::i;10502:156::-;;;;;;:::i;:::-;-1:-1:-1;;;;;10619:21:0;;;10592:7;10619:21;;;:8;:21;;;;;;;;:31;;;;;;;;;;;;;10502:156;4096:103;;;;;;:::i;:::-;;:::i;7796:264::-;7944:10;7874:4;7935:20;;;:8;:20;;;;;;;;-1:-1:-1;;;;;7935:30:0;;;;;;;;;;:40;;;7991:39;7874:4;;7935:30;;7991:39;;;;7968:7;1342:25:1;;1330:2;1315:18;;1196:177;7991:39:0;;;;;;;;-1:-1:-1;8048:4:0;7796:264;;;;;:::o;9413:333::-;9539:7;;9513:4;;9539:7;;9538:8;9530:17;;;;;;9558:36;9568:6;9576:9;9587:6;9558:9;:36::i;:::-;9605:113;9614:6;9622:10;9634:83;9667:6;9634:83;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9634:16:0;;;;;;:8;:16;;;;;;;;9651:10;9634:28;;;;;;;;;:83;:32;:83::i;:::-;9605:8;:113::i;:::-;-1:-1:-1;9736:4:0;9413:333;;;;;:::o;9752:203::-;9860:10;9834:4;9881:20;;;:8;:20;;;;;;;;-1:-1:-1;;;;;9881:29:0;;;;;;;;;;9834:4;;9851:76;;9872:7;;9881:45;;9915:10;9881:33;:45::i;9851:76::-;-1:-1:-1;9945:4:0;9752:203;;;;:::o;3821:130::-;3413:6;;-1:-1:-1;;;;;3413:6:0;2336:10;3413:22;3405:67;;;;-1:-1:-1;;;3405:67:0;;;;;;;:::i;:::-;;;;;;;;;3916:1:::1;3900:6:::0;;3879:40:::1;::::0;-1:-1:-1;;;;;3900:6:0;;::::1;::::0;3879:40:::1;::::0;3916:1;;3879:40:::1;3943:1;3926:19:::0;;-1:-1:-1;;;;;;3926:19:0::1;::::0;;3821:130::o;5997:88::-;3413:6;;-1:-1:-1;;;;;3413:6:0;2336:10;3413:22;3405:67;;;;-1:-1:-1;;;3405:67:0;;;;;;;:::i;:::-;6063:7:::1;:14:::0;;-1:-1:-1;;6063:14:0::1;::::0;::::1;;::::0;;;::::1;::::0;;5997:88::o;9963:255::-;10050:4;10067:121;10076:10;10088:7;10097:90;10131:15;10097:90;;;;;;;;;;;;;;;;;10106:10;10097:20;;;;:8;:20;;;;;;;;-1:-1:-1;;;;;10097:29:0;;;;;;;;;;;:90;:33;:90::i;7084:197::-;7192:7;;7164:4;;7192:7;;7191:8;7183:17;;;;;;7212:40;7222:10;7234:9;7245:6;7212:9;:40::i;4096:103::-;3413:6;;-1:-1:-1;;;;;3413:6:0;2336:10;3413:22;3405:67;;;;-1:-1:-1;;;3405:67:0;;;;;;;:::i;:::-;4165:28:::1;4184:8;4165:18;:28::i;:::-;4096:103:::0;:::o;8939:468::-;-1:-1:-1;;;;;9037:20:0;;9029:69;;;;-1:-1:-1;;;9029:69:0;;3405:2:1;9029:69:0;;;3387:21:1;3444:2;3424:18;;;3417:30;3483:34;3463:18;;;3456:62;-1:-1:-1;;;3534:18:1;;;3527:34;3578:19;;9029:69:0;3203:400:1;9029:69:0;-1:-1:-1;;;;;9117:23:0;;9109:70;;;;-1:-1:-1;;;9109:70:0;;3810:2:1;9109:70:0;;;3792:21:1;3849:2;3829:18;;;3822:30;3888:34;3868:18;;;3861:62;-1:-1:-1;;;3939:18:1;;;3932:32;3981:19;;9109:70:0;3608:398:1;9109:70:0;9212;9234:6;9212:70;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9212:17:0;;;;;;:9;:17;;;;;;;:70;:21;:70::i;:::-;-1:-1:-1;;;;;9192:17:0;;;;;;;:9;:17;;;;;;:90;;;;9316:20;;;;;;;:32;;9341:6;9316:24;:32::i;:::-;-1:-1:-1;;;;;9293:20:0;;;;;;;:9;:20;;;;;;;:55;;;;9364:35;;;;;;;;;;9392:6;1342:25:1;;1330:2;1315:18;;1196:177;9364:35:0;;;;;;;;8939:468;;;:::o;523:178::-;609:7;641:12;633:6;;;;625:29;;;;-1:-1:-1;;;625:29:0;;;;;;;;:::i;:::-;-1:-1:-1;661:9:0;673:5;677:1;673;:5;:::i;:::-;661:17;523:178;-1:-1:-1;;;;;523:178:0:o;8068:331::-;-1:-1:-1;;;;;8162:19:0;;8154:67;;;;-1:-1:-1;;;8154:67:0;;4478:2:1;8154:67:0;;;4460:21:1;4517:2;4497:18;;;4490:30;4556:34;4536:18;;;4529:62;-1:-1:-1;;;4607:18:1;;;4600:33;4650:19;;8154:67:0;4276:399:1;8154:67:0;-1:-1:-1;;;;;8240:21:0;;8232:67;;;;-1:-1:-1;;;8232:67:0;;4882:2:1;8232:67:0;;;4864:21:1;4921:2;4901:18;;;4894:30;4960:34;4940:18;;;4933:62;-1:-1:-1;;;5011:18:1;;;5004:31;5052:19;;8232:67:0;4680:397:1;8232:67:0;-1:-1:-1;;;;;8312:15:0;;;;;;;:8;:15;;;;;;;;:24;;;;;;;;;;;;;:33;;;8361:32;;1342:25:1;;;8361:32:0;;1315:18:1;8361:32:0;1196:177:1;265:123:0;323:9;349:5;353:1;349;:5;:::i;:::-;345:9;;378:1;373;:6;;365:15;;;;;4297:215;-1:-1:-1;;;;;4367:22:0;;4359:73;;;;-1:-1:-1;;;4359:73:0;;5414:2:1;4359:73:0;;;5396:21:1;5453:2;5433:18;;;5426:30;5492:34;5472:18;;;5465:62;-1:-1:-1;;;5543:18:1;;;5536:36;5589:19;;4359:73:0;5212:402:1;4359:73:0;4465:6;;;4444:38;;-1:-1:-1;;;;;4444:38:0;;;;4465:6;;;4444:38;;;4489:6;:17;;-1:-1:-1;;;;;;4489:17:0;-1:-1:-1;;;;;4489:17:0;;;;;;;;;;4297:215::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:173::-;635:20;;-1:-1:-1;;;;;684:31:1;;674:42;;664:70;;730:1;727;720:12;664:70;567:173;;;:::o;745:254::-;813:6;821;874:2;862:9;853:7;849:23;845:32;842:52;;;890:1;887;880:12;842:52;913:29;932:9;913:29;:::i;:::-;903:39;989:2;974:18;;;;961:32;;-1:-1:-1;;;745:254:1:o;1378:328::-;1455:6;1463;1471;1524:2;1512:9;1503:7;1499:23;1495:32;1492:52;;;1540:1;1537;1530:12;1492:52;1563:29;1582:9;1563:29;:::i;:::-;1553:39;;1611:38;1645:2;1634:9;1630:18;1611:38;:::i;:::-;1601:48;;1696:2;1685:9;1681:18;1668:32;1658:42;;1378:328;;;;;:::o;1900:186::-;1959:6;2012:2;2000:9;1991:7;1987:23;1983:32;1980:52;;;2028:1;2025;2018:12;1980:52;2051:29;2070:9;2051:29;:::i;:::-;2041:39;1900:186;-1:-1:-1;;;1900:186:1:o;2299:273::-;2355:6;2408:2;2396:9;2387:7;2383:23;2379:32;2376:52;;;2424:1;2421;2414:12;2376:52;2463:9;2450:23;2516:5;2509:13;2502:21;2495:5;2492:32;2482:60;;2538:1;2535;2528:12;2577:260;2645:6;2653;2706:2;2694:9;2685:7;2681:23;2677:32;2674:52;;;2722:1;2719;2712:12;2674:52;2745:29;2764:9;2745:29;:::i;:::-;2735:39;;2793:38;2827:2;2816:9;2812:18;2793:38;:::i;:::-;2783:48;;2577:260;;;;;:::o;2842:356::-;3044:2;3026:21;;;3063:18;;;3056:30;3122:34;3117:2;3102:18;;3095:62;3189:2;3174:18;;2842:356::o;4011:127::-;4072:10;4067:3;4063:20;4060:1;4053:31;4103:4;4100:1;4093:15;4127:4;4124:1;4117:15;4143:128;4210:9;;;4231:11;;;4228:37;;;4245:18;;:::i;5082:125::-;5147:9;;;5168:10;;;5165:36;;;5181:18;;:::i

Swarm Source

ipfs://33e696d335e46e968de5441767b1424ae91bad5e40289b60b4d0a6c6d692c925

Block Transaction 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
[ 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.