ETH Price: $2,036.17 (+4.36%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Set Registry243953592026-02-06 4:20:1112 hrs ago1770351611IN
0x92e6E43f...7eb966ee2
0 ETH0.000056770.40471683
Set To Expire243937662026-02-05 22:59:5918 hrs ago1770332399IN
0x92e6E43f...7eb966ee2
0 ETH0.000113843.71136545
Set Registry243908692026-02-05 13:16:4727 hrs ago1770297407IN
0x92e6E43f...7eb966ee2
0 ETH0.000310572.21395786
Set Registry243889692026-02-05 6:53:2334 hrs ago1770274403IN
0x92e6E43f...7eb966ee2
0 ETH0.000026860.19154166
Set Registry243858082026-02-04 20:16:3544 hrs ago1770236195IN
0x92e6E43f...7eb966ee2
0 ETH0.000069750.49724203
Set Registry243825732026-02-04 9:24:472 days ago1770197087IN
0x92e6E43f...7eb966ee2
0 ETH0.00002180.15544554
Set To Expire243822022026-02-04 8:09:592 days ago1770192599IN
0x92e6E43f...7eb966ee2
0 ETH0.000065722.14274161
Set Registry243810882026-02-04 4:25:472 days ago1770179147IN
0x92e6E43f...7eb966ee2
0 ETH0.000004050.10414803
Set Registry243786002026-02-03 20:05:472 days ago1770149147IN
0x92e6E43f...7eb966ee2
0 ETH0.000366272.6110175
Set Registry243759302026-02-03 11:08:233 days ago1770116903IN
0x92e6E43f...7eb966ee2
0 ETH0.000016450.11731011
Set Registry243753812026-02-03 9:17:113 days ago1770110231IN
0x92e6E43f...7eb966ee2
0 ETH0.000051310.36577248
Set Registry243736932026-02-03 3:38:113 days ago1770089891IN
0x92e6E43f...7eb966ee2
0 ETH0.000295122.10380323
Set Registry243709542026-02-02 18:25:593 days ago1770056759IN
0x92e6E43f...7eb966ee2
0 ETH0.000302872.15904065
Set Registry243696122026-02-02 13:56:354 days ago1770040595IN
0x92e6E43f...7eb966ee2
0 ETH0.000374272.66805361
Set Registry243687152026-02-02 10:55:594 days ago1770029759IN
0x92e6E43f...7eb966ee2
0 ETH0.000042620.30385768
Set Registry243686302026-02-02 10:38:594 days ago1770028739IN
0x92e6E43f...7eb966ee2
0 ETH0.00004470.31868927
Set To Expire243672082026-02-02 5:53:114 days ago1770011591IN
0x92e6E43f...7eb966ee2
0 ETH0.000003680.12000334
Set To Expire243643092026-02-01 20:09:594 days ago1769976599IN
0x92e6E43f...7eb966ee2
0 ETH0.00000420.16101742
Set To Expire243643082026-02-01 20:09:474 days ago1769976587IN
0x92e6E43f...7eb966ee2
0 ETH0.000005250.17117536
Set Registry243640912026-02-01 19:25:594 days ago1769973959IN
0x92e6E43f...7eb966ee2
0 ETH0.000207882.84708728
Set To Expire243640862026-02-01 19:24:594 days ago1769973899IN
0x92e6E43f...7eb966ee2
0 ETH0.000094553.30925972
Set Registry243640462026-02-01 19:16:594 days ago1769973419IN
0x92e6E43f...7eb966ee2
0 ETH0.00040682.89990615
Set Registry243640162026-02-01 19:10:474 days ago1769973047IN
0x92e6E43f...7eb966ee2
0 ETH0.000041560.29632908
Set Registry243638552026-02-01 18:38:354 days ago1769971115IN
0x92e6E43f...7eb966ee2
0 ETH0.000332032.36690982
Set Registry243633352026-02-01 16:53:475 days ago1769964827IN
0x92e6E43f...7eb966ee2
0 ETH0.000158761.13173137
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
AddressRegistry

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
// SPDX-License-Identifier: MIT
// Votium Address Registry

pragma solidity ^0.8.0;

import "./Ownable.sol";

contract AddressRegistry is Ownable {
  struct Registry {
    uint256 start;      // when first registering, there is a delay until the next vlCVX voting epoch starts
    address to;         // forward rewards to alternate address OR 0x0 address for OPT OUT of rewards
    uint256 expiration; // when ending an active registration, expiration is set to the next vlCVX voting epoch
                        // an active registration cannot be changed until after it is expired (one vote round delay when changing active registration)
  }
  mapping(address => Registry) public registry;

  mapping(address => bool) public inOptOutHistory;
  mapping(address => bool) public inForwardHistory;
  address[] public optOutHistory;
  address[] public forwardHistory;

  // address changes do not take effect until the next vote starts
  uint256 public constant eDuration = 86400 * 14;


  // Set forwarding address or OPT OUT of rewards by setting to 0x0 address
  // Registration is active until setToExpire() is called, and then remains active until the next reward period
  function setRegistry(address _to) public {
    uint256 current = currentEpoch();
    require(registry[msg.sender].start == 0 || registry[msg.sender].expiration <= current,"Registration is still active");
    registry[msg.sender].start = current+eDuration;
    registry[msg.sender].to = _to;
    registry[msg.sender].expiration = 0xfffffffff;
    if(_to == address(0)) {
      // prevent duplicate entry in optOutHistory array
      if(!inOptOutHistory[msg.sender]) {
        optOutHistory.push(msg.sender);
        inOptOutHistory[msg.sender] = true;
      }
    } else if(!inForwardHistory[msg.sender]) {
        forwardHistory.push(msg.sender);
        inForwardHistory[msg.sender] = true;
    }
    emit setReg(msg.sender, _to, registry[msg.sender].start);
  }

  // Sets a registration to expire on the following epoch (cannot change registration during an epoch)
  function setToExpire() public {
    uint256 next = nextEpoch();
    require(registry[msg.sender].start > 0 && registry[msg.sender].expiration > next,"Not registered or expiration already pending");
    // if not started yet, nullify instead of setting expiration
    if(next == registry[msg.sender].start) {
      registry[msg.sender].start = 0;
      registry[msg.sender].to = address(0);
    } else {
      registry[msg.sender].expiration = next;
    }
    emit expReg(msg.sender, next);
  }

  // supply an array of addresses, returns their destination (same address for no change, 0x0 for opt-out, different address for forwarding)
  function batchAddressCheck(address[] memory accounts) external view returns (address[] memory) {
    uint256 current = currentEpoch();
    for(uint256 i=0; i<accounts.length; i++) {
      // if registration active return "to", otherwise return checked address (no forwarding)
      if(registry[accounts[i]].start <= current && registry[accounts[i]].start != 0 && registry[accounts[i]].expiration > current) {
        accounts[i] = registry[accounts[i]].to;
      }
    }
    return accounts;
  }

  // length of optOutHistory - needed for retrieving paginated results from optOutPage()
  function optOutLength() public view returns (uint256) {
    return optOutHistory.length;
  }

  // returns list of actively opted-out addresses using pagination
  function optOutPage(uint256 size, uint256 page) public view returns (address[] memory) {
    page = size*page;
    uint256 current = currentEpoch();
    uint256 n = 0;
    for(uint256 i=page; i<optOutHistory.length; i++) {
      if(registry[optOutHistory[i]].start <= current && registry[optOutHistory[i]].expiration > current && registry[optOutHistory[i]].to == address(0)) {
        n++;
        if(n == size) { break; }
      }
    }
    address[] memory optOuts = new address[](n);
    n = 0;
    for(uint256 i=page; i<optOutHistory.length; i++) {
      if(registry[optOutHistory[i]].start <= current && registry[optOutHistory[i]].expiration > current && registry[optOutHistory[i]].to == address(0)) {
        optOuts[n] = optOutHistory[i];
        n++;
        if(n == size) { break; }
      }
    }
    return optOuts;
  }

  // length of forwardHistory - needed for retrieving paginated results from forwardPage()
  function forwardLength() public view returns (uint256) {
    return forwardHistory.length;
  }

  // returns list of actively opted-out addresses using pagination
  function forwardPage(uint256 size, uint256 page) public view returns (address[] memory) {
    page = size*page;
    uint256 current = currentEpoch();
    uint256 n = 0;
    for(uint256 i=page; i<forwardHistory.length; i++) {
      if(registry[forwardHistory[i]].start <= current && registry[forwardHistory[i]].expiration > current && registry[forwardHistory[i]].to != address(0)) {
        n++;
        if(n == size) { break; }
      }
    }
    address[] memory forwards = new address[](n*2);
    n = 0;
    for(uint256 i=page; i<forwardHistory.length; i++) {
      if(registry[forwardHistory[i]].start <= current && registry[forwardHistory[i]].expiration > current && registry[forwardHistory[i]].to != address(0)) {
        forwards[n] = forwardHistory[i];
        forwards[n+1] = registry[forwardHistory[i]].to;
        n+=2;
        if(n == size*2) { break; }
      }
    }
    return forwards;
  }

  // returns start of current Epoch
  function currentEpoch() public view returns (uint256) {
    return block.timestamp/eDuration*eDuration;
  }

  // returns start of next Epoch
  function nextEpoch() public view returns (uint256) {
    return block.timestamp/eDuration*eDuration+eDuration;
  }

  // only used for rescuing mistakenly sent funds or other unexpected needs
  function execute(address _to, uint256 _value, bytes calldata _data) external onlyOwner returns (bool, bytes memory) {
    (bool success, bytes memory result) = _to.call{value:_value}(_data);
    return (success, result);
  }

  // multi-sig functions for edge cases
  function forceRegistry(address _from, address _to) public onlyOwner {
    uint256 current = currentEpoch();
    require(registry[_from].start == 0 || registry[_from].expiration < current,"Registration is still active");
    registry[_from].start = current+eDuration;
    registry[_from].to = _to;
    registry[_from].expiration = 0xfffffffff;
    if(_to == address(0)) {
      // prevent duplicate entry in optOutHistory array
      if(!inOptOutHistory[_from]) {
        optOutHistory.push(_from);
        inOptOutHistory[_from] = true;
      }
    } else if(!inForwardHistory[_from]) {
        forwardHistory.push(_from);
        inForwardHistory[_from] = true;
    }
    emit setReg(_from, _to, registry[_from].start);
  }

  function forceToExpire(address _from) public onlyOwner {
    uint256 next = nextEpoch();
    require(registry[_from].start > 0 && registry[_from].expiration > next,"Not registered or expiration already pending");
    // if not started yet, nullify instead of setting expiration
    if(next == registry[_from].start) {
      registry[_from].start = 0;
      registry[_from].to = address(0);
    } else {
      registry[_from].expiration = next;
    }
    emit expReg(_from, next);
  }

  event setReg(address indexed _from, address indexed _to, uint256 indexed _start);
  event expReg(address indexed _from, uint256 indexed _end);

}

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

import "@openzeppelin/contracts/utils/Context.sol";
/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {

	  address private _owner = 0xe39b8617D571CEe5e75e1EC6B2bb40DdC8CF6Fa3; // Votium multi-sig address

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


    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual 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 Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

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

Contract Security Audit

Contract ABI

API
[{"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":"uint256","name":"_end","type":"uint256"}],"name":"expReg","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":true,"internalType":"address","name":"_to","type":"address"},{"indexed":true,"internalType":"uint256","name":"_start","type":"uint256"}],"name":"setReg","type":"event"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"}],"name":"batchAddressCheck","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentEpoch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"eDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"execute","outputs":[{"internalType":"bool","name":"","type":"bool"},{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"}],"name":"forceRegistry","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"}],"name":"forceToExpire","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"forwardHistory","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"forwardLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"size","type":"uint256"},{"internalType":"uint256","name":"page","type":"uint256"}],"name":"forwardPage","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"inForwardHistory","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"inOptOutHistory","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nextEpoch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"optOutHistory","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"optOutLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"size","type":"uint256"},{"internalType":"uint256","name":"page","type":"uint256"}],"name":"optOutPage","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"registry","outputs":[{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"expiration","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"}],"name":"setRegistry","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setToExpire","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

6080604052600080546001600160a01b03191673e39b8617d571cee5e75e1ec6b2bb40ddc8cf6fa317905534801561003657600080fd5b5061183c806100466000396000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c8063a91ee0dc116100ad578063bec5cd7d11610071578063bec5cd7d146102d3578063da6491f9146102e6578063f2fde38b146102f9578063fdab2c9e1461030c578063ffdb68071461031657600080fd5b8063a91ee0dc1461026c578063aea0e78b1461027f578063b16d58ff14610287578063b61d27f6146102aa578063be3c0457146102cb57600080fd5b8063712e51a8116100f4578063712e51a81461021657806376671808146102365780638da5cb5b1461023e57806396d0fdda1461024f578063a7e4e5541461025957600080fd5b8063038defd71461013157806306972dcf1461019357806336277c70146101a5578063472a3279146101d05780636ce17bac146101e3575b600080fd5b61016b61013f366004611430565b60016020819052600091825260409091208054918101546002909101546001600160a01b039091169083565b604080519384526001600160a01b039092166020840152908201526060015b60405180910390f35b6004545b60405190815260200161018a565b6101b86101b33660046115d8565b610329565b6040516001600160a01b03909116815260200161018a565b6101b86101de3660046115d8565b610353565b6102066101f1366004611430565b60036020526000908152604090205460ff1681565b604051901515815260200161018a565b61022961022436600461150c565b610363565b60405161018a9190611623565b610197610503565b6000546001600160a01b03166101b8565b610257610522565b005b6102296102673660046115f1565b610608565b61025761027a366004611430565b6109ae565b610197610bbb565b610206610295366004611430565b60026020526000908152604090205460ff1681565b6102bd6102b8366004611485565b610be0565b60405161018a929190611670565b600554610197565b6102576102e1366004611430565b610c7e565b6102576102f4366004611452565b610dbc565b610257610307366004611430565b61102b565b6101976212750081565b6102296103243660046115f1565b611115565b6004818154811061033957600080fd5b6000918252602090912001546001600160a01b0316905081565b6005818154811061033957600080fd5b6060600061036f610503565b905060005b83518110156104fb578160016000868481518110610394576103946117da565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060000154111580156104105750600160008583815181106103df576103df6117da565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060000154600014155b801561045c5750816001600086848151811061042e5761042e6117da565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060020154115b156104e95760016000858381518110610477576104776117da565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060010160009054906101000a90046001600160a01b03168482815181106104c8576104c86117da565b60200260200101906001600160a01b031690816001600160a01b0316815250505b806104f3816117a9565b915050610374565b509192915050565b6000621275006105138142611768565b61051d919061178a565b905090565b600061052c610bbb565b336000908152600160205260409020549091501580159061055e57503360009081526001602052604090206002015481105b6105835760405162461bcd60e51b815260040161057a906116cf565b60405180910390fd5b336000908152600160205260409020548114156105c25733600090815260016020819052604082209182550180546001600160a01b03191690556105d8565b3360009081526001602052604090206002018190555b604051819033907f50434fd14c182d9704caecbf26061337d70eabc7f5ce8b8216fefcaf9644bcb990600090a350565b6060610614828461178a565b91506000610620610503565b90506000835b60055481101561074357826001600060058481548110610648576106486117da565b60009182526020808320909101546001600160a01b03168352820192909252604001902054118015906106b8575082600160006005848154811061068e5761068e6117da565b60009182526020808320909101546001600160a01b03168352820192909252604001902060020154115b8015610712575060006001600160a01b031660016000600584815481106106e1576106e16117da565b60009182526020808320909101546001600160a01b0390811684529083019390935260409091019020600101541614155b156107315781610721816117a9565b9250508582141561073157610743565b8061073b816117a9565b915050610626565b50600061075182600261178a565b67ffffffffffffffff811115610769576107696117f0565b604051908082528060200260200182016040528015610792578160200160208202803683370190505b50600092509050845b6005548110156109a4578360016000600584815481106107bd576107bd6117da565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180159061082d5750836001600060058481548110610803576108036117da565b60009182526020808320909101546001600160a01b03168352820192909252604001902060020154115b8015610887575060006001600160a01b03166001600060058481548110610856576108566117da565b60009182526020808320909101546001600160a01b0390811684529083019390935260409091019020600101541614155b15610992576005818154811061089f5761089f6117da565b9060005260206000200160009054906101000a90046001600160a01b03168284815181106108cf576108cf6117da565b60200260200101906001600160a01b031690816001600160a01b0316815250506001600060058381548110610906576109066117da565b60009182526020808320909101546001600160a01b0390811684529083019390935260409091019020600190810154909116908390610946908690611750565b81518110610956576109566117da565b6001600160a01b0390921660209283029190910190910152610979600284611750565b925061098687600261178a565b831415610992576109a4565b8061099c816117a9565b91505061079b565b5095945050505050565b60006109b8610503565b3360009081526001602052604090205490915015806109e95750336000908152600160205260409020600201548110155b610a355760405162461bcd60e51b815260206004820152601c60248201527f526567697374726174696f6e206973207374696c6c2061637469766500000000604482015260640161057a565b610a426212750082611750565b336000908152600160208190526040909120918255810180546001600160a01b0319166001600160a01b038516908117909155640fffffffff600290920191909155610aff573360009081526002602052604090205460ff16610afa576004805460018181019092557f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180546001600160a01b031916339081179091556000908152600260205260409020805460ff191690911790555b610b71565b3360009081526003602052604090205460ff16610b71576005805460018181019092557f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00180546001600160a01b031916339081179091556000908152600360205260409020805460ff191690911790555b3360008181526001602052604080822054905190926001600160a01b0386169290917f0dfbe4205bf572b05cf72c984669443144075eddc3672b24fca440052b4ed8b59190a45050565b60006212750080610bcc8142611768565b610bd6919061178a565b61051d9190611750565b600080546060906001600160a01b03163314610c0e5760405162461bcd60e51b815260040161057a9061171b565b600080876001600160a01b0316878787604051610c2c929190611613565b60006040518083038185875af1925050503d8060008114610c69576040519150601f19603f3d011682016040523d82523d6000602084013e610c6e565b606091505b5090999098509650505050505050565b6000546001600160a01b03163314610ca85760405162461bcd60e51b815260040161057a9061171b565b6000610cb2610bbb565b6001600160a01b03831660009081526001602052604090205490915015801590610cf657506001600160a01b03821660009081526001602052604090206002015481105b610d125760405162461bcd60e51b815260040161057a906116cf565b6001600160a01b038216600090815260016020526040902054811415610d63576001600160a01b038216600090815260016020819052604082209182550180546001600160a01b0319169055610d82565b6001600160a01b03821660009081526001602052604090206002018190555b60405181906001600160a01b038416907f50434fd14c182d9704caecbf26061337d70eabc7f5ce8b8216fefcaf9644bcb990600090a35050565b6000546001600160a01b03163314610de65760405162461bcd60e51b815260040161057a9061171b565b6000610df0610503565b6001600160a01b0384166000908152600160205260409020549091501580610e3257506001600160a01b03831660009081526001602052604090206002015481115b610e7e5760405162461bcd60e51b815260206004820152601c60248201527f526567697374726174696f6e206973207374696c6c2061637469766500000000604482015260640161057a565b610e8b6212750082611750565b6001600160a01b038481166000908152600160208190526040909120928355820180546001600160a01b0319169185169182179055640fffffffff600290920191909155610f5c576001600160a01b03831660009081526002602052604090205460ff16610f57576004805460018082019092557f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180546001600160a01b0319166001600160a01b0386169081179091556000908152600260205260409020805460ff191690911790555b610fe0565b6001600160a01b03831660009081526003602052604090205460ff16610fe0576005805460018082019092557f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00180546001600160a01b0319166001600160a01b0386169081179091556000908152600360205260409020805460ff191690911790555b6001600160a01b038084166000818152600160205260408082205490519093861692917f0dfbe4205bf572b05cf72c984669443144075eddc3672b24fca440052b4ed8b591a4505050565b6000546001600160a01b031633146110555760405162461bcd60e51b815260040161057a9061171b565b6001600160a01b0381166110ba5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161057a565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6060611121828461178a565b9150600061112d610503565b90506000835b60045481101561124f57826001600060048481548110611155576111556117da565b60009182526020808320909101546001600160a01b03168352820192909252604001902054118015906111c5575082600160006004848154811061119b5761119b6117da565b60009182526020808320909101546001600160a01b03168352820192909252604001902060020154115b801561121e575060006001600160a01b031660016000600484815481106111ee576111ee6117da565b60009182526020808320909101546001600160a01b03908116845290830193909352604090910190206001015416145b1561123d578161122d816117a9565b9250508582141561123d5761124f565b80611247816117a9565b915050611133565b5060008167ffffffffffffffff81111561126b5761126b6117f0565b604051908082528060200260200182016040528015611294578160200160208202803683370190505b50600092509050845b6004548110156109a4578360016000600484815481106112bf576112bf6117da565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180159061132f5750836001600060048481548110611305576113056117da565b60009182526020808320909101546001600160a01b03168352820192909252604001902060020154115b8015611388575060006001600160a01b03166001600060048481548110611358576113586117da565b60009182526020808320909101546001600160a01b03908116845290830193909352604090910190206001015416145b1561140257600481815481106113a0576113a06117da565b9060005260206000200160009054906101000a90046001600160a01b03168284815181106113d0576113d06117da565b6001600160a01b0390921660209283029190910190910152826113f2816117a9565b93505086831415611402576109a4565b8061140c816117a9565b91505061129d565b80356001600160a01b038116811461142b57600080fd5b919050565b60006020828403121561144257600080fd5b61144b82611414565b9392505050565b6000806040838503121561146557600080fd5b61146e83611414565b915061147c60208401611414565b90509250929050565b6000806000806060858703121561149b57600080fd5b6114a485611414565b935060208501359250604085013567ffffffffffffffff808211156114c857600080fd5b818701915087601f8301126114dc57600080fd5b8135818111156114eb57600080fd5b8860208285010111156114fd57600080fd5b95989497505060200194505050565b6000602080838503121561151f57600080fd5b823567ffffffffffffffff8082111561153757600080fd5b818501915085601f83011261154b57600080fd5b81358181111561155d5761155d6117f0565b8060051b604051601f19603f83011681018181108582111715611582576115826117f0565b604052828152858101935084860182860187018a10156115a157600080fd5b600095505b838610156115cb576115b781611414565b8552600195909501949386019386016115a6565b5098975050505050505050565b6000602082840312156115ea57600080fd5b5035919050565b6000806040838503121561160457600080fd5b50508035926020909101359150565b8183823760009101908152919050565b6020808252825182820181905260009190848201906040850190845b818110156116645783516001600160a01b03168352928401929184019160010161163f565b50909695505050505050565b821515815260006020604081840152835180604085015260005b818110156116a65785810183015185820160600152820161168a565b818111156116b8576000606083870101525b50601f01601f191692909201606001949350505050565b6020808252602c908201527f4e6f742072656769737465726564206f722065787069726174696f6e20616c7260408201526b656164792070656e64696e6760a01b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60008219821115611763576117636117c4565b500190565b60008261178557634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156117a4576117a46117c4565b500290565b60006000198214156117bd576117bd6117c4565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fdfea2646970667358221220ad12feede3bc688e7d7c0e2d68d91f62073443b970fcd9a8c8fb0bd8f6c2652b64736f6c63430008070033

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061012c5760003560e01c8063a91ee0dc116100ad578063bec5cd7d11610071578063bec5cd7d146102d3578063da6491f9146102e6578063f2fde38b146102f9578063fdab2c9e1461030c578063ffdb68071461031657600080fd5b8063a91ee0dc1461026c578063aea0e78b1461027f578063b16d58ff14610287578063b61d27f6146102aa578063be3c0457146102cb57600080fd5b8063712e51a8116100f4578063712e51a81461021657806376671808146102365780638da5cb5b1461023e57806396d0fdda1461024f578063a7e4e5541461025957600080fd5b8063038defd71461013157806306972dcf1461019357806336277c70146101a5578063472a3279146101d05780636ce17bac146101e3575b600080fd5b61016b61013f366004611430565b60016020819052600091825260409091208054918101546002909101546001600160a01b039091169083565b604080519384526001600160a01b039092166020840152908201526060015b60405180910390f35b6004545b60405190815260200161018a565b6101b86101b33660046115d8565b610329565b6040516001600160a01b03909116815260200161018a565b6101b86101de3660046115d8565b610353565b6102066101f1366004611430565b60036020526000908152604090205460ff1681565b604051901515815260200161018a565b61022961022436600461150c565b610363565b60405161018a9190611623565b610197610503565b6000546001600160a01b03166101b8565b610257610522565b005b6102296102673660046115f1565b610608565b61025761027a366004611430565b6109ae565b610197610bbb565b610206610295366004611430565b60026020526000908152604090205460ff1681565b6102bd6102b8366004611485565b610be0565b60405161018a929190611670565b600554610197565b6102576102e1366004611430565b610c7e565b6102576102f4366004611452565b610dbc565b610257610307366004611430565b61102b565b6101976212750081565b6102296103243660046115f1565b611115565b6004818154811061033957600080fd5b6000918252602090912001546001600160a01b0316905081565b6005818154811061033957600080fd5b6060600061036f610503565b905060005b83518110156104fb578160016000868481518110610394576103946117da565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060000154111580156104105750600160008583815181106103df576103df6117da565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060000154600014155b801561045c5750816001600086848151811061042e5761042e6117da565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060020154115b156104e95760016000858381518110610477576104776117da565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060010160009054906101000a90046001600160a01b03168482815181106104c8576104c86117da565b60200260200101906001600160a01b031690816001600160a01b0316815250505b806104f3816117a9565b915050610374565b509192915050565b6000621275006105138142611768565b61051d919061178a565b905090565b600061052c610bbb565b336000908152600160205260409020549091501580159061055e57503360009081526001602052604090206002015481105b6105835760405162461bcd60e51b815260040161057a906116cf565b60405180910390fd5b336000908152600160205260409020548114156105c25733600090815260016020819052604082209182550180546001600160a01b03191690556105d8565b3360009081526001602052604090206002018190555b604051819033907f50434fd14c182d9704caecbf26061337d70eabc7f5ce8b8216fefcaf9644bcb990600090a350565b6060610614828461178a565b91506000610620610503565b90506000835b60055481101561074357826001600060058481548110610648576106486117da565b60009182526020808320909101546001600160a01b03168352820192909252604001902054118015906106b8575082600160006005848154811061068e5761068e6117da565b60009182526020808320909101546001600160a01b03168352820192909252604001902060020154115b8015610712575060006001600160a01b031660016000600584815481106106e1576106e16117da565b60009182526020808320909101546001600160a01b0390811684529083019390935260409091019020600101541614155b156107315781610721816117a9565b9250508582141561073157610743565b8061073b816117a9565b915050610626565b50600061075182600261178a565b67ffffffffffffffff811115610769576107696117f0565b604051908082528060200260200182016040528015610792578160200160208202803683370190505b50600092509050845b6005548110156109a4578360016000600584815481106107bd576107bd6117da565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180159061082d5750836001600060058481548110610803576108036117da565b60009182526020808320909101546001600160a01b03168352820192909252604001902060020154115b8015610887575060006001600160a01b03166001600060058481548110610856576108566117da565b60009182526020808320909101546001600160a01b0390811684529083019390935260409091019020600101541614155b15610992576005818154811061089f5761089f6117da565b9060005260206000200160009054906101000a90046001600160a01b03168284815181106108cf576108cf6117da565b60200260200101906001600160a01b031690816001600160a01b0316815250506001600060058381548110610906576109066117da565b60009182526020808320909101546001600160a01b0390811684529083019390935260409091019020600190810154909116908390610946908690611750565b81518110610956576109566117da565b6001600160a01b0390921660209283029190910190910152610979600284611750565b925061098687600261178a565b831415610992576109a4565b8061099c816117a9565b91505061079b565b5095945050505050565b60006109b8610503565b3360009081526001602052604090205490915015806109e95750336000908152600160205260409020600201548110155b610a355760405162461bcd60e51b815260206004820152601c60248201527f526567697374726174696f6e206973207374696c6c2061637469766500000000604482015260640161057a565b610a426212750082611750565b336000908152600160208190526040909120918255810180546001600160a01b0319166001600160a01b038516908117909155640fffffffff600290920191909155610aff573360009081526002602052604090205460ff16610afa576004805460018181019092557f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180546001600160a01b031916339081179091556000908152600260205260409020805460ff191690911790555b610b71565b3360009081526003602052604090205460ff16610b71576005805460018181019092557f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00180546001600160a01b031916339081179091556000908152600360205260409020805460ff191690911790555b3360008181526001602052604080822054905190926001600160a01b0386169290917f0dfbe4205bf572b05cf72c984669443144075eddc3672b24fca440052b4ed8b59190a45050565b60006212750080610bcc8142611768565b610bd6919061178a565b61051d9190611750565b600080546060906001600160a01b03163314610c0e5760405162461bcd60e51b815260040161057a9061171b565b600080876001600160a01b0316878787604051610c2c929190611613565b60006040518083038185875af1925050503d8060008114610c69576040519150601f19603f3d011682016040523d82523d6000602084013e610c6e565b606091505b5090999098509650505050505050565b6000546001600160a01b03163314610ca85760405162461bcd60e51b815260040161057a9061171b565b6000610cb2610bbb565b6001600160a01b03831660009081526001602052604090205490915015801590610cf657506001600160a01b03821660009081526001602052604090206002015481105b610d125760405162461bcd60e51b815260040161057a906116cf565b6001600160a01b038216600090815260016020526040902054811415610d63576001600160a01b038216600090815260016020819052604082209182550180546001600160a01b0319169055610d82565b6001600160a01b03821660009081526001602052604090206002018190555b60405181906001600160a01b038416907f50434fd14c182d9704caecbf26061337d70eabc7f5ce8b8216fefcaf9644bcb990600090a35050565b6000546001600160a01b03163314610de65760405162461bcd60e51b815260040161057a9061171b565b6000610df0610503565b6001600160a01b0384166000908152600160205260409020549091501580610e3257506001600160a01b03831660009081526001602052604090206002015481115b610e7e5760405162461bcd60e51b815260206004820152601c60248201527f526567697374726174696f6e206973207374696c6c2061637469766500000000604482015260640161057a565b610e8b6212750082611750565b6001600160a01b038481166000908152600160208190526040909120928355820180546001600160a01b0319169185169182179055640fffffffff600290920191909155610f5c576001600160a01b03831660009081526002602052604090205460ff16610f57576004805460018082019092557f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180546001600160a01b0319166001600160a01b0386169081179091556000908152600260205260409020805460ff191690911790555b610fe0565b6001600160a01b03831660009081526003602052604090205460ff16610fe0576005805460018082019092557f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00180546001600160a01b0319166001600160a01b0386169081179091556000908152600360205260409020805460ff191690911790555b6001600160a01b038084166000818152600160205260408082205490519093861692917f0dfbe4205bf572b05cf72c984669443144075eddc3672b24fca440052b4ed8b591a4505050565b6000546001600160a01b031633146110555760405162461bcd60e51b815260040161057a9061171b565b6001600160a01b0381166110ba5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161057a565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6060611121828461178a565b9150600061112d610503565b90506000835b60045481101561124f57826001600060048481548110611155576111556117da565b60009182526020808320909101546001600160a01b03168352820192909252604001902054118015906111c5575082600160006004848154811061119b5761119b6117da565b60009182526020808320909101546001600160a01b03168352820192909252604001902060020154115b801561121e575060006001600160a01b031660016000600484815481106111ee576111ee6117da565b60009182526020808320909101546001600160a01b03908116845290830193909352604090910190206001015416145b1561123d578161122d816117a9565b9250508582141561123d5761124f565b80611247816117a9565b915050611133565b5060008167ffffffffffffffff81111561126b5761126b6117f0565b604051908082528060200260200182016040528015611294578160200160208202803683370190505b50600092509050845b6004548110156109a4578360016000600484815481106112bf576112bf6117da565b60009182526020808320909101546001600160a01b031683528201929092526040019020541180159061132f5750836001600060048481548110611305576113056117da565b60009182526020808320909101546001600160a01b03168352820192909252604001902060020154115b8015611388575060006001600160a01b03166001600060048481548110611358576113586117da565b60009182526020808320909101546001600160a01b03908116845290830193909352604090910190206001015416145b1561140257600481815481106113a0576113a06117da565b9060005260206000200160009054906101000a90046001600160a01b03168284815181106113d0576113d06117da565b6001600160a01b0390921660209283029190910190910152826113f2816117a9565b93505086831415611402576109a4565b8061140c816117a9565b91505061129d565b80356001600160a01b038116811461142b57600080fd5b919050565b60006020828403121561144257600080fd5b61144b82611414565b9392505050565b6000806040838503121561146557600080fd5b61146e83611414565b915061147c60208401611414565b90509250929050565b6000806000806060858703121561149b57600080fd5b6114a485611414565b935060208501359250604085013567ffffffffffffffff808211156114c857600080fd5b818701915087601f8301126114dc57600080fd5b8135818111156114eb57600080fd5b8860208285010111156114fd57600080fd5b95989497505060200194505050565b6000602080838503121561151f57600080fd5b823567ffffffffffffffff8082111561153757600080fd5b818501915085601f83011261154b57600080fd5b81358181111561155d5761155d6117f0565b8060051b604051601f19603f83011681018181108582111715611582576115826117f0565b604052828152858101935084860182860187018a10156115a157600080fd5b600095505b838610156115cb576115b781611414565b8552600195909501949386019386016115a6565b5098975050505050505050565b6000602082840312156115ea57600080fd5b5035919050565b6000806040838503121561160457600080fd5b50508035926020909101359150565b8183823760009101908152919050565b6020808252825182820181905260009190848201906040850190845b818110156116645783516001600160a01b03168352928401929184019160010161163f565b50909695505050505050565b821515815260006020604081840152835180604085015260005b818110156116a65785810183015185820160600152820161168a565b818111156116b8576000606083870101525b50601f01601f191692909201606001949350505050565b6020808252602c908201527f4e6f742072656769737465726564206f722065787069726174696f6e20616c7260408201526b656164792070656e64696e6760a01b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60008219821115611763576117636117c4565b500190565b60008261178557634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156117a4576117a46117c4565b500290565b60006000198214156117bd576117bd6117c4565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fdfea2646970667358221220ad12feede3bc688e7d7c0e2d68d91f62073443b970fcd9a8c8fb0bd8f6c2652b64736f6c63430008070033

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