Address Contract Partially Verified
Address
0x3e2A565d29bc8f3eeAedB4C01751B8D04197f23f
Balance
0 ETH
Nonce
1
Code Size
2848 bytes
Creator
0xB725E7A2...8d04 at tx 0x85f009ec...90a20c
Indexed Transactions
0
Contract Bytecode
2848 bytes
0x608060405234801561001057600080fd5b506004361061009e5760003560e01c806385a23b1a1161006657806385a23b1a146101ba57806390c3f38f14610267578063a7321ba41461030d578063bb62860d146103bf578063cf1b5d67146103c75761009e565b806313af4035146100a357806333b44033146100cb5780633f516018146100fa57806368d839d0146101205780638191745f1461013d575b600080fd5b6100c9600480360360208110156100b957600080fd5b50356001600160a01b03166103ea565b005b6100e8600480360360208110156100e157600080fd5b5035610480565b60408051918252519081900360200190f35b6100c96004803603602081101561011057600080fd5b50356001600160a01b0316610492565b6100c96004803603602081101561013657600080fd5b5035610526565b6101456105dd565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561017f578181015183820152602001610167565b50505050905090810190601f1680156101ac5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6100c9600480360360408110156101d057600080fd5b813591908101906040810160208201356401000000008111156101f257600080fd5b82018360208201111561020457600080fd5b8035906020019184600183028401116401000000008311171561022657600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061066b945050505050565b6100c96004803603602081101561027d57600080fd5b81019060208101813564010000000081111561029857600080fd5b8201836020820111156102aa57600080fd5b803590602001918460018302840111640100000000831117156102cc57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610791945050505050565b6100c96004803603606081101561032357600080fd5b81359160208101359181019060608101604082013564010000000081111561034a57600080fd5b82018360208201111561035c57600080fd5b8035906020019184600183028401116401000000008311171561037e57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506107f7945050505050565b6100e8610958565b6100c9600480360360408110156103dd57600080fd5b5080359060200135610961565b6000546001600160a01b0316338114610438576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd08185b1b1bddd95960aa1b604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b0384161790556040517fb1f85680994f05174de05cb70536b4ec6be34da71beb280b0a6e53e90ecda20490600090a15050565b60009081526002602052604090205490565b6000546001600160a01b03163381146104e0576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd08185b1b1bddd95960aa1b604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b0384161781556040517f409886e126858260aa1bc467ead233398a4c65a9c5bdd9deddb490202676bc199190a15050565b6001546001600160a01b0316338114610574576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd08185b1b1bddd95960aa1b604482015290519081900360640190fd5b6000828152600260205260409020548061059d5750600082815260026020526040902042908190555b604080518481526020810183905281517f35047f277245606b30d35783122d7180fcbba2824be75c2d232962ba8f1489cb929181900390910190a1505050565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106635780601f1061063857610100808354040283529160200191610663565b820191906000526020600020905b81548152906001019060200180831161064657829003601f168201915b505050505081565b6001546001600160a01b03163381146106b9576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd08185b1b1bddd95960aa1b604482015290519081900360640190fd5b600083815260026020526040902054806106e25750600083815260026020526040902042908190555b7fb5121e42d1cb56458ec5fce038800b06aa794a6f07555c355cf1be3687acbbee8482856040518084815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561074f578181015183820152602001610737565b50505050905090810190601f16801561077c5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a150505050565b6001546001600160a01b03163381146107df576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd08185b1b1bddd95960aa1b604482015290519081900360640190fd5b81516107f2906003906020850190610a4f565b505050565b6001546001600160a01b0316338114610845576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd08185b1b1bddd95960aa1b604482015290519081900360640190fd5b6000848152600260205260409020548061086e5750600084815260026020526040902042908190555b600084815260026020526040902054806108975750600084815260026020526040902042908190555b7fdbb324bc2bb6a4348ecfcf8f242a9f43b37f1436bd9b333339e956249e7d34a486868484886040518086815260200185815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156109125781810151838201526020016108fa565b50505050905090810190601f16801561093f5780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a1505050505050565b64632008260181565b6001546001600160a01b03163381146109af576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd08185b1b1bddd95960aa1b604482015290519081900360640190fd5b600083815260026020526040902054806109d85750600083815260026020526040902042908190555b60008381526002602052604090205480610a015750600083815260026020526040902042908190555b60408051868152602081018690528082018490526060810183905290517f3362d29134931f388d2281f6c3c3b98db3b3d3b052388640d8b5f817952d013d9181900360800190a15050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610a9057805160ff1916838001178555610abd565b82800160010185558215610abd579182015b82811115610abd578251825591602001919060010190610aa2565b50610ac9929150610acd565b5090565b610ae791905b80821115610ac95760008155600101610ad3565b9056fea2646970667358221220a43529f84c494b9d8f136e7366a4289f6286a1921768ed5fe0e769e36f77a4dd64736f6c634300060b0033
Verified Source Code Partial Match
Compiler: v0.6.11+commit.5ef660b1
EVM: istanbul
Optimization: Yes (200 runs)
ProofCertoChainContract.sol 144 lines
pragma solidity ^0.6.11;
//certo c063v200826 noima (c) all rights reserved 2020
/// @title A CertoProof Of existence smartcontract
/// @author Mauro G. Cordioli ezlab
/// @notice Check the details at https://certo.legal/smartcontract/v63
contract ProofCertoChainContract {
int256 public constant Version = 0x6320082601;
address payable creator;
address payable owner;
mapping(bytes32 => uint256) private CertoLedgerTimestamp;
string public Description; //Contract Purpose
modifier onlyBy(address _account) {
require(msg.sender == _account, "not allowed");
_;
}
function setCreator(address payable _creator) public onlyBy(creator) {
creator = _creator;
emit EventSetCreator();
}
function setOwner(address payable _owner) public onlyBy(creator) {
owner = _owner;
emit EventSetOwner();
}
function setDescription(string memory _Description) public onlyBy(owner) {
Description = _Description;
}
constructor(string memory _Description) public {
creator = msg.sender;
owner = msg.sender;
Description = _Description;
emit EventReady();
}
/// @notice Notarize the hash emit block timestamp of the block
/// @param hashproof The proof sha256 hash to timestamp
function NotarizeProofTimeStamp(bytes32 hashproof) public onlyBy(owner) {
uint256 ts = CertoLedgerTimestamp[hashproof];
if (ts == 0) {
ts = block.timestamp;
CertoLedgerTimestamp[hashproof] = ts;
}
emit EventProof(hashproof, ts);
}
/// @notice Notarize both hashes emit block timestamp with logged note
/// @param hashproof The proof sha256 hash to timestamp
/// @param hashmeta The metadata sha256 hash to timestamp
/// @param note The note to be logged on the blokchain
function NotarizeProofMetaNoteTimeStamp(
bytes32 hashproof,
bytes32 hashmeta,
string memory note
) public onlyBy(owner) {
uint256 tsproof = CertoLedgerTimestamp[hashproof];
if (tsproof == 0) {
tsproof = block.timestamp;
CertoLedgerTimestamp[hashproof] = tsproof;
}
uint256 tsmeta = CertoLedgerTimestamp[hashmeta];
if (tsmeta == 0) {
tsmeta=block.timestamp;
CertoLedgerTimestamp[hashmeta] = tsmeta;
}
emit EventProofMetaWithNote(hashproof, hashmeta, tsproof, tsmeta, note);
}
/// @notice Notarize both hashes and emit block timestamps
/// @param hashproof The proof sha256 hash to timestamp
/// @param hashmeta The metadata sha256 hash to timestamp
function NotarizeProofMetaTimeStamp(bytes32 hashproof, bytes32 hashmeta)
public
onlyBy(owner)
{
uint256 tsproof = CertoLedgerTimestamp[hashproof];
if (tsproof == 0) {
tsproof = block.timestamp;
CertoLedgerTimestamp[hashproof] = tsproof;
}
uint256 tsmeta = CertoLedgerTimestamp[hashmeta];
if (tsmeta == 0) {
tsmeta = block.timestamp;
CertoLedgerTimestamp[hashmeta] = tsmeta;
}
emit EventProofMeta(hashproof, hashmeta, tsproof, tsmeta);
}
/// @notice Notarize the hash emit block timestamp with logged note
/// @param hashproof The sha256 hash to timestamp
/// @param note The note to be logged on the blokchain
function NotarizeProofTimeStampWithNote(
bytes32 hashproof,
string memory note
) public onlyBy(owner) {
uint256 ts = CertoLedgerTimestamp[hashproof];
if (ts == 0) {
ts = block.timestamp;
CertoLedgerTimestamp[hashproof] = ts;
}
emit EventProofWithNote(hashproof, ts, note);
}
/// @notice check the hash to verify the proof emit the block timestamp if ok or zero if not.
/// @param hashproof The sha256 hash be checked
/// @return block timestamp if ok zero if not
function CheckProofTimeStampByHashReturnsNonZeroUnixEpochIFOk(
bytes32 hashproof
) public view returns (uint256) {
return CertoLedgerTimestamp[hashproof];
}
event EventProofMetaWithNote(
bytes32 hashproof,
bytes32 hashmeta,
uint256 tsproof,
uint256 tsmeta,
string note
); // trace a note in the logs
event EventProofMeta(
bytes32 hashproof,
bytes32 hashmeta,
uint256 tsproof,
uint256 tsmeta
);
event EventProofWithNote(bytes32 hashproof, uint256 ts, string note); // trace a note in the logs
event EventProof(bytes32 hashproof, uint256 ts);
event EventSetOwner(); //invoked when creator changes owner
event EventSetCreator(); //invoked when creator changes creator
event EventReady(); //invoked when we have done the method action
}
Read Contract
CheckProofTimeStampByHashReturnsNonZeroUnixEpochIFOk 0x33b44033 → uint256
Description 0x8191745f → string
Version 0xbb62860d → int256
Write Contract 7 functions
These functions modify contract state and require a wallet transaction to execute.
NotarizeProofMetaNoteTimeStamp 0xa7321ba4
bytes32 hashproof
bytes32 hashmeta
string note
NotarizeProofMetaTimeStamp 0xcf1b5d67
bytes32 hashproof
bytes32 hashmeta
NotarizeProofTimeStamp 0x68d839d0
bytes32 hashproof
NotarizeProofTimeStampWithNote 0x85a23b1a
bytes32 hashproof
string note
setCreator 0x3f516018
address _creator
setDescription 0x90c3f38f
string _Description
setOwner 0x13af4035
address _owner
Recent Transactions
No transactions found for this address