ETH Price: $3,201.45 (-3.47%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Issue91192322019-12-17 6:00:071864 days ago1576562407IN
0xa6C85039...7875ac6E3
0 ETH0.0011231525
Issue91188742019-12-17 4:21:441864 days ago1576556504IN
0xa6C85039...7875ac6E3
0 ETH0.0017965640
Issue90987082019-12-13 6:43:391868 days ago1576219419IN
0xa6C85039...7875ac6E3
0 ETH0.0013477830
Issue90985602019-12-13 6:08:041868 days ago1576217284IN
0xa6C85039...7875ac6E3
0 ETH0.0013477830
Issue90983152019-12-13 4:58:361868 days ago1576213116IN
0xa6C85039...7875ac6E3
0 ETH0.0007763217.28
Issue90983082019-12-13 4:54:511868 days ago1576212891IN
0xa6C85039...7875ac6E3
0 ETH0.0005391112
Issue90538772019-12-05 8:03:551876 days ago1575533035IN
0xa6C85039...7875ac6E3
0 ETH0.0006839715
Issue90534982019-12-05 6:30:281876 days ago1575527428IN
0xa6C85039...7875ac6E3
0 ETH0.0006386214.00564275
Issue90534942019-12-05 6:29:431876 days ago1575527383IN
0xa6C85039...7875ac6E3
0 ETH0.0005321911.67136896
Issue90534522019-12-05 6:18:111876 days ago1575526691IN
0xa6C85039...7875ac6E3
0 ETH0.000300946.60000026
Issue90496702019-12-04 14:09:031876 days ago1575468543IN
0xa6C85039...7875ac6E3
0 ETH0.0018239240
Issue89383412019-11-15 12:10:411896 days ago1573819841IN
0xa6C85039...7875ac6E3
0 ETH0.0007523616.5
Issue89307432019-11-14 5:41:391897 days ago1573710099IN
0xa6C85039...7875ac6E3
0 ETH0.0006018913.2
Issue88860722019-11-06 21:12:081904 days ago1573074728IN
0xa6C85039...7875ac6E3
0 ETH0.000227995
Issue88860012019-11-06 20:57:061904 days ago1573073826IN
0xa6C85039...7875ac6E3
0 ETH0.000227995
Issue88645882019-11-03 10:20:341908 days ago1572776434IN
0xa6C85039...7875ac6E3
0 ETH0.000250785.5
Issue88644752019-11-03 9:57:261908 days ago1572775046IN
0xa6C85039...7875ac6E3
0 ETH0.000250785.5
Issue88505492019-11-01 4:11:541910 days ago1572581514IN
0xa6C85039...7875ac6E3
0 ETH0.0006839715
Issue88488142019-10-31 21:31:531910 days ago1572557513IN
0xa6C85039...7875ac6E3
0 ETH0.000227995
Issue88459312019-10-31 10:20:311911 days ago1572517231IN
0xa6C85039...7875ac6E3
0 ETH0.0006360913.95
Issue88415532019-10-30 17:30:271911 days ago1572456627IN
0xa6C85039...7875ac6E3
0 ETH0.000451429.9
Issue88408492019-10-30 14:41:321911 days ago1572446492IN
0xa6C85039...7875ac6E3
0 ETH0.0006839715
Issue88407432019-10-30 14:15:511911 days ago1572444951IN
0xa6C85039...7875ac6E3
0 ETH0.0007513116.5
Issue88407152019-10-30 14:09:411911 days ago1572444581IN
0xa6C85039...7875ac6E3
0 ETH0.0007523616.5
Issue88386002019-10-30 6:00:241912 days ago1572415224IN
0xa6C85039...7875ac6E3
0 ETH0.000227995
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.