Variable: Submit
const Submit: {
BoopReplaced: "submitterBoopReplaced";
BufferExceeded: "submitterBufferExceeded";
CallReverted: "onchainCallReverted";
ClientError: "submitterClientError";
EntryPointOutOfGas: "onchainEntryPointOutOfGas";
ExecuteRejected: "onchainExecuteRejected";
ExecuteReverted: "onchainExecuteReverted";
ExtensionAlreadyRegistered: "onchainExtensionAlreadyRegistered";
ExtensionNotRegistered: "onchainExtensionNotRegistered";
ExternalSubmit: "submitterExternalSubmit";
GasPriceTooHigh: "onchainGasPriceTooHigh";
InsufficientStake: "onchainInsufficientStake";
InvalidExtensionValue: "onchainInvalidExtensionValue";
InvalidNonce: "onchainInvalidNonce";
InvalidSignature: "onchainInvalidSignature";
InvalidValues: "submitterInvalidValues";
MissingGasValues: "onchainMissingGasValues";
MissingValidationInformation: "onchainMissingValidationInformation";
NonceTooFarAhead: "submitterNonceTooFarAhead";
OverCapacity: "submitterOverCapacity";
PaymentValidationRejected: "onchainPaymentValidationRejected";
PaymentValidationReverted: "onchainPaymentValidationReverted";
PayoutFailed: "onchainPayoutFailed";
ReceiptTimeout: "submitterReceiptTimeout";
RpcError: "submitterRpcError";
SubmitTimeout: "submitterSubmitTimeout";
Success: "onchainSuccess";
UnexpectedError: "submitterUnexpectedError";
UnexpectedReverted: "onchainUnexpectedReverted";
ValidationRejected: "onchainValidationRejected";
ValidationReverted: "onchainValidationReverted";
};
Defined in: apps/submitter/lib/handlers/submit/types.ts:20
Possible output status of a submit
call (boop/submit
route).
Type declaration
BoopReplaced
readonly BoopReplaced: "submitterBoopReplaced" = "submitterBoopReplaced";
The boop has been replaced by a newer boop.
BufferExceeded
readonly BufferExceeded: "submitterBufferExceeded" = "submitterBufferExceeded";
The submitter rejected the request because of its Boop buffering policies.
CallReverted
readonly CallReverted: "onchainCallReverted" = "onchainCallReverted";
The call made by the account's execute
function reverted.
ClientError
readonly ClientError: "submitterClientError" = "submitterClientError";
Unrecoverable client-side error.
EntryPointOutOfGas
readonly EntryPointOutOfGas: "onchainEntryPointOutOfGas" = "onchainEntryPointOutOfGas";
The EntryPoint ran out of gas. This is not supposed to happen and indicates either:
-
In the case of a self-paying transaction, a
payout
function that consumes more gas during execution than during simulation. -
A submitter with a custom
receive
orfallback
function that consumes more gas during execution than during simulation. -
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.
ExternalSubmit
readonly ExternalSubmit: "submitterExternalSubmit" = "submitterExternalSubmit";
Boop was submitted onchain by another submitter or entity.
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.
InvalidValues
readonly InvalidValues: "submitterInvalidValues" = "submitterInvalidValues";
Some values provided as input are invalid (e.g. gas limits, timeout).
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).
NonceTooFarAhead
readonly NonceTooFarAhead: "submitterNonceTooFarAhead" = "submitterNonceTooFarAhead";
The supplied nonce is too far ahead of the current nonce value.
OverCapacity
readonly OverCapacity: "submitterOverCapacity" = "submitterOverCapacity";
The submitter rejected the request because it is over capacity.
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.
ReceiptTimeout
readonly ReceiptTimeout: "submitterReceiptTimeout" = "submitterReceiptTimeout";
Timed out while waiting for a receipt. This could indicate that the submitter tx is stuck in the mempool or an RPC issue.
RpcError
readonly RpcError: "submitterRpcError" = "submitterRpcError";
Error from the node's JSON-RPC server.
SubmitTimeout
readonly SubmitTimeout: "submitterSubmitTimeout" = "submitterSubmitTimeout";
The RPC execution call (or related RPC call) timed out.
Success
readonly Success: "onchainSuccess" = "onchainSuccess";
The Boop succeeded: the intended call was made without errors.
UnexpectedError
readonly UnexpectedError: "submitterUnexpectedError" = "submitterUnexpectedError";
The submitter failed with an unexpected error.
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.