CapSign
  • Home
  • Compliance Framework
  • Interactive Demos
    • Overview
  • Create an Account
  • Identity Verification
  • Investor Qualification
  • Guides for Individuals
    • Invest in an Offering
  • Guides for Corporations
    • Create a Share Class
    • Authorize Shares
    • Issue Shares
    • Upload a Document
    • Create a Document Template
    • Create an Offering
    • Manage Your Offering
    • Add a Trusted Attestor
    • Approve an Investment
  • API Reference
    • Overview
    • Compliance
      • Exemptions
        • FederalExemption.sol
          • FederalExemption
        • RegAExemption.sol
          • RegAExemption
        • RegCFExemption.sol
          • RegCFExemption
        • RegDExemption.sol
          • RegDExemption
        • Rule144Exemption.sol
          • Rule144Exemption
        • Rule701Exemption.sol
          • Rule701Exemption
      • IComplianceModule.sol
        • IComplianceModule
      • Vesting.sol
        • Vesting
    • Currencies
      • WETH.sol
        • WETH
      • CMX.sol
        • CMX
      • USD.sol
        • USD
    • Governance
      • BoardManagement.sol
        • BoardManagement
      • ProxyVoting.sol
        • ProxyVoting
    • Identity
      • AttestationRegistry.sol
        • AttestationRegistry
      • ERC20PaymentResolver.sol
        • ERC20PaymentResolver
      • Roles
        • BaseRoles.sol
          • BaseRoles
        • PrivateOfferingRoles.sol
          • PrivateOfferingRoles
        • PublicOfferingRoles.sol
          • PublicOfferingRoles
      • Whitelist.sol
        • Whitelist
    • Issuance
      • Compensation
        • CompensationFactory.sol
          • CompensationFactory
        • EmployeeStockOptionCompensation.sol
          • EmployeeStockOptionCompensation
        • RestrictedStockAwardCompensation.sol
          • RestrictedStockAwardCompensation
        • StockAppreciationRightsCompensation.sol
          • StockAppreciationRightCompensation
        • WarrantCompensation.sol
          • WarrantCompensation
      • Offering
        • ExemptOffering.sol
          • ExemptOffering
        • InitialPublicOffering.sol
          • InitialPublicOffering
        • Offering.sol
          • Offering
        • OfferingFactory.sol
          • OfferingFactory
        • Rule506bOffering.sol
          • Rule506bOffering
        • Rule506cOffering.sol
          • Rule506cOffering
        • TenderOffer.sol
          • TenderOffer
    • Investor Relations
      • DividendDistributor.sol
        • DividendDistributor
      • SubscriptionManager.sol
        • SubscriptionManager
        • IERC20
    • Ledgers
      • Ledger.sol
        • Ledger
      • LedgerManager.sol
        • LedgerManager
      • SettlementManager.sol
        • SettlementManager
    • Marketplace
      • AuctionMarket.sol
        • AuctionMarket
      • BaseMarket.sol
        • BaseMarket
      • BulletinBoardMarket.sol
        • BulletinBoardMarket
      • Contents
        • BaseCollateral.sol
          • BaseCollateral
        • ERC20Collateral.sol
          • ERC20Collateral
        • NativeCollateral.sol
          • NativeCollateral
      • LiquidityPoolMarket.sol
        • LiquidityPoolMarket
      • Contents
        • BaseMargin.sol
          • BaseMargin
        • MarginAccount.sol
          • MarginAccount
      • MarginOrderBookMarket.sol
        • MarginOrderBookMarket
      • OTCMarket.sol
        • OTCMarket
      • OrderBookMarket.sol
        • OrderBookMarket
      • Contents
        • BrokerNetSettlement.sol
          • BrokerNetSettlement
        • CustodyBridge.sol
          • CustodyBridge
        • DirectSettlement.sol
          • DirectSettlement
        • ListingRegistry.sol
          • ListingRegistry
    • Tokenization
      • Actions
        • CorporateActionManager.sol
          • CorporateActionManager
          • ICapitalAsset
        • ICorporateActionManager.sol
          • ICorporateActionManager
      • Assets
        • Asset.sol
          • Asset
          • Asset
        • ClosedEndFundClass.sol
          • ClosedEndFundClass
        • ClosedEndFundManager.sol
          • ClosedEndFundManager
        • EmployeeStockOption.sol
          • EmployeeStockOption
        • Contents
          • IAsset.sol
            • IAsset
          • IClosedEndFundClass.sol
            • IClosedEndFundClass
          • IIssuedAsset.sol
            • IIssuedAsset
          • IOpenEndFundClass.sol
            • IOpenEndFundClass
          • IShareClass.sol
            • IShareClass
        • IssuedAsset.sol
          • IssuedAsset
        • OpenEndFundClass.sol
          • OpenEndFundClass
        • OpenEndFundManager.sol
          • OpenEndFundManager
        • ShareClass.sol
          • ShareClass
        • StockAppreciationRight.sol
          • StockAppreciationRight
        • Warrant.sol
          • Warrant
      • TokenFactory.sol
        • TokenFactory
    • Utilities
      • PriceFeed.sol
        • SimplePriceFeed
        • IPriceFeed
    • Valuations
      • ValuationRegistry.sol
        • ValuationRegistry
    • Wallet
      • HookedSmartWallet.sol
        • HookedSmartWallet
      • Wallet.sol
        • Wallet
Powered by GitBook
On this page
  • State Variables
  • offeringImplementations
  • allOfferings
  • Functions
  • constructor
  • addOfferingImplementation
  • createOffering
  • getAllOfferings
  • _getRevertMsg
  • Events
  • OfferingImplementationAdded
  • OfferingFactoryCreated
  • OfferingCreated
  • Structs
  • OfferingImplementation

Was this helpful?

  1. API Reference
  2. Issuance
  3. Offering
  4. OfferingFactory.sol

OfferingFactory

PreviousOfferingFactory.solNextRule506bOffering.sol

Last updated 3 months ago

Was this helpful?

This factory dynamically registers offering implementations and deploys minimal proxy clones.

State Variables

offeringImplementations

mapping(bytes32 => OfferingImplementation) public offeringImplementations;

allOfferings

address[] public allOfferings;

Functions

constructor

Registers initial offering implementations.

constructor(OfferingImplementation[] memory _implementations);

Parameters

Name
Type
Description

_implementations

OfferingImplementation[]

Array of offering implementations to register.

addOfferingImplementation

Adds a new offering implementation dynamically.

function addOfferingImplementation(OfferingImplementation memory _implementation) external;

Parameters

Name
Type
Description

_implementation

OfferingImplementation

The offering implementation details.

createOffering

Deploys a new offering clone using a minimal proxy and initializes it.

function createOffering(bytes32 offeringImplId, bytes calldata initCallData) external returns (address offering);

Parameters

Name
Type
Description

offeringImplId

bytes32

The identifier of the offering implementation.

initCallData

bytes

The initialization call data to configure the offering clone.

Returns

Name
Type
Description

offering

address

The address of the newly deployed offering clone.

getAllOfferings

Returns an array of all deployed offering clone addresses.

function getAllOfferings() external view returns (address[] memory);

_getRevertMsg

Decodes revert messages from failed external calls.

function _getRevertMsg(bytes memory _returnData) internal pure returns (string memory);

Parameters

Name
Type
Description

_returnData

bytes

The return data from the call.

Returns

Name
Type
Description

<none>

string

The revert message string.

Events

OfferingImplementationAdded

event OfferingImplementationAdded(
    bytes32 indexed offeringImplId, string offeringType, address implementation, bytes4 requiredSelector, bool active
);

OfferingFactoryCreated

event OfferingFactoryCreated(address indexed factory);

OfferingCreated

event OfferingCreated(address indexed offering, address indexed issuer, bytes32 indexed offeringImplId);

Structs

OfferingImplementation

Struct for storing offering implementation details.

struct OfferingImplementation {
    string offeringType;
    address implementation;
    bytes4 requiredSelector;
    bool active;
}

Properties

Name
Type
Description

offeringType

string

A human-readable name or type identifier.

implementation

address

The address of the deployed implementation contract.

requiredSelector

bytes4

The function selector expected in the first 4 bytes of the initialization call.

active

bool

Flag to indicate if the offering is active.

Git Source