ETH Price: $3,413.01 (+3.88%)

Contract

0xb32578D7A8cf1a213Bdab22Eaf99Bd742ce187c5
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Set Approval For...192102532024-02-12 6:47:23285 days ago1707720443IN
0xb32578D7...42ce187c5
0 ETH0.0005439422.55833667
Set Approval For...164055742023-01-14 14:14:47679 days ago1673705687IN
0xb32578D7...42ce187c5
0 ETH0.0008671518.84090587
Set Approval For...164051382023-01-14 12:47:11679 days ago1673700431IN
0xb32578D7...42ce187c5
0 ETH0.0007609716.53399991
Set Approval For...164051242023-01-14 12:44:23679 days ago1673700263IN
0xb32578D7...42ce187c5
0 ETH0.000804617.48191647
Set Approval For...163831272023-01-11 10:58:59682 days ago1673434739IN
0xb32578D7...42ce187c5
0 ETH0.0006987615.18226154
Set Approval For...155217802022-09-12 16:09:09803 days ago1662998949IN
0xb32578D7...42ce187c5
0 ETH0.0015055262.43643528
Set Approval For...154748472022-09-05 0:43:44810 days ago1662338624IN
0xb32578D7...42ce187c5
0 ETH0.000126375.24101232
Set Approval For...153951502022-08-23 6:53:48823 days ago1661237628IN
0xb32578D7...42ce187c5
0 ETH0.000343197.45674011
Set Approval For...153950132022-08-23 6:24:24823 days ago1661235864IN
0xb32578D7...42ce187c5
0 ETH0.000389088.45375151
Set Approval For...153905332022-08-22 13:39:26824 days ago1661175566IN
0xb32578D7...42ce187c5
0 ETH0.0008765319.0448535
Set Approval For...153886902022-08-22 6:24:23824 days ago1661149463IN
0xb32578D7...42ce187c5
0 ETH0.000259995.64890054
Set Approval For...153885292022-08-22 5:49:20824 days ago1661147360IN
0xb32578D7...42ce187c5
0 ETH0.000229394.9751144
Set Approval For...153881852022-08-22 4:27:19824 days ago1661142439IN
0xb32578D7...42ce187c5
0 ETH0.00024585.34060726
Set Approval For...153868032022-08-21 23:09:17824 days ago1661123357IN
0xb32578D7...42ce187c5
0 ETH0.000220544.7917712
Set Approval For...153861572022-08-21 20:48:30824 days ago1661114910IN
0xb32578D7...42ce187c5
0 ETH0.00032367.03107107
Set Approval For...153847662022-08-21 15:45:01825 days ago1661096701IN
0xb32578D7...42ce187c5
0 ETH0.001213626.36829254
Safe Transfer Fr...153840292022-08-21 12:42:01825 days ago1661085721IN
0xb32578D7...42ce187c5
0 ETH0.000282378.18175234
Set Approval For...153827922022-08-21 8:02:04825 days ago1661068924IN
0xb32578D7...42ce187c5
0 ETH0.000432969.407193
Set Approval For...153825492022-08-21 7:07:00825 days ago1661065620IN
0xb32578D7...42ce187c5
0 ETH0.000203824.42856537
Safe Transfer Fr...153810472022-08-21 1:20:53825 days ago1661044853IN
0xb32578D7...42ce187c5
0 ETH0.000210584.08103768
Set Approval For...153810382022-08-21 1:19:08825 days ago1661044748IN
0xb32578D7...42ce187c5
0 ETH0.000145583.16326813
Safe Transfer Fr...153806842022-08-21 0:03:40825 days ago1661040220IN
0xb32578D7...42ce187c5
0 ETH0.000255117.39445287
Set Approval For...153804502022-08-20 23:14:30825 days ago1661037270IN
0xb32578D7...42ce187c5
0 ETH0.000276135.99959871
Set Approval For...153804362022-08-20 23:11:31825 days ago1661037091IN
0xb32578D7...42ce187c5
0 ETH0.000308466.70221028
Set Approval For...153796332022-08-20 20:08:57825 days ago1661026137IN
0xb32578D7...42ce187c5
0 ETH0.0007001215.21190509
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Nibbles

Compiler Version
v0.8.12+commit.f00d7308

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
File 1 of 3 : Nibbles.sol
// SPDX-License-Identifier: Unlicense
pragma solidity 0.8.12;

import "./Interfaces.sol";
import "@openzeppelin/contracts/utils/Strings.sol";

contract Nibbles is IERC1155 {
  
  /***********************************|
    |        Variables and Events       |
    |__________________________________*/

  // onReceive function signatures
  bytes4 internal constant ERC1155_RECEIVED_VALUE = 0xf23a6e61;
  bytes4 internal constant ERC1155_BATCH_RECEIVED_VALUE = 0xbc197c81;

  mapping(address => mapping(uint256 => uint256)) internal balances;
  mapping(address => bool) public auth;
  mapping(address => mapping(address => bool)) internal operators;
  string public ratsLair;
  address admin;
  bool initialized;

  /****************************************|
  |            Minting Functions           |
  |_______________________________________*/

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

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

  function initialize() public {
    require(!initialized, "Already initialized");
    admin = msg.sender;
    auth[msg.sender] = true;
    initialized = true;
    ratsLair = "https://api.ratrace.wtf/api/nibbles/";
  }  

  function mint(uint256 quantity, uint256 tokenId) external {
    onlyOperator();
    _mint(msg.sender, tokenId, quantity);
  }

  function freebie(address ratKeeper, uint256 _nibble) external {
    onlyOperator();

    uint256 rand = (uint16(_randomize(_rand(), "he", _nibble)) % 100);
    uint256 nibble = (rand < 50) ? 0 : (rand > 50 && rand < 75)
      ? 1
      : (rand > 75 && rand < 95)
      ? 2
      : 3;
    if (nibble > 0) {
      _mint(ratKeeper, nibble, 1);
    }
  }

  function reserve(address to, uint256 quantity, uint256 tokenId) external {
    onlyOwner();
    _mint(to, tokenId, quantity);
  }

  function burn(
    address from,
    uint256 id,
    uint256 value
  ) external {
    require(auth[msg.sender], "FORBIDDEN TO BURN");
    _burn(from, id, value);
  }

  function _mint(
    address _to,
    uint256 _id,
    uint256 _amount
  ) internal {
    balances[_to][_id] += _amount;
    emit TransferSingle(msg.sender, address(0x0), _to, _id, _amount);
  }

  function _burn(
    address _from,
    uint256 _id,
    uint256 _amount
  ) internal {
    balances[_from][_id] -= _amount;
    emit TransferSingle(msg.sender, _from, address(0x0), _id, _amount);
  }

  //ADMIN

  function onlyOwner() internal view {
    require(admin == msg.sender);
  }

  function onlyOperator() internal view {
    require(auth[msg.sender] == true, "not Authorized");
  }

  function setAuth(address[] calldata adds_, bool status) public {
    onlyOwner();

    for (uint256 index = 0; index < adds_.length; index++) {
      auth[adds_[index]] = status;
    }
  }

  function getTokenURI(uint256 _id) public view returns (string memory) {
    return string(abi.encodePacked(ratsLair, Strings.toString(_id)));
  }

  function setRatsLair(string memory _ratsLair) public {
    onlyOwner();
    ratsLair = _ratsLair;
  }

  /***********************************|
    |     Randomness Functions          |
    |__________________________________*/

  function _randomize(
    uint256 ran,
    string memory dom,
    uint256 ness
  ) internal pure returns (uint256) {
    return uint256(keccak256(abi.encode(ran, dom, ness)));
  }

  function _rand() internal view returns (uint256) {
    return
      uint256(
        keccak256(
          abi.encodePacked(
            msg.sender,
            block.difficulty,
            block.timestamp,
            block.basefee
          )
        )
      );
  }

  /***********************************|
    |     Public Transfer Functions     |
    |__________________________________*/

  function safeTransferFrom(
    address _from,
    address _to,
    uint256 _id,
    uint256 _amount,
    bytes memory _data
  ) public override {
    require(
      (msg.sender == _from) || isApprovedForAll(_from, msg.sender),
      "ERC1155#safeTransferFrom: INVALID_OPERATOR"
    );
    require(_to != address(0), "ERC1155#safeTransferFrom: INVALID_RECIPIENT");

    _safeTransferFrom(_from, _to, _id, _amount);
    _callonERC1155Received(_from, _to, _id, _amount, gasleft(), _data);
  }

  function safeBatchTransferFrom(
    address _from,
    address _to,
    uint256[] memory _ids,
    uint256[] memory _amounts,
    bytes memory _data
  ) public override {
    // Requirements
    require(
      (msg.sender == _from) || isApprovedForAll(_from, msg.sender),
      "ERC1155#safeBatchTransferFrom: INVALID_OPERATOR"
    );
    require(
      _to != address(0),
      "ERC1155#safeBatchTransferFrom: INVALID_RECIPIENT"
    );

    _safeBatchTransferFrom(_from, _to, _ids, _amounts);
    _callonERC1155BatchReceived(_from, _to, _ids, _amounts, gasleft(), _data);
  }

  /***********************************|
    |    Internal Transfer Functions    |
    |__________________________________*/

  function _safeTransferFrom(
    address _from,
    address _to,
    uint256 _id,
    uint256 _amount
  ) internal {
    // Update balances
    balances[_from][_id] -= _amount;
    balances[_to][_id] += _amount;

    // Emit event
    emit TransferSingle(msg.sender, _from, _to, _id, _amount);
  }

  /**
   * @notice Verifies if receiver is contract and if so, calls (_to).onERC1155Received(...)
   */
  function _callonERC1155Received(
    address _from,
    address _to,
    uint256 _id,
    uint256 _amount,
    uint256 _gasLimit,
    bytes memory _data
  ) internal {
    // Check if recipient is contract
    if (_to.code.length != 0) {
      bytes4 retval = IERC1155TokenReceiver(_to).onERC1155Received{
        gas: _gasLimit
      }(msg.sender, _from, _id, _amount, _data);
      require(
        retval == ERC1155_RECEIVED_VALUE,
        "ERC1155#_callonERC1155Received: INVALID_ON_RECEIVE_MESSAGE"
      );
    }
  }

  function _safeBatchTransferFrom(
    address _from,
    address _to,
    uint256[] memory _ids,
    uint256[] memory _amounts
  ) internal {
    require(
      _ids.length == _amounts.length,
      "ERC1155#_safeBatchTransferFrom: INVALID_ARRAYS_LENGTH"
    );

    // Number of transfer to execute
    uint256 nTransfer = _ids.length;

    // Executing all transfers
    for (uint256 i = 0; i < nTransfer; i++) {
      balances[_from][_ids[i]] -= _amounts[i];
      balances[_to][_ids[i]] += _amounts[i];
    }

    // Emit event
    emit TransferBatch(msg.sender, _from, _to, _ids, _amounts);
  }

  /**
   * @notice Verifies if receiver is contract and if so, calls (_to).onERC1155BatchReceived(...)
   */
  function _callonERC1155BatchReceived(
    address _from,
    address _to,
    uint256[] memory _ids,
    uint256[] memory _amounts,
    uint256 _gasLimit,
    bytes memory _data
  ) internal {
    // Pass data if recipient is contract
    if (_to.code.length != 0) {
      bytes4 retval = IERC1155TokenReceiver(_to).onERC1155BatchReceived{
        gas: _gasLimit
      }(msg.sender, _from, _ids, _amounts, _data);
      require(
        retval == ERC1155_BATCH_RECEIVED_VALUE,
        "ERC1155#_callonERC1155BatchReceived: INVALID_ON_RECEIVE_MESSAGE"
      );
    }
  }

  /***********************************|
    |         Operator Functions        |
    |__________________________________*/

  function setApprovalForAll(address _operator, bool _approved)
    external
    override
  {
    // Update operator status
    operators[msg.sender][_operator] = _approved;
    emit ApprovalForAll(msg.sender, _operator, _approved);
  }

  function isApprovedForAll(address _owner, address _operator)
    public
    view
    override
    returns (bool isOperator)
  {
    return operators[_owner][_operator];
  }

  /***********************************|
    |         Balance Functions         |
    |__________________________________*/

  function balanceOf(address _owner, uint256 _id)
    public
    view
    override
    returns (uint256)
  {
    return balances[_owner][_id];
  }

  function balanceOfBatch(address[] memory _owners, uint256[] memory _ids)
    public
    view
    override
    returns (uint256[] memory)
  {
    require(
      _owners.length == _ids.length,
      "ERC1155#balanceOfBatch: INVALID_ARRAY_LENGTH"
    );

    // Variables
    uint256[] memory batchBalances = new uint256[](_owners.length);

    // Iterate over each owner and token ID
    for (uint256 i = 0; i < _owners.length; i++) {
      batchBalances[i] = balances[_owners[i]][_ids[i]];
    }

    return batchBalances;
  }

  function uri(uint256 _id) public view returns (string memory) {
    return getTokenURI(_id);
  }

  function owner() external view returns (address own_) {
    own_ = admin;
  }

  /***********************************|
    |          ERC165 Functions         |
    |__________________________________*/

  function supportsInterface(bytes4 _interfaceID)
    public
    pure
    override
    returns (bool)
  {
    if (_interfaceID == type(IERC1155).interfaceId) {
      return true;
    }
    if (_interfaceID == type(IERC1155Metadata).interfaceId) {
      return true;
    }
    return _interfaceID == this.supportsInterface.selector;
  }
}

/// @title Base64
/// @author Brecht Devos - <[email protected]>
/// @notice Provides a function for encoding some bytes in base64
/// @notice NOT BUILT BY ETHERNAL ELVES TEAM.
library Base64 {
  string internal constant TABLE =
    "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";

  function encode(bytes memory data) internal pure returns (string memory) {
    if (data.length == 0) return "";

    // load the table into memory
    string memory table = TABLE;

    // multiply by 4/3 rounded up
    uint256 encodedLen = 4 * ((data.length + 2) / 3);

    // add some extra buffer at the end required for the writing
    string memory result = new string(encodedLen + 32);

    assembly {
      // set the actual output length
      mstore(result, encodedLen)

      // prepare the lookup table
      let tablePtr := add(table, 1)

      // input ptr
      let dataPtr := data
      let endPtr := add(dataPtr, mload(data))

      // result ptr, jump over length
      let resultPtr := add(result, 32)

      // run over the input, 3 bytes at a time
      for {

      } lt(dataPtr, endPtr) {

      } {
        dataPtr := add(dataPtr, 3)

        // read 3 bytes
        let input := mload(dataPtr)

        // write 4 characters
        mstore(
          resultPtr,
          shl(248, mload(add(tablePtr, and(shr(18, input), 0x3F))))
        )
        resultPtr := add(resultPtr, 1)
        mstore(
          resultPtr,
          shl(248, mload(add(tablePtr, and(shr(12, input), 0x3F))))
        )
        resultPtr := add(resultPtr, 1)
        mstore(
          resultPtr,
          shl(248, mload(add(tablePtr, and(shr(6, input), 0x3F))))
        )
        resultPtr := add(resultPtr, 1)
        mstore(resultPtr, shl(248, mload(add(tablePtr, and(input, 0x3F)))))
        resultPtr := add(resultPtr, 1)
      }

      // padding with '='
      switch mod(mload(data), 3)
      case 1 {
        mstore(sub(resultPtr, 2), shl(240, 0x3d3d))
      }
      case 2 {
        mstore(sub(resultPtr, 1), shl(248, 0x3d))
      }
    }

    return result;
  }
}

File 2 of 3 : Interfaces.sol
// SPDX-License-Identifier: Unlicense
pragma solidity 0.8.12;

interface IERC20Lite {
    
    function transfer(address to, uint256 value) external returns (bool);
    function burn(address from, uint256 value) external;
    function mint(address to, uint256 value) external; 
    function approve(address spender, uint256 value) external returns (bool); 
    function balanceOf(address account) external returns (uint256); 
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

}

interface IElfMetaDataHandler {    
function getTokenURI(uint16 id_, uint256 sentinel) external view returns (string memory);
}

interface ICampaigns {
function gameEngine(uint256 _campId, uint256 _sector, uint256 _level, uint256 _attackPoints, uint256 _healthPoints, uint256 _inventory, bool _useItem) external 
returns(uint256 level, uint256 rewards, uint256 timestamp, uint256 inventory);
}

interface IElves {    
    function prismBridge(uint256[] calldata id, uint256[] calldata sentinel, address owner) external;    
    function exitElf(uint256[] calldata ids, address owner) external;
    function setAccountBalance(address _owner, uint256 _amount, bool _subtract, uint256 _index) external;
}

interface IERC721Lite {
    function transferFrom(address from, address to, uint256 id) external;   
    function transfer(address to, uint256 id) external;
    function ownerOf(uint256 id) external returns (address owner);
    function mint(address to, uint256 tokenid) external;
}

interface IERC1155Lite {
    function burn(address from,uint256 id, uint256 value) external;
    function freebie(address ratKeeper, uint256 nibble) external;
    function balanceOf(address _owner, uint256 _id) external returns (uint256); 
}

 
//1155
interface IERC165 {
    function supportsInterface(bytes4 _interfaceId) external view returns (bool);
}

interface IERC1155 is IERC165 {
  event TransferSingle(address indexed _operator, address indexed _from, address indexed _to, uint256 _id, uint256 _amount);
  event TransferBatch(address indexed _operator, address indexed _from, address indexed _to, uint256[] _ids, uint256[] _amounts);
  event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved);

  function safeTransferFrom(address _from, address _to, uint256 _id, uint256 _amount, bytes calldata _data) external;
  function safeBatchTransferFrom(address _from, address _to, uint256[] calldata _ids, uint256[] calldata _amounts, bytes calldata _data) external;
  function balanceOf(address _owner, uint256 _id) external view returns (uint256);
  function balanceOfBatch(address[] calldata _owners, uint256[] calldata _ids) external view returns (uint256[] memory);
  function setApprovalForAll(address _operator, bool _approved) external;
  function isApprovedForAll(address _owner, address _operator) external view returns (bool isOperator);
}

interface IERC1155Metadata {
  event URI(string _uri, uint256 indexed _id);
  function uri(uint256 _id) external view returns (string memory);
}

interface IERC1155TokenReceiver {
  function onERC1155Received(address _operator, address _from, uint256 _id, uint256 _amount, bytes calldata _data) external returns(bytes4);
  function onERC1155BatchReceived(address _operator, address _from, uint256[] calldata _ids, uint256[] calldata _amounts, bytes calldata _data) external returns(bytes4);
}

File 3 of 3 : Strings.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/Strings.sol)

pragma solidity ^0.8.0;

/**
 * @dev String operations.
 */
library Strings {
    bytes16 private constant _HEX_SYMBOLS = "0123456789abcdef";

    /**
     * @dev Converts a `uint256` to its ASCII `string` decimal representation.
     */
    function toString(uint256 value) internal pure returns (string memory) {
        // Inspired by OraclizeAPI's implementation - MIT licence
        // https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.sol

        if (value == 0) {
            return "0";
        }
        uint256 temp = value;
        uint256 digits;
        while (temp != 0) {
            digits++;
            temp /= 10;
        }
        bytes memory buffer = new bytes(digits);
        while (value != 0) {
            digits -= 1;
            buffer[digits] = bytes1(uint8(48 + uint256(value % 10)));
            value /= 10;
        }
        return string(buffer);
    }

    /**
     * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation.
     */
    function toHexString(uint256 value) internal pure returns (string memory) {
        if (value == 0) {
            return "0x00";
        }
        uint256 temp = value;
        uint256 length = 0;
        while (temp != 0) {
            length++;
            temp >>= 8;
        }
        return toHexString(value, length);
    }

    /**
     * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length.
     */
    function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {
        bytes memory buffer = new bytes(2 * length + 2);
        buffer[0] = "0";
        buffer[1] = "x";
        for (uint256 i = 2 * length + 1; i > 1; --i) {
            buffer[i] = _HEX_SYMBOLS[value & 0xf];
            value >>= 4;
        }
        require(value == 0, "Strings: hex length insufficient");
        return string(buffer);
    }
}

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

Contract Security Audit

Contract ABI

[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_owner","type":"address"},{"indexed":true,"internalType":"address","name":"_operator","type":"address"},{"indexed":false,"internalType":"bool","name":"_approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_operator","type":"address"},{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":true,"internalType":"address","name":"_to","type":"address"},{"indexed":false,"internalType":"uint256[]","name":"_ids","type":"uint256[]"},{"indexed":false,"internalType":"uint256[]","name":"_amounts","type":"uint256[]"}],"name":"TransferBatch","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_operator","type":"address"},{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":true,"internalType":"address","name":"_to","type":"address"},{"indexed":false,"internalType":"uint256","name":"_id","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"TransferSingle","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"auth","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"uint256","name":"_id","type":"uint256"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_owners","type":"address[]"},{"internalType":"uint256[]","name":"_ids","type":"uint256[]"}],"name":"balanceOfBatch","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"ratKeeper","type":"address"},{"internalType":"uint256","name":"_nibble","type":"uint256"}],"name":"freebie","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"}],"name":"getTokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"isOperator","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"quantity","type":"uint256"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"own_","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ratsLair","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"quantity","type":"uint256"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"reserve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256[]","name":"_ids","type":"uint256[]"},{"internalType":"uint256[]","name":"_amounts","type":"uint256[]"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"safeBatchTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_id","type":"uint256"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_operator","type":"address"},{"internalType":"bool","name":"_approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"adds_","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setAuth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_ratsLair","type":"string"}],"name":"setRatsLair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"_interfaceID","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"}],"name":"uri","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"}]

608060405234801561001057600080fd5b50611ccb806100206000396000f3fe608060405234801561001057600080fd5b50600436106101365760003560e01c80638129fc1c116100b8578063a22cb4651161007c578063a22cb465146102d0578063b8e5a6d8146102e3578063cd5d2118146102eb578063e985e9c51461030e578063f242432a14610321578063f5298aca1461033457600080fd5b80638129fc1c14610265578063820270991461026d5780638da5cb5b1461028057806395d89b411461029b5780639e29dd36146102bd57600080fd5b80632eb2c2d6116100ff5780632eb2c2d6146101f95780633bb3a24d1461020c5780634576da471461021f5780634e1273f4146102325780635d1bfcf51461025257600080fd5b8062fdd58e1461013b57806301ffc9a71461018257806306fdde03146101a55780630e89341c146101d15780631b2ef1ca146101e4575b600080fd5b61016f610149366004611393565b6001600160a01b0391909116600090815260208181526040808320938352929052205490565b6040519081526020015b60405180910390f35b6101956101903660046113d3565b610347565b6040519015158152602001610179565b6040805180820190915260078152664e6962626c657360c81b60208201525b604051610179919061144f565b6101c46101df366004611462565b6103a2565b6101f76101f236600461147b565b6103b3565b005b6101f76102073660046115eb565b6103ca565b6101c461021a366004611462565b6104df565b6101f761022d3660046116a5565b610513565b610245610240366004611729565b610592565b6040516101799190611824565b6101f7610260366004611393565b6106ed565b6101f76107e2565b6101f761027b366004611837565b6108a4565b6004546040516001600160a01b039091168152602001610179565b6040805180820190915260068152654e4942424c4560d01b60208201526101c4565b6101f76102cb366004611880565b6108bf565b6101f76102de3660046118b3565b6108d7565b6101c4610943565b6101956102f93660046118e6565b60016020526000908152604090205460ff1681565b61019561031c366004611901565b6109d1565b6101f761032f36600461192b565b6109ff565b6101f7610342366004611880565b610afe565b60006001600160e01b03198216636cdb3d1360e11b141561036a57506001919050565b6001600160e01b031982166303a24d0760e21b141561038b57506001919050565b506001600160e01b0319166301ffc9a760e01b1490565b60606103ad826104df565b92915050565b6103bb610b5c565b6103c6338284610bb4565b5050565b336001600160a01b03861614806103e657506103e685336109d1565b61044f5760405162461bcd60e51b815260206004820152602f60248201527f45524331313535237361666542617463685472616e7366657246726f6d3a204960448201526e272b20a624a22fa7a822a920aa27a960891b60648201526084015b60405180910390fd5b6001600160a01b0384166104be5760405162461bcd60e51b815260206004820152603060248201527f45524331313535237361666542617463685472616e7366657246726f6d3a204960448201526f13959053125117d49150d2541251539560821b6064820152608401610446565b6104ca85858585610c39565b6104d8858585855a86610e21565b5050505050565b606060036104ec83610f3e565b6040516020016104fd9291906119e7565b6040516020818303038152906040529050919050565b61051b611044565b60005b8281101561058c57816001600086868581811061053d5761053d611a8e565b905060200201602081019061055291906118e6565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558061058481611aba565b91505061051e565b50505050565b606081518351146105fa5760405162461bcd60e51b815260206004820152602c60248201527f455243313135352362616c616e63654f6642617463683a20494e56414c49445f60448201526b082a4a482b2be988a9c8ea8960a31b6064820152608401610446565b6000835167ffffffffffffffff8111156106165761061661149d565b60405190808252806020026020018201604052801561063f578160200160208202803683370190505b50905060005b84518110156106e55760008086838151811061066357610663611a8e565b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020600085838151811061069f5761069f611a8e565b60200260200101518152602001908152602001600020548282815181106106c8576106c8611a8e565b6020908102919091010152806106dd81611aba565b915050610645565b509392505050565b6106f5610b5c565b600060646107716107506040516bffffffffffffffffffffffff193360601b1660208201524460348201524260548201524860748201526000906094016040516020818303038152906040528051906020012060001c905090565b60405180604001604052806002815260200161686560f01b8152508561105b565b61077b9190611aeb565b61ffff1690506000603282106107c85760328211801561079b5750604b82105b6107c157604b821180156107af5750605f82105b6107ba5760036107cb565b60026107cb565b60016107cb565b60005b60ff169050801561058c5761058c84826001610bb4565b600454600160a01b900460ff16156108325760405162461bcd60e51b8152602060048201526013602482015272105b1c9958591e481a5b9a5d1a585b1a5e9959606a1b6044820152606401610446565b600480546001600160a01b031916339081178255600090815260016020818152604092839020805460ff1916909217909155825460ff60a01b1916600160a01b1790925580516060810190915260248082529091611c729083013980516108a1916003916020909101906112de565b50565b6108ac611044565b80516103c69060039060208401906112de565b6108c7611044565b6108d2838284610bb4565b505050565b3360008181526002602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6003805461095090611990565b80601f016020809104026020016040519081016040528092919081815260200182805461097c90611990565b80156109c95780601f1061099e576101008083540402835291602001916109c9565b820191906000526020600020905b8154815290600101906020018083116109ac57829003601f168201915b505050505081565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205460ff1690565b336001600160a01b0386161480610a1b5750610a1b85336109d1565b610a7a5760405162461bcd60e51b815260206004820152602a60248201527f4552433131353523736166655472616e7366657246726f6d3a20494e56414c49604482015269222fa7a822a920aa27a960b11b6064820152608401610446565b6001600160a01b038416610ae45760405162461bcd60e51b815260206004820152602b60248201527f4552433131353523736166655472616e7366657246726f6d3a20494e56414c4960448201526a1117d49150d2541251539560aa1b6064820152608401610446565b610af085858585611092565b6104d8858585855a8661114f565b3360009081526001602052604090205460ff16610b515760405162461bcd60e51b81526020600482015260116024820152702327a92124a22222a7102a2790212aa92760791b6044820152606401610446565b6108d2838383611262565b3360009081526001602081905260409091205460ff16151514610bb25760405162461bcd60e51b815260206004820152600e60248201526d1b9bdd08105d5d1a1bdc9a5e995960921b6044820152606401610446565b565b6001600160a01b03831660009081526020818152604080832085845290915281208054839290610be5908490611b0c565b909155505060408051838152602081018390526001600160a01b0385169160009133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6291015b60405180910390a4505050565b8051825114610ca85760405162461bcd60e51b815260206004820152603560248201527f45524331313535235f7361666542617463685472616e7366657246726f6d3a206044820152740929cac82989288be82a4a482b2a6be988a9c8ea89605b1b6064820152608401610446565b815160005b81811015610dc257828181518110610cc757610cc7611a8e565b6020026020010151600080886001600160a01b03166001600160a01b031681526020019081526020016000206000868481518110610d0757610d07611a8e565b602002602001015181526020019081526020016000206000828254610d2c9190611b24565b92505081905550828181518110610d4557610d45611a8e565b6020026020010151600080876001600160a01b03166001600160a01b031681526020019081526020016000206000868481518110610d8557610d85611a8e565b602002602001015181526020019081526020016000206000828254610daa9190611b0c565b90915550819050610dba81611aba565b915050610cad565b50836001600160a01b0316856001600160a01b0316336001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051610e12929190611b3b565b60405180910390a45050505050565b6001600160a01b0385163b15610f36576000856001600160a01b031663bc197c8184338a8989886040518763ffffffff1660e01b8152600401610e68959493929190611b60565b60206040518083038160008887f1158015610e87573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610eac9190611bbe565b90506001600160e01b0319811663bc197c8160e01b14610f345760405162461bcd60e51b815260206004820152603f60248201527f45524331313535235f63616c6c6f6e455243313135354261746368526563656960448201527f7665643a20494e56414c49445f4f4e5f524543454956455f4d455353414745006064820152608401610446565b505b505050505050565b606081610f625750506040805180820190915260018152600360fc1b602082015290565b8160005b8115610f8c5780610f7681611aba565b9150610f859050600a83611bdb565b9150610f66565b60008167ffffffffffffffff811115610fa757610fa761149d565b6040519080825280601f01601f191660200182016040528015610fd1576020820181803683370190505b5090505b841561103c57610fe6600183611b24565b9150610ff3600a86611bef565b610ffe906030611b0c565b60f81b81838151811061101357611013611a8e565b60200101906001600160f81b031916908160001a905350611035600a86611bdb565b9450610fd5565b949350505050565b6004546001600160a01b03163314610bb257600080fd5b600083838360405160200161107293929190611c03565b60408051601f198184030181529190528051602090910120949350505050565b6001600160a01b038416600090815260208181526040808320858452909152812080548392906110c3908490611b24565b90915550506001600160a01b038316600090815260208181526040808320858452909152812080548392906110f9908490611b0c565b909155505060408051838152602081018390526001600160a01b03808616929087169133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a450505050565b6001600160a01b0385163b15610f36576000856001600160a01b031663f23a6e6184338a8989886040518763ffffffff1660e01b8152600401611196959493929190611c2c565b60206040518083038160008887f11580156111b5573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906111da9190611bbe565b90506001600160e01b0319811663f23a6e6160e01b14610f345760405162461bcd60e51b815260206004820152603a60248201527f45524331313535235f63616c6c6f6e4552433131353552656365697665643a2060448201527f494e56414c49445f4f4e5f524543454956455f4d4553534147450000000000006064820152608401610446565b6001600160a01b03831660009081526020818152604080832085845290915281208054839290611293908490611b24565b909155505060408051838152602081018390526000916001600160a01b0386169133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f629101610c2c565b8280546112ea90611990565b90600052602060002090601f01602090048101928261130c5760008555611352565b82601f1061132557805160ff1916838001178555611352565b82800160010185558215611352579182015b82811115611352578251825591602001919060010190611337565b5061135e929150611362565b5090565b5b8082111561135e5760008155600101611363565b80356001600160a01b038116811461138e57600080fd5b919050565b600080604083850312156113a657600080fd5b6113af83611377565b946020939093013593505050565b6001600160e01b0319811681146108a157600080fd5b6000602082840312156113e557600080fd5b81356113f0816113bd565b9392505050565b60005b838110156114125781810151838201526020016113fa565b8381111561058c5750506000910152565b6000815180845261143b8160208601602086016113f7565b601f01601f19169290920160200192915050565b6020815260006113f06020830184611423565b60006020828403121561147457600080fd5b5035919050565b6000806040838503121561148e57600080fd5b50508035926020909101359150565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156114dc576114dc61149d565b604052919050565b600067ffffffffffffffff8211156114fe576114fe61149d565b5060051b60200190565b600082601f83011261151957600080fd5b8135602061152e611529836114e4565b6114b3565b82815260059290921b8401810191818101908684111561154d57600080fd5b8286015b848110156115685780358352918301918301611551565b509695505050505050565b600067ffffffffffffffff83111561158d5761158d61149d565b6115a0601f8401601f19166020016114b3565b90508281528383830111156115b457600080fd5b828260208301376000602084830101529392505050565b600082601f8301126115dc57600080fd5b6113f083833560208501611573565b600080600080600060a0868803121561160357600080fd5b61160c86611377565b945061161a60208701611377565b9350604086013567ffffffffffffffff8082111561163757600080fd5b61164389838a01611508565b9450606088013591508082111561165957600080fd5b61166589838a01611508565b9350608088013591508082111561167b57600080fd5b50611688888289016115cb565b9150509295509295909350565b8035801515811461138e57600080fd5b6000806000604084860312156116ba57600080fd5b833567ffffffffffffffff808211156116d257600080fd5b818601915086601f8301126116e657600080fd5b8135818111156116f557600080fd5b8760208260051b850101111561170a57600080fd5b6020928301955093506117209186019050611695565b90509250925092565b6000806040838503121561173c57600080fd5b823567ffffffffffffffff8082111561175457600080fd5b818501915085601f83011261176857600080fd5b81356020611778611529836114e4565b82815260059290921b8401810191818101908984111561179757600080fd5b948201945b838610156117bc576117ad86611377565b8252948201949082019061179c565b965050860135925050808211156117d257600080fd5b506117df85828601611508565b9150509250929050565b600081518084526020808501945080840160005b83811015611819578151875295820195908201906001016117fd565b509495945050505050565b6020815260006113f060208301846117e9565b60006020828403121561184957600080fd5b813567ffffffffffffffff81111561186057600080fd5b8201601f8101841361187157600080fd5b61103c84823560208401611573565b60008060006060848603121561189557600080fd5b61189e84611377565b95602085013595506040909401359392505050565b600080604083850312156118c657600080fd5b6118cf83611377565b91506118dd60208401611695565b90509250929050565b6000602082840312156118f857600080fd5b6113f082611377565b6000806040838503121561191457600080fd5b61191d83611377565b91506118dd60208401611377565b600080600080600060a0868803121561194357600080fd5b61194c86611377565b945061195a60208701611377565b93506040860135925060608601359150608086013567ffffffffffffffff81111561198457600080fd5b611688888289016115cb565b600181811c908216806119a457607f821691505b602082108114156119c557634e487b7160e01b600052602260045260246000fd5b50919050565b600081516119dd8185602086016113f7565b9290920192915050565b600080845481600182811c915080831680611a0357607f831692505b6020808410821415611a2357634e487b7160e01b86526022600452602486fd5b818015611a375760018114611a4857611a75565b60ff19861689528489019650611a75565b60008b81526020902060005b86811015611a6d5781548b820152908501908301611a54565b505084890196505b505050505050611a8581856119cb565b95945050505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415611ace57611ace611aa4565b5060010190565b634e487b7160e01b600052601260045260246000fd5b600061ffff80841680611b0057611b00611ad5565b92169190910692915050565b60008219821115611b1f57611b1f611aa4565b500190565b600082821015611b3657611b36611aa4565b500390565b604081526000611b4e60408301856117e9565b8281036020840152611a8581856117e9565b6001600160a01b0386811682528516602082015260a060408201819052600090611b8c908301866117e9565b8281036060840152611b9e81866117e9565b90508281036080840152611bb28185611423565b98975050505050505050565b600060208284031215611bd057600080fd5b81516113f0816113bd565b600082611bea57611bea611ad5565b500490565b600082611bfe57611bfe611ad5565b500690565b838152606060208201526000611c1c6060830185611423565b9050826040830152949350505050565b6001600160a01b03868116825285166020820152604081018490526060810183905260a060808201819052600090611c6690830184611423565b97965050505050505056fe68747470733a2f2f6170692e726174726163652e7774662f6170692f6e6962626c65732fa2646970667358221220f9786e3c761e12e58e5b28876585218d0a631239c561fd45d60f124817313f7b64736f6c634300080c0033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101365760003560e01c80638129fc1c116100b8578063a22cb4651161007c578063a22cb465146102d0578063b8e5a6d8146102e3578063cd5d2118146102eb578063e985e9c51461030e578063f242432a14610321578063f5298aca1461033457600080fd5b80638129fc1c14610265578063820270991461026d5780638da5cb5b1461028057806395d89b411461029b5780639e29dd36146102bd57600080fd5b80632eb2c2d6116100ff5780632eb2c2d6146101f95780633bb3a24d1461020c5780634576da471461021f5780634e1273f4146102325780635d1bfcf51461025257600080fd5b8062fdd58e1461013b57806301ffc9a71461018257806306fdde03146101a55780630e89341c146101d15780631b2ef1ca146101e4575b600080fd5b61016f610149366004611393565b6001600160a01b0391909116600090815260208181526040808320938352929052205490565b6040519081526020015b60405180910390f35b6101956101903660046113d3565b610347565b6040519015158152602001610179565b6040805180820190915260078152664e6962626c657360c81b60208201525b604051610179919061144f565b6101c46101df366004611462565b6103a2565b6101f76101f236600461147b565b6103b3565b005b6101f76102073660046115eb565b6103ca565b6101c461021a366004611462565b6104df565b6101f761022d3660046116a5565b610513565b610245610240366004611729565b610592565b6040516101799190611824565b6101f7610260366004611393565b6106ed565b6101f76107e2565b6101f761027b366004611837565b6108a4565b6004546040516001600160a01b039091168152602001610179565b6040805180820190915260068152654e4942424c4560d01b60208201526101c4565b6101f76102cb366004611880565b6108bf565b6101f76102de3660046118b3565b6108d7565b6101c4610943565b6101956102f93660046118e6565b60016020526000908152604090205460ff1681565b61019561031c366004611901565b6109d1565b6101f761032f36600461192b565b6109ff565b6101f7610342366004611880565b610afe565b60006001600160e01b03198216636cdb3d1360e11b141561036a57506001919050565b6001600160e01b031982166303a24d0760e21b141561038b57506001919050565b506001600160e01b0319166301ffc9a760e01b1490565b60606103ad826104df565b92915050565b6103bb610b5c565b6103c6338284610bb4565b5050565b336001600160a01b03861614806103e657506103e685336109d1565b61044f5760405162461bcd60e51b815260206004820152602f60248201527f45524331313535237361666542617463685472616e7366657246726f6d3a204960448201526e272b20a624a22fa7a822a920aa27a960891b60648201526084015b60405180910390fd5b6001600160a01b0384166104be5760405162461bcd60e51b815260206004820152603060248201527f45524331313535237361666542617463685472616e7366657246726f6d3a204960448201526f13959053125117d49150d2541251539560821b6064820152608401610446565b6104ca85858585610c39565b6104d8858585855a86610e21565b5050505050565b606060036104ec83610f3e565b6040516020016104fd9291906119e7565b6040516020818303038152906040529050919050565b61051b611044565b60005b8281101561058c57816001600086868581811061053d5761053d611a8e565b905060200201602081019061055291906118e6565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558061058481611aba565b91505061051e565b50505050565b606081518351146105fa5760405162461bcd60e51b815260206004820152602c60248201527f455243313135352362616c616e63654f6642617463683a20494e56414c49445f60448201526b082a4a482b2be988a9c8ea8960a31b6064820152608401610446565b6000835167ffffffffffffffff8111156106165761061661149d565b60405190808252806020026020018201604052801561063f578160200160208202803683370190505b50905060005b84518110156106e55760008086838151811061066357610663611a8e565b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020600085838151811061069f5761069f611a8e565b60200260200101518152602001908152602001600020548282815181106106c8576106c8611a8e565b6020908102919091010152806106dd81611aba565b915050610645565b509392505050565b6106f5610b5c565b600060646107716107506040516bffffffffffffffffffffffff193360601b1660208201524460348201524260548201524860748201526000906094016040516020818303038152906040528051906020012060001c905090565b60405180604001604052806002815260200161686560f01b8152508561105b565b61077b9190611aeb565b61ffff1690506000603282106107c85760328211801561079b5750604b82105b6107c157604b821180156107af5750605f82105b6107ba5760036107cb565b60026107cb565b60016107cb565b60005b60ff169050801561058c5761058c84826001610bb4565b600454600160a01b900460ff16156108325760405162461bcd60e51b8152602060048201526013602482015272105b1c9958591e481a5b9a5d1a585b1a5e9959606a1b6044820152606401610446565b600480546001600160a01b031916339081178255600090815260016020818152604092839020805460ff1916909217909155825460ff60a01b1916600160a01b1790925580516060810190915260248082529091611c729083013980516108a1916003916020909101906112de565b50565b6108ac611044565b80516103c69060039060208401906112de565b6108c7611044565b6108d2838284610bb4565b505050565b3360008181526002602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6003805461095090611990565b80601f016020809104026020016040519081016040528092919081815260200182805461097c90611990565b80156109c95780601f1061099e576101008083540402835291602001916109c9565b820191906000526020600020905b8154815290600101906020018083116109ac57829003601f168201915b505050505081565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205460ff1690565b336001600160a01b0386161480610a1b5750610a1b85336109d1565b610a7a5760405162461bcd60e51b815260206004820152602a60248201527f4552433131353523736166655472616e7366657246726f6d3a20494e56414c49604482015269222fa7a822a920aa27a960b11b6064820152608401610446565b6001600160a01b038416610ae45760405162461bcd60e51b815260206004820152602b60248201527f4552433131353523736166655472616e7366657246726f6d3a20494e56414c4960448201526a1117d49150d2541251539560aa1b6064820152608401610446565b610af085858585611092565b6104d8858585855a8661114f565b3360009081526001602052604090205460ff16610b515760405162461bcd60e51b81526020600482015260116024820152702327a92124a22222a7102a2790212aa92760791b6044820152606401610446565b6108d2838383611262565b3360009081526001602081905260409091205460ff16151514610bb25760405162461bcd60e51b815260206004820152600e60248201526d1b9bdd08105d5d1a1bdc9a5e995960921b6044820152606401610446565b565b6001600160a01b03831660009081526020818152604080832085845290915281208054839290610be5908490611b0c565b909155505060408051838152602081018390526001600160a01b0385169160009133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6291015b60405180910390a4505050565b8051825114610ca85760405162461bcd60e51b815260206004820152603560248201527f45524331313535235f7361666542617463685472616e7366657246726f6d3a206044820152740929cac82989288be82a4a482b2a6be988a9c8ea89605b1b6064820152608401610446565b815160005b81811015610dc257828181518110610cc757610cc7611a8e565b6020026020010151600080886001600160a01b03166001600160a01b031681526020019081526020016000206000868481518110610d0757610d07611a8e565b602002602001015181526020019081526020016000206000828254610d2c9190611b24565b92505081905550828181518110610d4557610d45611a8e565b6020026020010151600080876001600160a01b03166001600160a01b031681526020019081526020016000206000868481518110610d8557610d85611a8e565b602002602001015181526020019081526020016000206000828254610daa9190611b0c565b90915550819050610dba81611aba565b915050610cad565b50836001600160a01b0316856001600160a01b0316336001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051610e12929190611b3b565b60405180910390a45050505050565b6001600160a01b0385163b15610f36576000856001600160a01b031663bc197c8184338a8989886040518763ffffffff1660e01b8152600401610e68959493929190611b60565b60206040518083038160008887f1158015610e87573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610eac9190611bbe565b90506001600160e01b0319811663bc197c8160e01b14610f345760405162461bcd60e51b815260206004820152603f60248201527f45524331313535235f63616c6c6f6e455243313135354261746368526563656960448201527f7665643a20494e56414c49445f4f4e5f524543454956455f4d455353414745006064820152608401610446565b505b505050505050565b606081610f625750506040805180820190915260018152600360fc1b602082015290565b8160005b8115610f8c5780610f7681611aba565b9150610f859050600a83611bdb565b9150610f66565b60008167ffffffffffffffff811115610fa757610fa761149d565b6040519080825280601f01601f191660200182016040528015610fd1576020820181803683370190505b5090505b841561103c57610fe6600183611b24565b9150610ff3600a86611bef565b610ffe906030611b0c565b60f81b81838151811061101357611013611a8e565b60200101906001600160f81b031916908160001a905350611035600a86611bdb565b9450610fd5565b949350505050565b6004546001600160a01b03163314610bb257600080fd5b600083838360405160200161107293929190611c03565b60408051601f198184030181529190528051602090910120949350505050565b6001600160a01b038416600090815260208181526040808320858452909152812080548392906110c3908490611b24565b90915550506001600160a01b038316600090815260208181526040808320858452909152812080548392906110f9908490611b0c565b909155505060408051838152602081018390526001600160a01b03808616929087169133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a450505050565b6001600160a01b0385163b15610f36576000856001600160a01b031663f23a6e6184338a8989886040518763ffffffff1660e01b8152600401611196959493929190611c2c565b60206040518083038160008887f11580156111b5573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906111da9190611bbe565b90506001600160e01b0319811663f23a6e6160e01b14610f345760405162461bcd60e51b815260206004820152603a60248201527f45524331313535235f63616c6c6f6e4552433131353552656365697665643a2060448201527f494e56414c49445f4f4e5f524543454956455f4d4553534147450000000000006064820152608401610446565b6001600160a01b03831660009081526020818152604080832085845290915281208054839290611293908490611b24565b909155505060408051838152602081018390526000916001600160a01b0386169133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f629101610c2c565b8280546112ea90611990565b90600052602060002090601f01602090048101928261130c5760008555611352565b82601f1061132557805160ff1916838001178555611352565b82800160010185558215611352579182015b82811115611352578251825591602001919060010190611337565b5061135e929150611362565b5090565b5b8082111561135e5760008155600101611363565b80356001600160a01b038116811461138e57600080fd5b919050565b600080604083850312156113a657600080fd5b6113af83611377565b946020939093013593505050565b6001600160e01b0319811681146108a157600080fd5b6000602082840312156113e557600080fd5b81356113f0816113bd565b9392505050565b60005b838110156114125781810151838201526020016113fa565b8381111561058c5750506000910152565b6000815180845261143b8160208601602086016113f7565b601f01601f19169290920160200192915050565b6020815260006113f06020830184611423565b60006020828403121561147457600080fd5b5035919050565b6000806040838503121561148e57600080fd5b50508035926020909101359150565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156114dc576114dc61149d565b604052919050565b600067ffffffffffffffff8211156114fe576114fe61149d565b5060051b60200190565b600082601f83011261151957600080fd5b8135602061152e611529836114e4565b6114b3565b82815260059290921b8401810191818101908684111561154d57600080fd5b8286015b848110156115685780358352918301918301611551565b509695505050505050565b600067ffffffffffffffff83111561158d5761158d61149d565b6115a0601f8401601f19166020016114b3565b90508281528383830111156115b457600080fd5b828260208301376000602084830101529392505050565b600082601f8301126115dc57600080fd5b6113f083833560208501611573565b600080600080600060a0868803121561160357600080fd5b61160c86611377565b945061161a60208701611377565b9350604086013567ffffffffffffffff8082111561163757600080fd5b61164389838a01611508565b9450606088013591508082111561165957600080fd5b61166589838a01611508565b9350608088013591508082111561167b57600080fd5b50611688888289016115cb565b9150509295509295909350565b8035801515811461138e57600080fd5b6000806000604084860312156116ba57600080fd5b833567ffffffffffffffff808211156116d257600080fd5b818601915086601f8301126116e657600080fd5b8135818111156116f557600080fd5b8760208260051b850101111561170a57600080fd5b6020928301955093506117209186019050611695565b90509250925092565b6000806040838503121561173c57600080fd5b823567ffffffffffffffff8082111561175457600080fd5b818501915085601f83011261176857600080fd5b81356020611778611529836114e4565b82815260059290921b8401810191818101908984111561179757600080fd5b948201945b838610156117bc576117ad86611377565b8252948201949082019061179c565b965050860135925050808211156117d257600080fd5b506117df85828601611508565b9150509250929050565b600081518084526020808501945080840160005b83811015611819578151875295820195908201906001016117fd565b509495945050505050565b6020815260006113f060208301846117e9565b60006020828403121561184957600080fd5b813567ffffffffffffffff81111561186057600080fd5b8201601f8101841361187157600080fd5b61103c84823560208401611573565b60008060006060848603121561189557600080fd5b61189e84611377565b95602085013595506040909401359392505050565b600080604083850312156118c657600080fd5b6118cf83611377565b91506118dd60208401611695565b90509250929050565b6000602082840312156118f857600080fd5b6113f082611377565b6000806040838503121561191457600080fd5b61191d83611377565b91506118dd60208401611377565b600080600080600060a0868803121561194357600080fd5b61194c86611377565b945061195a60208701611377565b93506040860135925060608601359150608086013567ffffffffffffffff81111561198457600080fd5b611688888289016115cb565b600181811c908216806119a457607f821691505b602082108114156119c557634e487b7160e01b600052602260045260246000fd5b50919050565b600081516119dd8185602086016113f7565b9290920192915050565b600080845481600182811c915080831680611a0357607f831692505b6020808410821415611a2357634e487b7160e01b86526022600452602486fd5b818015611a375760018114611a4857611a75565b60ff19861689528489019650611a75565b60008b81526020902060005b86811015611a6d5781548b820152908501908301611a54565b505084890196505b505050505050611a8581856119cb565b95945050505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415611ace57611ace611aa4565b5060010190565b634e487b7160e01b600052601260045260246000fd5b600061ffff80841680611b0057611b00611ad5565b92169190910692915050565b60008219821115611b1f57611b1f611aa4565b500190565b600082821015611b3657611b36611aa4565b500390565b604081526000611b4e60408301856117e9565b8281036020840152611a8581856117e9565b6001600160a01b0386811682528516602082015260a060408201819052600090611b8c908301866117e9565b8281036060840152611b9e81866117e9565b90508281036080840152611bb28185611423565b98975050505050505050565b600060208284031215611bd057600080fd5b81516113f0816113bd565b600082611bea57611bea611ad5565b500490565b600082611bfe57611bfe611ad5565b500690565b838152606060208201526000611c1c6060830185611423565b9050826040830152949350505050565b6001600160a01b03868116825285166020820152604081018490526060810183905260a060808201819052600090611c6690830184611423565b97965050505050505056fe68747470733a2f2f6170692e726174726163652e7774662f6170692f6e6962626c65732fa2646970667358221220f9786e3c761e12e58e5b28876585218d0a631239c561fd45d60f124817313f7b64736f6c634300080c0033

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.