Skip to content

Variable: Onchain

const Onchain: {
  CallReverted: "onchainCallReverted";
  EntryPointOutOfGas: "onchainEntryPointOutOfGas";
  ExecuteRejected: "onchainExecuteRejected";
  ExecuteReverted: "onchainExecuteReverted";
  ExtensionAlreadyRegistered: "onchainExtensionAlreadyRegistered";
  ExtensionNotRegistered: "onchainExtensionNotRegistered";
  GasPriceTooHigh: "onchainGasPriceTooHigh";
  InsufficientStake: "onchainInsufficientStake";
  InvalidExtensionValue: "onchainInvalidExtensionValue";
  InvalidNonce: "onchainInvalidNonce";
  InvalidSignature: "onchainInvalidSignature";
  MissingGasValues: "onchainMissingGasValues";
  MissingValidationInformation: "onchainMissingValidationInformation";
  PaymentValidationRejected: "onchainPaymentValidationRejected";
  PaymentValidationReverted: "onchainPaymentValidationReverted";
  PayoutFailed: "onchainPayoutFailed";
  Success: "onchainSuccess";
  UnexpectedReverted: "onchainUnexpectedReverted";
  ValidationRejected: "onchainValidationRejected";
  ValidationReverted: "onchainValidationReverted";
};

Defined in: apps/submitter/lib/types/Onchain.ts:5

Possible outcomes of submitting the Boop to the onchain EntryPoint contract, either during simulation or onchain execution.

Type declaration

CallReverted

readonly CallReverted: "onchainCallReverted" = "onchainCallReverted";

The call made by the account's execute function reverted.

EntryPointOutOfGas

readonly EntryPointOutOfGas: "onchainEntryPointOutOfGas" = "onchainEntryPointOutOfGas";

The EntryPoint ran out of gas. This is not supposed to happen and indicates either:

  1. In the case of a self-paying transaction, a payout function that consumes more gas during execution than during simulation.

  2. A submitter with a custom receive or fallback function that consumes more gas during execution than during simulation.

  3. An issue with the submitter, as only the EntryPoint can revert, and because of simulation we should always be able to provide enough gas that this does not happen (third-parties like accounts and paymasters are provided their separate gas limits and so cannot trigger an EntryPoint OOG revert).

ExecuteRejected

readonly ExecuteRejected: "onchainExecuteRejected" = "onchainExecuteRejected";

The account's execute function returned indicating a failure. This is typically caused by an incorrect input from the user.

ExecuteReverted

readonly ExecuteReverted: "onchainExecuteReverted" = "onchainExecuteReverted";

The account's execute call reverted.

ExtensionAlreadyRegistered

readonly ExtensionAlreadyRegistered: "onchainExtensionAlreadyRegistered" = "onchainExtensionAlreadyRegistered";

The account or the paymaster rejected the boop because the extension is already registered.

ExtensionNotRegistered

readonly ExtensionNotRegistered: "onchainExtensionNotRegistered" = "onchainExtensionNotRegistered";

The account or the paymaster rejected the boop because the extension hash not been registered.

GasPriceTooHigh

readonly GasPriceTooHigh: "onchainGasPriceTooHigh" = "onchainGasPriceTooHigh";

The boop got rejected because the onchain gas price was above the maxFeePerGas.

InsufficientStake

readonly InsufficientStake: "onchainInsufficientStake" = "onchainInsufficientStake";

The submitter or paymaster has insufficient stake.

InvalidExtensionValue

readonly InvalidExtensionValue: "onchainInvalidExtensionValue" = "onchainInvalidExtensionValue";

The account or the paymaster rejected the boop because an extension value in the extraData is invalid.

InvalidNonce

readonly InvalidNonce: "onchainInvalidNonce" = "onchainInvalidNonce";

The nonce provided was invalid outside of simulation.

InvalidSignature

readonly InvalidSignature: "onchainInvalidSignature" = "onchainInvalidSignature";

The account or the paymaster rejected the boop because of an invalid signature.

MissingGasValues

readonly MissingGasValues: "onchainMissingGasValues" = "onchainMissingGasValues";

A self-paying boop passes simulation but can't be submitted onchain because either its maxFeePerGas or gas limits are set to zero — this means either this would fail onchain because of zero values, or if we attach updated values, the signature would fail to verify. The Boop system imposes that a self-paying transaction must sign over its actual gas values for security.

MissingValidationInformation

readonly MissingValidationInformation: "onchainMissingValidationInformation" = "onchainMissingValidationInformation";

The boop passes simulation but can't be submitted onchain because either validation or payment validation has indicated that the status is unknown during validation. This typically means they need a signature, which could only be obtained once simulation was used to get the gas values to sign over (for self-paying transactions).

PaymentValidationRejected

readonly PaymentValidationRejected: "onchainPaymentValidationRejected" = "onchainPaymentValidationRejected";

The paymaster rejected the boop during payment validation.

PaymentValidationReverted

readonly PaymentValidationReverted: "onchainPaymentValidationReverted" = "onchainPaymentValidationReverted";

The paymaster's payout call reverted. This indicates either a dysfunctional paymaster or a dysfunctional submitter.

PayoutFailed

readonly PayoutFailed: "onchainPayoutFailed" = "onchainPayoutFailed";

When self-paying and the payment from the account fails, either because IAccount.payout reverts, consumes too much gas, or does not transfer the full cost to the submitter.

Success

readonly Success: "onchainSuccess" = "onchainSuccess";

The Boop succeeded: the intended call was made without errors.

UnexpectedReverted

readonly UnexpectedReverted: "onchainUnexpectedReverted" = "onchainUnexpectedReverted";

Unexpected revert of the boop, this is not supposed to happen and indicates a deep issue, in theory only possible if the EntryPoint contract itself is faulty.

ValidationRejected

readonly ValidationRejected: "onchainValidationRejected" = "onchainValidationRejected";

The account rejected the boop during validation.

ValidationReverted

readonly ValidationReverted: "onchainValidationReverted" = "onchainValidationReverted";

The account validation of the Boop reverted. This indicates either a dysfunctional account or a dysfunctional submitter.