Contract errors

This section contains selected, most frequently occurring errors the protocol may revert with.

Router

swap: EXPIRED

Thrown when the current block's timestamp is greater than the provided _deadline of a swap.

require(block.timestamp <= _deadline, "RC:_swapExactTokensForTokens:EXPIRED");

swap: BELOW_MINIMUM

Thrown when the minimum acceptable output amount _amountOutMin of a swap is not met.

require(amountOut >= _amountOutMin, "RC:_swapExactTokensForTokens:BELOW_MINIMUM");

SwapPool

withdraw: MINIMUM_AMOUNT

Thrown when the withdraw amount _payoutAmount is less than the accepted minimum amount _minimumAmount.

require(payoutAmount_ >= _minimumAmount, "SP:withdraw:MINIMUM_AMOUNT");

backstopBurn: TIMELOCK

Thrown when the user _owner attempts to execute a backstopBurn in the same block as their last deposit, and the shares to burn exceed the balance held before that deposit.

if (block.number == lastDepositAt[_owner]) {
    require(userBalance - lastDepositAmount[_owner] >= _sharesToBurn, "SP:backstopBurn:TIMELOCK");
}

backstopBurn: INSUFFICIENT_COVERAGE

Thrown when the coverage ratio of the swap pool is more or would still be greater than 100% for the amount of swap pool LP shares to be redeemed for backstop pool liquidity.

require(oldReserve <= oldTotalLiabilities - amount_, "SP:backstopBurn:INSUFFICIENT_COVERAGE");

backstopDrain: INSUFFICIENT_COVERAGE

Thrown when the coverage ratio of the swap pool is less or would become lower than 100% for the amount of backstop pool LP shares to be withdrawn for swap pool liquidity.

require(oldReserve >= oldTotalLiabilities + _amount, "SP:backstopDrain:INSUFFICIENT_COVERAGE");

swap: EXCEEDS_MAX_COVERAGE_RATIO

Thrown when the coverage ratio of the swap pool would exceed 200% after swap inequire(

require(
    (oldReserve + effectiveAmount_) <= (maxCoverageRatioForSwapIn * oldTotalLiabilities) / 100,
    "SP:quoteSwapInto:EXCEEDS_MAX_COVERAGE_RATIO"
 );

BackstopPool

withdraw: MINIMUM_AMOUNT

Thrown when the withdraw amount _payoutAmount is less than the accepted minimum amount _minimumAmount.

require(payoutAmount_ >= _minimumAmount, "BC:finalizeWithdrawBackstopLiquidity:MINIMUM_AMOUNT");

redeemSwapPoolShares: MIN_AMOUNT

Thrown when the amount of the to be withdrawn backstop pool LP shares for swap pool liquidity is less the accepted minimum amount _minAmount.

require(amountOut_ >= _minAmountOut, "BC:_redeemSwapPoolShares:MIN_AMOUNT");

Last updated