ETH Price: $2,045.04 (+2.08%)

Contract

0x6Cae60ED7DC96Fb78e4A49A0db2a1d6cd04dd52b
 

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

There are no matching entries

Please try again later

Advanced mode:
Parent Transaction Hash Method Block
From
To
View All Internal Transactions
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

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

Contract Name:
DocumentCertoChainContract

Compiler Version
v0.6.11+commit.5ef660b1

Optimization Enabled:
Yes with 1 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2020-07-21
*/

pragma solidity >=0.6.11;

//SPDX-License-Identifier: UNLICENSED

//certo v20050101007c060 noima (c) all rights reserved 2020
//stripped down version
contract UltraBaseCertoChainContract {
  
    address payable owner;

    bool public isSealed;

    constructor() public {
       
        owner = msg.sender;
    }

    modifier onlyBy(address _account) {
        require(msg.sender == _account, "not allowed");
        _;
    }

    modifier onlyIfNotSealed() //semantic when sealed is not possible to change sensible data
    {
        if (isSealed) revert("sealed");
        _;
    }

    function kill() public onlyBy(owner) {
        selfdestruct(owner);
    }

     

    function setOwner(address payable _owner) public onlyBy(owner) {
        owner = _owner;
        //emit EventReady(address(this), "SetOwner");
    }

    function setSealed() public onlyBy(owner) {
        isSealed = true;
        emit EventSealed(address(this));
    } //seal down contract not reversible

    event EventSealed(address self); //invoked when contract is sealed
    event EventSetOwner(address self); //invoked when we change owner
    event EventReady(address self, string method); //invoked when we have done the method action
}


contract DocumentCertoChainContract is UltraBaseCertoChainContract {
    //string  public  Description ; //Description the description is in the trasaction log

    bytes32 public FileHash; //SecuritySeal HASH
    bytes32 public DescriptionHash; //SecuritySeal HASH
    int256 public FileData; //SecuritySeal DATA format AAMMDD

    

    constructor(
        string memory _Description,
        bytes32 _DescriptionHash,
        bytes32 _FileHash,
        int256 _FileData
    ) public {
       
        //Description=_Description; the description is in the trasaction log

        FileHash = _FileHash;
        DescriptionHash = _DescriptionHash;
        FileData = _FileData;

        emit EventNote(address(this), _Description);
        emit EventReady(address(this), "constructor");
    }

     
    
    event EventNote(address self, string note); // trace a note in the logs
}


contract TagCertoChainContract is UltraBaseCertoChainContract {
    bool public isActive;

    function constructorx(address payable _owner) public {
        owner = (_owner);
        emit EventReady(address(this), "constructor");
    }

    constructor(
        address payable _owner,
        bytes32 signaturehash,
        bytes32 signaturemaskR,
        bytes32 signaturemaskS,
        uint8 signaturemaskV
    ) public {
        owner = (_owner);
        SignatureMaskR = signaturemaskR;
        SignatureMaskS = signaturemaskS;
        SignatureMaskV = signaturemaskV;
        SignatureHash = signaturehash;
        emit EventReady(address(this), "constructor");
    }

    function ActivateTag(address Target) public onlyBy(owner) {
        TargetDocument = Target;
        emit EventReady(address(this), "ActivateTag");
    }

    function SignTag(
        bytes32 signaturehash,
        bytes32 signaturemaskR,
        bytes32 signaturemaskS,
        uint8 signaturemaskV
    ) public onlyBy(owner) {
        SignatureMaskR = signaturemaskR;
        SignatureMaskS = signaturemaskS;
        SignatureMaskV = signaturemaskV;
        SignatureHash = signaturehash;
        emit EventReady(address(this), "SignTag");
    }

    function VerifyTag(bytes8 signaturepinS)
        public
        view
        returns (string memory)
    {
        bytes32 signatureR;
        bytes32 signatureS;
        bytes32 signatureSpad;
        signatureSpad = signaturepinS;
        signatureR = SignatureMaskR;
        signatureS = SignatureMaskS | (signatureSpad);
        //emit EventReady(address(this),"VerifyTag");
        if (
            ecrecover(SignatureHash, SignatureMaskV, signatureR, signatureS) ==
            owner
        ) {
            return "OK IS TAG VALID";
        } else {
            return "NOT A VALID TAG";
        }

        // return signatureS;
    }

    function RecoverSigner(
        bytes32 msgHash,
        bytes32 signaturepinR,
        bytes32 signaturepinS
    ) public view returns (address) {
        bytes32 signatureR;
        bytes32 signatureS;
        signatureR = SignatureMaskR | signaturepinR;
        signatureS = SignatureMaskS | signaturepinS;

        return ecrecover(msgHash, SignatureMaskV, signatureR, signatureS);
    }

    address public TargetDocument;
    bytes32 public SignatureMaskR;
    bytes32 public SignatureMaskS;
    uint8 public SignatureMaskV;

    bytes32 public SignatureHash;
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"string","name":"_Description","type":"string"},{"internalType":"bytes32","name":"_DescriptionHash","type":"bytes32"},{"internalType":"bytes32","name":"_FileHash","type":"bytes32"},{"internalType":"int256","name":"_FileData","type":"int256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"self","type":"address"},{"indexed":false,"internalType":"string","name":"note","type":"string"}],"name":"EventNote","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"self","type":"address"},{"indexed":false,"internalType":"string","name":"method","type":"string"}],"name":"EventReady","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"self","type":"address"}],"name":"EventSealed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"self","type":"address"}],"name":"EventSetOwner","type":"event"},{"inputs":[],"name":"DescriptionHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FileData","outputs":[{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FileHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isSealed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"kill","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_owner","type":"address"}],"name":"setOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setSealed","outputs":[],"stateMutability":"nonpayable","type":"function"}]

0x608060405234801561001057600080fd5b506040516104cf3803806104cf8339818101604052608081101561003357600080fd5b810190808051604051939291908464010000000082111561005357600080fd5b90830190602082018581111561006857600080fd5b825164010000000081118282018810171561008257600080fd5b82525081516020918201929091019080838360005b838110156100af578181015183820152602001610097565b50505050905090810190601f1680156100dc5780820380516001836020036101000a031916815260200191505b50604081815260208381015184830151606095860151600080546001600160a01b03191633178155600183905560028490556003829055308088528588018781528c51978901979097528b51949a5092985090967f571838f5402e869e520e26df7f672aa0a0ed02bc7e2bf9b54def57db64fa6f929692958b959394909391850192918601918190849084905b83811015610181578181015183820152602001610169565b50505050905090810190601f1680156101ae5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a16040805130815260208101829052600b818301526a31b7b739ba393ab1ba37b960a91b606082015290517fdeee49121786e5dd3d7163aaba8eebbb9a3d64c6965ae64fe485db5507d3f49a9181900360800190a1505050506102ac806102236000396000f3fe608060405234801561001057600080fd5b506004361061006d5760003560e01c806313af40351461007257806341c0e1b51461009a578063449c198d146100a257806347516910146100aa57806350ac9828146100c4578063631f9852146100cc5780637b7e4f21146100e8575b600080fd5b6100986004803603602081101561008857600080fd5b50356001600160a01b03166100f0565b005b610098610161565b6100986101bd565b6100b2610254565b60408051918252519081900360200190f35b6100b261025a565b6100d4610260565b604080519115158252519081900360200190f35b6100b2610270565b6000546001600160a01b031633811461013e576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd08185b1b1bddd95960aa1b604482015290519081900360640190fd5b50600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163381146101af576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd08185b1b1bddd95960aa1b604482015290519081900360640190fd5b6000546001600160a01b0316ff5b6000546001600160a01b031633811461020b576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd08185b1b1bddd95960aa1b604482015290519081900360640190fd5b6000805460ff60a01b1916600160a01b1790556040805130815290517f4eb6783909ea07b0aa366e4b899fdbcd45aef4172ea91e7d25c878f2ac4a11419181900360200190a150565b60015481565b60035481565b600054600160a01b900460ff1681565b6002548156fea2646970667358221220aaa5a3e10ae12e72e270b2910c9e0ebb5d13b1724a90bf91c06a485441db96c764736f6c634300060b00330000000000000000000000000000000000000000000000000000000000000080e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855488e19eef6897a31e8a3fddea166a9150058e2958b46b98070d08c54cebd839f0000000000000000000000000000000000000000000000000000002f0890d0810000000000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061006d5760003560e01c806313af40351461007257806341c0e1b51461009a578063449c198d146100a257806347516910146100aa57806350ac9828146100c4578063631f9852146100cc5780637b7e4f21146100e8575b600080fd5b6100986004803603602081101561008857600080fd5b50356001600160a01b03166100f0565b005b610098610161565b6100986101bd565b6100b2610254565b60408051918252519081900360200190f35b6100b261025a565b6100d4610260565b604080519115158252519081900360200190f35b6100b2610270565b6000546001600160a01b031633811461013e576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd08185b1b1bddd95960aa1b604482015290519081900360640190fd5b50600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163381146101af576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd08185b1b1bddd95960aa1b604482015290519081900360640190fd5b6000546001600160a01b0316ff5b6000546001600160a01b031633811461020b576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd08185b1b1bddd95960aa1b604482015290519081900360640190fd5b6000805460ff60a01b1916600160a01b1790556040805130815290517f4eb6783909ea07b0aa366e4b899fdbcd45aef4172ea91e7d25c878f2ac4a11419181900360200190a150565b60015481565b60035481565b600054600160a01b900460ff1681565b6002548156fea2646970667358221220aaa5a3e10ae12e72e270b2910c9e0ebb5d13b1724a90bf91c06a485441db96c764736f6c634300060b0033

Deployed Bytecode Sourcemap

1278:912:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;713:151;;;;;;;;;;;;;;;;-1:-1:-1;713:151:0;-1:-1:-1;;;;;713:151:0;;:::i;:::-;;621:75;;;:::i;872:118::-;;;:::i;1446:23::-;;;:::i;:::-;;;;;;;;;;;;;;;;1553:22;;;:::i;234:20::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;1496:30;;;:::i;713:151::-;769:5;;-1:-1:-1;;;;;769:5:0;391:10;:22;;383:46;;;;;-1:-1:-1;;;383:46:0;;;;;;;;;;;;-1:-1:-1;;;383:46:0;;;;;;;;;;;;;;;-1:-1:-1;787:5:0::1;:14:::0;;-1:-1:-1;;;;;;787:14:0::1;-1:-1:-1::0;;;;;787:14:0;;;::::1;::::0;;;::::1;::::0;;713:151::o;621:75::-;651:5;;-1:-1:-1;;;;;651:5:0;391:10;:22;;383:46;;;;;-1:-1:-1;;;383:46:0;;;;;;;;;;;;-1:-1:-1;;;383:46:0;;;;;;;;;;;;;;;682:5:::1;::::0;-1:-1:-1;;;;;682:5:0::1;669:19;872:118:::0;907:5;;-1:-1:-1;;;;;907:5:0;391:10;:22;;383:46;;;;;-1:-1:-1;;;383:46:0;;;;;;;;;;;;-1:-1:-1;;;383:46:0;;;;;;;;;;;;;;;925:8:::1;:15:::0;;-1:-1:-1;;;;925:15:0::1;-1:-1:-1::0;;;925:15:0::1;::::0;;956:26:::1;::::0;;976:4:::1;956:26:::0;;;;::::1;::::0;;;;::::1;::::0;;::::1;872:118:::0;:::o;1446:23::-;;;;:::o;1553:22::-;;;;:::o;234:20::-;;;-1:-1:-1;;;234:20:0;;;;;:::o;1496:30::-;;;;:::o

Swarm Source

ipfs://aaa5a3e10ae12e72e270b2910c9e0ebb5d13b1724a90bf91c06a485441db96c7

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading

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.