Issue a cyberCERT
Create a security-class printer and issue certificates under it
This is how you mint a new register entry on a cyberCORP — stock, a SAFE, an option, or any supported security type.
Prerequisites
A cyberCORP and its
issuanceManageraddress.A cert printer (a
LedgerEntryTokeninstance, formerlyCyberCertPrinter) for the security class (create one withcreateCertPrinterif needed).
1. (If needed) create the certificate printer
import {SecurityClass, SecuritySeries} from "src/CyberCorpConstants.sol";
address printer = IIssuanceManager(issuanceManager).createCertPrinter(
defaultLegend, // string[]
"Acme Series A Preferred", // name
"ACME-A", // ticker
"ipfs://acme-cert-art", // certificate URI
SecurityClass.PreferredStock,
SecuritySeries.SeriesA,
SHARE_EXTENSION_ADDR, // certificate extension
"" // seriesData — extension-encoded
// series-scope payload; "" if none
);2. Build the CertificateDetails
From ILedgerEntryToken.sol:
unitsRepresented, investmentAmountUSD, and issuerUSDValuationAtTimeOfInvestment are all 18-decimal fixed point: one share (or one dollar) = 1e18.
3. Mint
createCert(certAddress, to, details)
Mint without setting a registered owner.
createCertAndAssign(certAddress, investor, details)
Mint and record the registered owner.
createCertAndAssignWithName(certAddress, investor, details, investorName, endorsementSignature, timestamp)
As above, plus a holder name, an endorsement signature, and its timestamp.
createCertSignAndAssign(certAddress, investor, details, endorsementSignature, registry, agreementId, investorName)
As above, plus a registry/agreement reference.
Other operations
Cert-level operations were moved off the IssuanceManager onto the cert printer itself (LedgerEntryToken), callable by the IssuanceManager or a BorgAuth admin:
Endorse:
endorseCertificate(tokenId, endorser, signature, agreementId)on the printer (assembles the endorsement onchain); the registered owner can also calladdEndorsement(tokenId, endorsement)directly.Issuer signature:
addIssuerSignature(tokenId, signature).Void / unvoid:
voidCert(tokenId)/unvoidCert(tokenId).
Related
Last updated
Was this helpful?
