Fixed Price Sale
Overview
The LegionFixedPriceSale
contract is used to execute fixed price sales of ERC20 tokens after the Token Generation Event (TGE). It manages the entire lifecycle of the sale, including capital pledging, refunds, raised capital withdrawal, token distribution for vesting, and sale cancellation.
Every fixed price sale consists of 5 stages, explained below:
Fixed Price Sale Stages
Prefund Stage: During the prefund stage, investors prefund the sale by pledging capital.
Pre-fund Allocation Period: Projects decide allocations for the investors who participated in the prefund, based on their reputation or other factors. This process is facilitated by Legion's backend and, depending on the outcome, the prefund can be fully subscribed.
Active Sale Period: The actual sale stage where investors pledge capital.
Refund Period: This stage is required by the MiCA regulation, where users can receive a refund if they decide. After the refund period is over, Legion publishes the results from the sale. Projects provide the allocated tokens and withdraw the raised capital from the sale.
Lockup Period: This stage complies with Regulation S. The lockup period starts immediately after a sale ends. Once it is over, investors are allowed to withdraw their allocations into a vesting schedule contract.
Key Functions
initialize
: Initializes the sale with configuration parameters.invest
: Allows investors to invest capital during the prefund and active sale.refund
: Allows investors to request a refund within the refund stage.withdrawRaisedCapital
: Enables the project admin to withdraw raised capital post-sale.claimTokenAllocation
: Allows investors to claim their token allocation.withdrawExcessInvestedCapital
: Allows investors to withdraw excess invested capital from the sale contract.releaseTokens
: Releases vested tokens to investors.supplyTokens
: Allows the project admin to supply tokens for the sale.publishSaleResults
: Publishes the results of the fixed price sale.setAcceptedCapital
: Sets the accepted capital by the Project for an investor.cancelSale
: Allows the project admin to cancel the sale.cancelExpiredSale
: Cancels the sale if it has expired.claimBackCapitalIfCanceled
: Allows investors to claim back their capital if the sale is canceled.
Last updated