OfferingStorage

Git Source

Contains all storage variables for offering functionality

Storage contract for Offering diamond

State Variables

STORAGE_SLOT

bytes32 internal constant STORAGE_SLOT = keccak256("capsign.storage.offering");

Functions

layout

function layout() internal pure returns (Layout storage l);

Structs

Layout

struct Layout {
    IOffering.Status status;
    address entity;
    IIssuedAsset asset;
    IERC20 paymentCurrency;
    uint256 totalInvested;
    uint256 pricePerToken;
    uint256 minInvestment;
    uint256 investmentDeadline;
    uint256 targetAmount;
    uint256 maxAmount;
    string baseURI;
    IDocumentRegistry documentRegistry;
    mapping(IOffering.DocumentType => bytes32[]) documentHashes;
    bytes32 signatureTemplate;
    uint256 nextInvestmentId;
    mapping(uint256 => IOffering.Investment) investments;
    mapping(uint256 => address) investmentInvestors;
    mapping(address => bool) whitelist;
    address[] whitelistedInvestors;
    mapping(address => bool) accreditedInvestors;
    mapping(address => uint256) investorLimits;
    mapping(string => bool) jurisdictionAllowed;
    mapping(bytes32 => bool) filedDocuments;
    mapping(string => bytes32) regulatoryFilings;
    uint256 maxInvestors;
    uint256 nonAccreditedInvestorCount;
    bool isPrivateOffering;
    bool allowGeneralSolicitation;
    bool requireAccreditation;
    string offeringType;
    mapping(address => bytes32) investorAgreements;
    mapping(bytes32 => bool) usedNonces;
    uint256 offeringClosingDate;
    bool allowPartialFills;
    IDocumentRegistry filingDocumentRegistry;
    mapping(bytes32 => Filing) filings;
    bytes32[] filingIds;
    mapping(string => bytes32[]) jurisdictionFilings;
    mapping(string => bytes32[]) filingTypeToFilings;
    uint256 exemptionLimit;
    mapping(address => uint256) investorAmountIssued;
    mapping(uint256 => uint256) monthlyInvestmentTotals;
    uint8 regSCategory;
    uint256 distributionComplianceStart;
    uint256 distributionComplianceEnd;
    address attestationRegistry;
    bytes32 basicComplianceSchemaUID;
    bytes32 foreignInvestorSchemaUID;
    bytes32 customerIdentificationSchemaUID;
    bytes32 basicBusinessSchemaUID;
    uint256 minHoldingPeriod;
    mapping(address => uint256) tokenAcquisitionDates;
}

Filing

struct Filing {
    string filingType;
    string filingId;
    string jurisdiction;
    uint256 filingDate;
    uint256 amendmentCount;
    bool isActive;
    bytes32 documentHash;
}

Last updated

Was this helpful?