Skip to content

PrivateIssuer

PrivateIssuer

A privately issued certificate can later be migrated to be public.

Private certificate issuance differ from the public ones in a way that the fungible volumes that are being transferred/claimed are stored off-chain.

initialize(address _issuer) (public)

Constructor.

Uses the OpenZeppelin initializer for upgradeability. _issuer cannot be the zero address.

getCertificateCommitment(uint256 certificateId) → bytes32 (public)

Get the commitment (proof) for a specific certificate.

approveCertificationRequestPrivate(uint256 _requestId, bytes32 _commitment) → uint256 (public)

issuePrivate(address _to, bytes32 _commitment, bytes _data) → uint256 (public)

Directly issue a private certificate.

requestPrivateTransfer(uint256 _certificateId, bytes32 _ownerAddressLeafHash) (external)

Request transferring a certain amount of tokens.

approvePrivateTransfer(uint256 _certificateId, struct PrivateIssuer.Proof[] _proof, bytes32 _previousCommitment, bytes32 _commitment) → bool (external)

Approve a private transfer of certificates.

requestMigrateToPublic(uint256 _certificateId, bytes32 _ownerAddressLeafHash) → uint256 _migrationRequestId (external)

Request the certificate volumes to be migrated from private to public.

requestMigrateToPublicFor(uint256 _certificateId, bytes32 _ownerAddressLeafHash, address _forAddress) → uint256 _migrationRequestId (external)

Request the certificate volumes to be migrated from private to public for someone else.

getPrivateTransferRequest(uint256 _certificateId) → struct PrivateIssuer.PrivateTransferRequest (external)

Get the private transfer request that is currently active for a specific certificate.

getMigrationRequest(uint256 _requestId) → struct PrivateIssuer.RequestStateChange (external)

Get the migration request.

getMigrationRequestId(uint256 _certificateId) → uint256 _migrationRequestId (external)

Get the migration request ID for a specific certificate.

migrateToPublic(uint256 _requestId, uint256 _volume, string _salt, struct PrivateIssuer.Proof[] _proof) (external)

Migrate a private certificate to be public.

_authorizeUpgrade(address) (internal)

getIssuerAddress() → address (external)

version() → string (external)

PrivateCertificationRequestApproved(address _owner, uint256 _id, uint256 _certificateId)

CommitmentUpdated(address _owner, uint256 _id, bytes32 _commitment)

MigrateToPublicRequested(address _owner, uint256 _id)

PrivateTransferRequested(address _owner, uint256 _certificateId)

CertificateMigratedToPublic(uint256 _certificateId, address _owner, uint256 _amount)

PrivateTransferRequest

address owner

bytes32 hash

RequestStateChange

address owner

uint256 certificateId

bytes32 hash

bool approved

Proof

bool left

bytes32 hash