false
false

Contract Address Details

0xd8E67D0100f0D3F2e8C753f05833258A18F31b2A

Creator
0x827fa7–80c0d9 at 0x600b92–76c133
Balance
0 Berg
Tokens
Fetching tokens...
Transactions
3 Transactions
Transfers
0 Transfers
Gas Used
467,751
Last Balance Update
28566465
Minimal Proxy Contract for 0x057509d22e54dbfeb991a00ad6136eaf0373f488.
EIP-1167 - minimal bytecode implementation that delegates all calls to a known address
Contract name:
Publication




Optimization enabled
false
Compiler version
v0.8.12+commit.f00d7308




Verified at
2025-02-21T18:28:21.599709Z

Publication.sol

// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.8.12;
import "./Editor.sol";
import "./Identity.sol";
import "./HitchensUnorderedAddressSet.sol";
import "./OwnableUpgradeable.sol";
// Decentral Publication Contracts v1.0 (contracts/Publication.sol)
/** @title Contract for one specific publication which is owned by the publication's author */
contract Publication is OwnableUpgradeable {
using HitchensUnorderedAddressSetLib for HitchensUnorderedAddressSetLib.Set;
// Different roles an endorser can have
enum EndorserRole{ NONE, READER, SUPERVISOR, EXAMINER }
// Different states a publication can have
enum PublicationState{ NONE, SUBMITTED, PUBLISHED, RETRACTED }
struct Endorsement {
bool exists;
string document;
EndorserRole role;
}
// Version of the publication contract
uint8 public constant version = 1;
// List of endorsers of the publication
mapping(address => Endorsement) public endorsers;
HitchensUnorderedAddressSetLib.Set internal endorsersSet;
// Identifier of the publishing journal
uint8 public journal;
// File hashes for the published document and it's meta data
string public document;
string public metadata;
// State of the publication process
PublicationState public state;
// Address of the editor proxy contract
Editor public editorProxy;
// Address of the identity proxy contract
Identity public identityProxy;
event LogNewPublication(address sender, string document, string metadata, PublicationState state);
event LogNewEndorsement(address sender, string document, string comment);
event LogUpdateEndorserRole(address sender, address endorser, string document, EndorserRole oldRole, EndorserRole newRole);
event LogUpdateEndorsementDocument(address sender, address endorser, string oldDocument, string newDocument);
 
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Contract ABI

[{"type":"event","name":"LogEndorsementRevocation","inputs":[{"type":"address","name":"sender","internalType":"address","indexed":false},{"type":"address","name":"endorser","internalType":"address","indexed":false},{"type":"string","name":"document","internalType":"string","indexed":false},{"type":"string","name":"comment","internalType":"string","indexed":false}],"anonymous":false},{"type":"event","name":"LogNewEndorsement","inputs":[{"type":"address","name":"sender","internalType":"address","indexed":false},{"type":"string","name":"document","internalType":"string","indexed":false},{"type":"string","name":"comment","internalType":"string","indexed":false}],"anonymous":false},{"type":"event","name":"LogNewPublication","inputs":[{"type":"address","name":"sender","internalType":"address","indexed":false},{"type":"string","name":"document","internalType":"string","indexed":false},{"type":"string","name":"metadata","internalType":"string","indexed":false},{"type":"uint8","name":"state","internalType":"enum Publication.PublicationState","indexed":false}],"anonymous":false},{"type":"event","name":"LogPublicationPublished","inputs":[{"type":"address","name":"sender","internalType":"address","indexed":false},{"type":"string","name":"document","internalType":"string","indexed":false},{"type":"string","name":"metadata","internalType":"string","indexed":false}],"anonymous":false},{"type":"event","name":"LogPublicationRetraction","inputs":[{"type":"address","name":"sender","internalType":"address","indexed":false},{"type":"string","name":"comment","internalType":"string","indexed":false}],"anonymous":false},{"type":"event","name":"LogUpdateEndorsementComment","inputs":[{"type":"address","name":"sender","internalType":"address","indexed":false},{"type":"address","name":"endorser","internalType":"address","indexed":false},{"type":"string","name":"document","internalType":"string","indexed":false},{"type":"string","name":"comment","internalType":"string","indexed":false}],"anonymous":false},{"type":"event","name":"LogUpdateEndorsementDocument","inputs":[{"type":"address","name":"sender","internalType":"address","indexed":false},{"type":"address","name":"endorser","internalType":"address","indexed":false},{"type":"string","name":"oldDocument","internalType":"string","indexed":false},{"type":"string","name":"newDocument","internalType":"string","indexed":false}],"anonymous":false},{"type":"event","name":"LogUpdateEndorserRole","inputs":[{"type":"address","name":"sender","internalType":"address","indexed":false},{"type":"address","name":"endorser","internalType":"address","indexed":false},{"type":"string","name":"document","internalType":"string","indexed":false},{"type":"uint8","name":"oldRole","internalType":"enum Publication.EndorserRole","indexed":false},{"type":"uint8","name":"newRole","internalType":"enum Publication.EndorserRole","indexed":false}],"anonymous":false},{"type":"event","name":"LogUpdatePublicationDocument","inputs":[{"type":"address","name":"sender","internalType":"address","indexed":false},{"type":"string","name":"oldDocument","internalType":"string","indexed":false},{"type":"string","name":"newDocument","internalType":"string","indexed":false},{"type":"string","name":"comment","internalType":"string","indexed":false}],"anonymous":false},{"type":"event","name":"LogUpdatePublicationMetadata","inputs":[{"type":"address","name":"sender","internalType":"address","indexed":false},{"type":"string","name":"oldMetadata","internalType":"string","indexed":false},{"type":"string","name":"newMetadata","internalType":"string","indexed":false},{"type":"string","name":"comment","internalType":"string","indexed":false}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"type":"address","name":"previousOwner","internalType":"address","indexed":true},{"type":"address","name":"newOwner","internalType":"address","indexed":true}],"anonymous":false},{"type":"function","stateMutability":"view","outputs":[{"type":"string","name":"","internalType":"string"}],"name":"document","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"contract Editor"}],"name":"editorProxy","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"endorse","inputs":[{"type":"string","name":"_identity","internalType":"string"},{"type":"string","name":"_comment","internalType":"string"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"bool","name":"exists","internalType":"bool"},{"type":"string","name":"document","internalType":"string"},{"type":"uint8","name":"role","internalType":"enum Publication.EndorserRole"}],"name":"endorsers","inputs":[{"type":"address","name":"","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"contract Identity"}],"name":"identityProxy","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"initialize","inputs":[{"type":"address","name":"_owner","internalType":"address"},{"type":"string","name":"_document","internalType":"string"},{"type":"string","name":"_metadata","internalType":"string"},{"type":"string","name":"_identity","internalType":"string"},{"type":"address","name":"_editorProxy","internalType":"contract Editor"},{"type":"address","name":"_identityProxy","internalType":"contract Identity"},{"type":"uint8","name":"_journal","internalType":"uint8"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint8","name":"","internalType":"uint8"}],"name":"journal","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"string","name":"","internalType":"string"}],"name":"metadata","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"owner","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"publish","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"renounceOwnership","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"retractPublication","inputs":[{"type":"string","name":"_comment","internalType":"string"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"revokeEndorsement","inputs":[{"type":"string","name":"_comment","internalType":"string"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"revokeEndorsementExt","inputs":[{"type":"address","name":"_endorser","internalType":"address"},{"type":"string","name":"_comment","internalType":"string"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint8","name":"","internalType":"enum Publication.PublicationState"}],"name":"state","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"transferOwnership","inputs":[{"type":"address","name":"newOwner","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"updateDocument","inputs":[{"type":"string","name":"_document","internalType":"string"},{"type":"string","name":"_comment","internalType":"string"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"updateEndorsementComment","inputs":[{"type":"string","name":"_comment","internalType":"string"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"updateEndorsementCommentExt","inputs":[{"type":"address","name":"_endorser","internalType":"address"},{"type":"string","name":"_comment","internalType":"string"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"updateEndorsementDocument","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"updateEndorserRole","inputs":[{"type":"address","name":"_endorser","internalType":"address"},{"type":"uint8","name":"_role","internalType":"enum Publication.EndorserRole"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"updateMetadata","inputs":[{"type":"string","name":"_metadata","internalType":"string"},{"type":"string","name":"_comment","internalType":"string"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint8","name":"","internalType":"uint8"}],"name":"version","inputs":[]}]
              

Contract Creation Code

Verify & Publish
0x3d602d80600a3d3981f3363d3d373d3d3d363d73057509d22e54dbfeb991a00ad6136eaf0373f4885af43d82803e903d91602b57fd5bf3

Deployed ByteCode

0x363d3d373d3d3d363d73057509d22e54dbfeb991a00ad6136eaf0373f4885af43d82803e903d91602b57fd5bf3