ETH Price: $2,279.85 (+2.10%)
Gas: 0.86 Gwei

Contract

0x0CE38eBEa3B943Ee6DA24163710b25Ef8654f39E
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Issue204235852024-07-31 2:35:4738 days ago1722393347IN
0x0CE38eBE...f8654f39E
0 ETH0.000186563.92554753
Issue204178532024-07-30 7:20:3539 days ago1722324035IN
0x0CE38eBE...f8654f39E
0 ETH0.000163233.43471983
Issue198368202024-05-10 3:01:11120 days ago1715310071IN
0x0CE38eBE...f8654f39E
0 ETH0.000174123.66476319
Issue198308132024-05-09 6:52:23121 days ago1715237543IN
0x0CE38eBE...f8654f39E
0 ETH0.000206844.35220085
Issue198308012024-05-09 6:49:59121 days ago1715237399IN
0x0CE38eBE...f8654f39E
0 ETH0.00022164.66286806
Issue198307822024-05-09 6:46:11121 days ago1715237171IN
0x0CE38eBE...f8654f39E
0 ETH0.000221554.66174897
Issue198307512024-05-09 6:39:47121 days ago1715236787IN
0x0CE38eBE...f8654f39E
0 ETH0.000227174.78128354
Issue196595352024-04-15 7:50:23145 days ago1713167423IN
0x0CE38eBE...f8654f39E
0 ETH0.000455559.58535681
Revoke196595282024-04-15 7:48:59145 days ago1713167339IN
0x0CE38eBE...f8654f39E
0 ETH0.00045649.55266319
Issue191183182024-01-30 9:05:59221 days ago1706605559IN
0x0CE38eBE...f8654f39E
0 ETH0.0011000223.14578363
Issue190751182024-01-24 7:50:35227 days ago1706082635IN
0x0CE38eBE...f8654f39E
0 ETH0.000439059.23815135
Issue190749302024-01-24 7:12:47227 days ago1706080367IN
0x0CE38eBE...f8654f39E
0 ETH0.000400068.41993037
Issue190733902024-01-24 2:01:23227 days ago1706061683IN
0x0CE38eBE...f8654f39E
0 ETH0.0004974910.46785277
Issue188259352023-12-20 8:29:11262 days ago1703060951IN
0x0CE38eBE...f8654f39E
0 ETH0.0034174171.92441393
Issue188257012023-12-20 7:41:59262 days ago1703058119IN
0x0CE38eBE...f8654f39E
0 ETH0.0022186946.68372296
Issue187098812023-12-04 2:00:11279 days ago1701655211IN
0x0CE38eBE...f8654f39E
0 ETH0.0015262432.11382543
Issue187098102023-12-04 1:45:47279 days ago1701654347IN
0x0CE38eBE...f8654f39E
0 ETH0.0017162436.11169027
Issue184313672023-10-26 2:19:11317 days ago1698286751IN
0x0CE38eBE...f8654f39E
0 ETH0.0009609220.218902
Issue184309732023-10-26 0:59:23318 days ago1698281963IN
0x0CE38eBE...f8654f39E
0 ETH0.0009487319.96250076
Issue184308882023-10-26 0:42:23318 days ago1698280943IN
0x0CE38eBE...f8654f39E
0 ETH0.000970320.4163675
Issue184283552023-10-25 16:11:23318 days ago1698250283IN
0x0CE38eBE...f8654f39E
0 ETH0.0028147859.22630289
Issue178192292023-08-01 9:22:59403 days ago1690881779IN
0x0CE38eBE...f8654f39E
0 ETH0.0008641318.18693581
Issue178191912023-08-01 9:15:23403 days ago1690881323IN
0x0CE38eBE...f8654f39E
0 ETH0.0009689220.38722162
Issue172139972023-05-08 6:28:59488 days ago1683527339IN
0x0CE38eBE...f8654f39E
0 ETH0.003279769.00857294
Issue172139922023-05-08 6:27:47488 days ago1683527267IN
0x0CE38eBE...f8654f39E
0 ETH0.0033971571.47996867
View all transactions

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

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0x007d4022...EbB2FC9Ba
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
DocumentStore

Compiler Version
v0.4.25+commit.59dbf8f1

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2018-12-05
*/

pragma solidity ^0.4.24;


/**
 * @title Ownable
 * @dev The Ownable contract has an owner address, and provides basic authorization control
 * functions, this simplifies the implementation of "user permissions".
 */
contract Ownable {
  address public owner;


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


  /**
   * @dev The Ownable constructor sets the original `owner` of the contract to the sender
   * account.
   */
  constructor() public {
    owner = msg.sender;
  }

  /**
   * @dev Throws if called by any account other than the owner.
   */
  modifier onlyOwner() {
    require(msg.sender == owner);
    _;
  }

  /**
   * @dev Allows the current owner to relinquish control of the contract.
   * @notice Renouncing to ownership will leave the contract without an owner.
   * It will not be possible to call the functions with the `onlyOwner`
   * modifier anymore.
   */
  function renounceOwnership() public onlyOwner {
    emit OwnershipRenounced(owner);
    owner = address(0);
  }

  /**
   * @dev Allows the current owner to transfer control of the contract to a newOwner.
   * @param _newOwner The address to transfer ownership to.
   */
  function transferOwnership(address _newOwner) public onlyOwner {
    _transferOwnership(_newOwner);
  }

  /**
   * @dev Transfers control of the contract to a newOwner.
   * @param _newOwner The address to transfer ownership to.
   */
  function _transferOwnership(address _newOwner) internal {
    require(_newOwner != address(0));
    emit OwnershipTransferred(owner, _newOwner);
    owner = _newOwner;
  }
}


contract DocumentStore is Ownable {
  string public name;
  string public version = "2.2.0";

  /// A mapping of the document hash to the block number that was issued
  mapping(bytes32 => uint) documentIssued;
  /// A mapping of the hash of the claim being revoked to the revocation block number
  mapping(bytes32 => uint) documentRevoked;

  event DocumentIssued(bytes32 indexed document);
  event DocumentRevoked(
    bytes32 indexed document
  );

  constructor(
    string _name
  ) public
  {
    name = _name;
  }

  function issue(
    bytes32 document
  ) public onlyOwner onlyNotIssued(document)
  {
    documentIssued[document] = block.number;
    emit DocumentIssued(document);
  }

  function getIssuedBlock(
    bytes32 document
  ) public onlyIssued(document) view returns (uint)
  {
    return documentIssued[document];
  }

  function isIssued(
    bytes32 document
  ) public view returns (bool)
  {
    return (documentIssued[document] != 0);
  }

  function isIssuedBefore(
    bytes32 document,
    uint blockNumber
  ) public view returns (bool)
  {
    return documentIssued[document] != 0 && documentIssued[document] <= blockNumber;
  }

  function revoke(
    bytes32 document
  ) public onlyOwner onlyNotRevoked(document) returns (bool)
  {
    documentRevoked[document] = block.number;
    emit DocumentRevoked(document);
  }

  function isRevoked(
    bytes32 document
  ) public view returns (bool)
  {
    return documentRevoked[document] != 0;
  }

  function isRevokedBefore(
    bytes32 document,
    uint blockNumber
  ) public view returns (bool)
  {
    return documentRevoked[document] <= blockNumber && documentRevoked[document] != 0;
  }

  modifier onlyIssued(bytes32 document) {
    require(isIssued(document), "Error: Only issued document hashes can be revoked");
    _;
  }

  modifier onlyNotIssued(bytes32 document) {
    require(!isIssued(document), "Error: Only hashes that have not been issued can be issued");
    _;
  }

  modifier onlyNotRevoked(bytes32 claim) {
    require(!isRevoked(claim), "Error: Hash has been revoked previously");
    _;
  }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"document","type":"bytes32"}],"name":"issue","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"document","type":"bytes32"}],"name":"isIssued","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"document","type":"bytes32"},{"name":"blockNumber","type":"uint256"}],"name":"isRevokedBefore","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"document","type":"bytes32"}],"name":"isRevoked","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"version","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"document","type":"bytes32"},{"name":"blockNumber","type":"uint256"}],"name":"isIssuedBefore","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"document","type":"bytes32"}],"name":"revoke","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"document","type":"bytes32"}],"name":"getIssuedBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_name","type":"string"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"document","type":"bytes32"}],"name":"DocumentIssued","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"document","type":"bytes32"}],"name":"DocumentRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"}],"name":"OwnershipRenounced","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

Deployed Bytecode

0x6080604052600436106100ba576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146100bf5780630f75e81f1461014f578063163aa63114610180578063339b6b39146101c95780634294857f1461021c57806354fd4d50146102655780635a9e03ca146102f5578063715018a6146103485780638da5cb5b1461035f578063b75c7dc6146103b6578063bf40b904146103ff578063f2fde38b14610444575b600080fd5b3480156100cb57600080fd5b506100d4610487565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101145780820151818401526020810190506100f9565b50505050905090810190601f1680156101415780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561015b57600080fd5b5061017e6004803603810190808035600019169060200190929190505050610525565b005b34801561018c57600080fd5b506101af600480360381019080803560001916906020019092919050505061067a565b604051808215151515815260200191505060405180910390f35b3480156101d557600080fd5b506102026004803603810190808035600019169060200190929190803590602001909291905050506106a2565b604051808215151515815260200191505060405180910390f35b34801561022857600080fd5b5061024b60048036038101908080356000191690602001909291905050506106f3565b604051808215151515815260200191505060405180910390f35b34801561027157600080fd5b5061027a61071b565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102ba57808201518184015260208101905061029f565b50505050905090810190601f1680156102e75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561030157600080fd5b5061032e6004803603810190808035600019169060200190929190803590602001909291905050506107b9565b604051808215151515815260200191505060405180910390f35b34801561035457600080fd5b5061035d610809565b005b34801561036b57600080fd5b5061037461090b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103c257600080fd5b506103e56004803603810190808035600019169060200190929190505050610930565b604051808215151515815260200191505060405180910390f35b34801561040b57600080fd5b5061042e6004803603810190808035600019169060200190929190505050610a89565b6040518082815260200191505060405180910390f35b34801561045057600080fd5b50610485600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b53565b005b60018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561051d5780601f106104f25761010080835404028352916020019161051d565b820191906000526020600020905b81548152906001019060200180831161050057829003601f168201915b505050505081565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561058057600080fd5b8061058a8161067a565b151515610625576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a8152602001807f4572726f723a204f6e6c792068617368657320746861742068617665206e6f7481526020017f206265656e206973737565642063616e2062652069737375656400000000000081525060400191505060405180910390fd5b436003600084600019166000191681526020019081526020016000208190555081600019167f01a1249f2caa0445b8391e02413d26f0d409dabe5330cd1d04d3d0801fc42db360405160405180910390a25050565b6000806003600084600019166000191681526020019081526020016000205414159050919050565b60008160046000856000191660001916815260200190815260200160002054111580156106eb575060006004600085600019166000191681526020019081526020016000205414155b905092915050565b6000806004600084600019166000191681526020019081526020016000205414159050919050565b60028054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107b15780601f10610786576101008083540402835291602001916107b1565b820191906000526020600020905b81548152906001019060200180831161079457829003601f168201915b505050505081565b60008060036000856000191660001916815260200190815260200160002054141580156108015750816003600085600019166000191681526020019081526020016000205411155b905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561086457600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a260008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561098d57600080fd5b81610997816106f3565b151515610a32576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001807f4572726f723a204861736820686173206265656e207265766f6b65642070726581526020017f76696f75736c790000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b436004600085600019166000191681526020019081526020016000208190555082600019167f7283b5ab9758f7fba773279e4fd50ea7b136bd1d8371dcae9c5ce529c55343d760405160405180910390a250919050565b600081610a958161067a565b1515610b2f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001807f4572726f723a204f6e6c792069737375656420646f63756d656e74206861736881526020017f65732063616e206265207265766f6b656400000000000000000000000000000081525060400191505060405180910390fd5b60036000846000191660001916815260200190815260200160002054915050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610bae57600080fd5b610bb781610bba565b50565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610bf657600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a72305820ff90cde13f69cd732a84d71f903138ffee1c09ccd80e878aacc60cc25d630f080029

Swarm Source

bzzr://ff90cde13f69cd732a84d71f903138ffee1c09ccd80e878aacc60cc25d630f08

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.