Variable: Submit
const Submit: {
AlreadyProcessing: "submitterAlreadyProcessing";
BoopReplaced: "submitterBoopReplaced";
BufferExceeded: "submitterBufferExceeded";
CallReverted: "onchainCallReverted";
ClientError: "submitterClientError";
EntryPointOutOfGas: "onchainEntryPointOutOfGas";
ExecuteRejected: "onchainExecuteRejected";
ExecuteReverted: "onchainExecuteReverted";
ExtensionAlreadyRegistered: "onchainExtensionAlreadyRegistered";
ExtensionNotRegistered: "onchainExtensionNotRegistered";
ExternalSubmit: "submitterExternalSubmit";
GasPriceTooHigh: "submitterGasPriceTooHigh";
GasPriceTooLow: "onchainGasPriceTooLow";
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";
SubmitterFeeTooLow: "submitterSubmitterFeeTooLow";
SubmitTimeout: "submitterSubmitTimeout";
Success: "onchainSuccess";
TransactionManagementError: "submitterTransactionManagementError";
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
AlreadyProcessing
readonly AlreadyProcessing: "submitterAlreadyProcessing" = "submitterAlreadyProcessing";
A boop was submitted, but collides with a boop that is already currently being processed
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: "submitterGasPriceTooHigh" = "submitterGasPriceTooHigh";
The boop got rejected because the maxFeePerGas (either explicitly specified by the sender or computed from the network) was higher than what the submitter was willing to accept.
GasPriceTooLow
readonly GasPriceTooLow: "onchainGasPriceTooLow" = "onchainGasPriceTooLow";
The boop got rejected because the maxFeePerGas was lower than the onchain gas price (base fee).
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.
SubmitterFeeTooLow
readonly SubmitterFeeTooLow: "submitterSubmitterFeeTooLow" = "submitterSubmitterFeeTooLow";
The boop was rejected because the provided submitter fee is too low.
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.
TransactionManagementError
readonly TransactionManagementError: "submitterTransactionManagementError" = "submitterTransactionManagementError";
The submitter had an issue with its transaction management. Typically this means that another transaction landed for the EVM nonce that we were using for the operation. This is usually solveable by retrying the operation.
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.