Skip to content

Errors

Aborts are Move clever errors. Each names its module and constant and carries a message. Modules are blast_presale unless named.

Step Error Meaning and fix
Start creation_policy::EQuoteNotAllowed, EMigrationWitnessNotAllowed The quote type or venue is not listed. Ask Blast.
Start EInvalidAssetPair The sale coin and the quote coin are the same type.
Start EInitialSupplyNotZero The TreasuryCap has already minted. Use a fresh coin.
Start bluefin::EInvalidTier, bluefin::ESymbolTooLong Bluefin tier out of range, or symbol over 32 bytes.
Partner creation_policy::EPartnerNotAccepted set_partner, on the initializer, named a partner not accepted for new sales.
Finalize EMissingSetting The eligibility policy or the fee split was never set.
Finalize EInvalidRaiseTarget The raise target is zero or was never set.
Finalize EInvalidTokenAllocation The supply is zero or unset, the supply shares do not total 10,000 with Blast’s token rate, or a recipient is zero, duplicated, or past 64.
Finalize EInvalidRaiseAllocation No pool share left after recipients and Blast, or a duplicate or zero share.
Finalize EInvalidWindow Zero or unset duration, or a liquidity window under 7 days. share also raises it if the deadlines overflow.
Finalize EUnreachableRaise min_commitment × max_participants is below the raise.
Finalize EInvalidHardCap The hard cap starts at or after the window’s end.
Finalize EInvalidEligibilityPolicy, EInvalidUncappedPhase, EInvalidFeeSplit, EInvalidVestingTerms The value failed its constructor’s or finalize’s rules. See Create a sale.
Finalize EUnseedablePrice The pool’s seed price is outside what both venues can price.
Commit EPresaleNotStarted, EPresaleEnded Outside the window.
Commit EZeroCommitment The commitment coin is empty.
Commit EWrongEligibilityPolicy Wrong commit function for the sale’s policy.
Commit EInvalidEligibilityProof Wrong index, cap, proof, or sender, or a cap different from the wallet’s first commit.
Commit EWalletCapExceeded Lower the amount, or wait for the uncapped phase.
Commit EBelowMinimumCommitment The wallet’s total must reach the minimum.
Commit EParticipantCapacityReached No slots left for new wallets.
Commit EUncappedPhaseNotOpen No phase for anyone, or it has not started.
Commit EPresaleFilled The sale’s hard cap is in force and the raise is full.
Commit EInvalidLifecycle The sale is not Open: not yet shared, or already settled, perhaps after an early close.
Settle EPresaleNotEnded The window has not ended and the sale cannot close early.
Migrate EInvalidLifecycle Not Funded: unsettled, underfunded, cancelled, or already migrated.
Migrate EWrongMigrationWitness Wrong venue for this sale.
Migrate cetus::EInvalidCoinOrder, cetus::EWrongCoinPair Swap CoinA and CoinB, or pass the sale’s own two types.
Partner pay EWrongPartner, ENoPartnerPayout Wrong partner, or not migrated yet or already paid.
Claim ENoCommitment The wallet never committed or has already claimed.
Cancel ELiquidityDeadlineNotReached Wait until end_ms + liquidity_window_ms.
PresaleCap EWrongPresaleCap, presale_vault::ENoMigrationResiduals Wrong cap, or the residuals were already claimed.
Lock a position cetus::EPositionPoolMismatch, bluefin::EPositionPoolMismatch, presale_vault::EZeroLiquidity The position belongs to another pool, or holds no liquidity.
Rewards holder_rewards::EInvalidProof, EAlreadyClaimed, EClaimsStillOpen Bad proof, a repeat claim, or closing before the deadline.
Publish rewards holder_rewards::ETreasuryChanged, EInsufficientBudget, EInvalidInterval Refresh the governed treasury, keep holder funding plus gas reserve within available balances, and use a nonempty interval that does not overlap the preceding round.
Settle gas reserve holder_rewards::EReserveSettled, EOverReserve, EWrongVault Reimbursement is disabled or already settled, exceeds its reserve, or names another vault.

Admin calls require the matching presale role from the shared Blast ACL. blast_acl::sign_in rejects a revoked AdminCap or one without that role. See Authority.

The complete list with every message is in llms/presale.txt.