The root contract of a cyberCORP — the onchain representation of the legal entity.
- Source:
src/CyberCorp.sol - Inherits:
Initializable,BorgAuthACL,UUPSUpgradeable DEPLOY_VERSION:"4"
| Variable | Type | Meaning |
|---|---|---|
cyberCORPName |
string |
Legal name, including designation ("Inc.", "LLC"). |
cyberCORPType |
string |
Entity type, as free-form text (e.g. "corporation"). Not an enum. |
cyberCORPJurisdiction |
string |
Jurisdiction of formation. |
cyberCORPContactDetails |
string |
Contact information. |
defaultDisputeResolution |
string |
Default dispute-resolution mechanism for agreements. |
companyPayable |
address |
Address that receives payments on the company's behalf. |
issuanceManager |
address |
The cyberCORP's IssuanceManager. |
dealManager |
address |
The cyberCORP's DealManager. |
roundManager |
address |
The cyberCORP's RoundManager. |
upgradeFactory |
address |
Factory whose reference implementation gates upgrades. |
companyOfficers |
CompanyOfficer[] |
Officers ({eoa, name, contact, title}). |
escrowedOfficerSignatures |
bytes[] |
Reusable pre-authorised officer signatures. |
function initialize(address _auth, string _name, string _type, string _jurisdiction,
string _contact, string _disputeResolution, address _issuanceManager,
address _companyPayable, CompanyOfficer _officer, address _upgradeFactory,
address _roundManager) external;
function setcyberCORPDetails(string _name, string _type, string _jurisdiction,
string _contact, string _disputeResolution) external; // onlyOwner
function setIssuanceManager(address) external; // onlyOwner
function setDealManager(address) external; // onlyOwner
function setRoundManager(address) external; // onlyOwner
function setCompanyPayable(address) external; // onlyOwner
function addOfficer(CompanyOfficer) external; // onlyOwner
function removeOfficer(address) external; // onlyOwner
function removeOfficerAt(uint256) external; // onlyOwner
function isCyberCORPOfficer(address) external view returns (bool);
function addEscrowedOfficerSignature(bytes signature) external; // onlyRole(200)
function setEscrowedOfficerSignature(uint256 index, bytes signature) external; // onlyRole(200)
function getEscrowedOfficerSignature(uint256 index) external view returns (bytes);
function getEscrowedOfficerSignatureCount() external view returns (uint256);addOfficer also grants the officer's eoa BorgAuth role 200;
removeOfficer / removeOfficerAt set it back to 0. See
Access control.
CyberCORPDetailsUpdated, OfficerAdded, OfficerRemoved,
CompanyPayableUpdated, EscrowedOfficerSignatureAdded,
EscrowedOfficerSignatureUpdated.
NotRefImplementation, SignatureRequired, InvalidEscrowSignatureIndex.
_authorizeUpgrade is onlyOwner and requires the new implementation to
equal ICyberCorpSingleFactory(upgradeFactory).getRefImplementation() —
otherwise it reverts NotRefImplementation. See Upgrade model.