Skip to content

Commit

Permalink
chore: add missing errors
Browse files Browse the repository at this point in the history
  • Loading branch information
joepegler committed Oct 2, 2024
1 parent 03b97cd commit eb936d4
Showing 1 changed file with 102 additions and 32 deletions.
134 changes: 102 additions & 32 deletions docs/errors.json
Original file line number Diff line number Diff line change
Expand Up @@ -93,58 +93,121 @@
]
},
{
"name": "SenderAlreadyDeployedError",
"regex": "aa10",
"description": "Smart account sender is already deployed.",
"name": "SenderAlreadyConstructedError",
"regex": "AA10",
"description": "The sender (smart account) is already constructed.",
"causes": [
"Your smart wallet is already created but you are still sending initcode in userOp"
"You're trying to deploy a Biconomy smart account that has already been deployed"
],
"solutions": [
"Remove the initCode from the user operation and set it to \"0x\""
"Remove the initCode from the user operation and set it to \"0x\"",
"Check if the Biconomy smart account is already deployed before attempting to deploy it again"
]
},
{
"name": "InitCodeRevertedError",
"regex": "aa13",
"description": "EntryPoint failed to create the smart account with the initCode provided.",
"name": "AccountNotDeployedError",
"regex": "AA20",
"description": "The account (sender) is not deployed.",
"causes": [
"The initCode ran out of gas",
"The initCode reverted during the account deployment process",
"The userOp doesn't have enough verificationGasLimit to create smart account"
"You're trying to use a Biconomy smart account that hasn't been deployed yet"
],
"solutions": [
"Verify that the factory address in the initCode is correct (the factory address is the first 20 bytes of the initCode).",
"Verify that the initCode is correct.",
"Check whether the verificationGasLimit is sufficient for the initCode to complete without running out of gas.",
"Increase verificationGasLimit to be able to send transaction."
"Deploy the Biconomy smart account first by including the initCode in the user operation",
"Verify that the Biconomy smart account address is correct and has been properly deployed"
]
},
{
"name": "SenderAddressMismatchError",
"regex": "aa14",
"description": "The initCode returned a different smart account address than expected.",
"name": "PaymasterNotDeployedError",
"regex": "AA30",
"description": "The paymaster contract is not deployed.",
"causes": [
"Account deployed with the initCode provided does not match the sender address provided",
"The factory contract that you are using to deploy smart account does not return smart account address",
"The sender field in userOp does not have the same address as factory contract is creating for you"
"The Biconomy paymaster address specified in the user operation doesn't exist on-chain"
],
"solutions": [
"Verify that the sender address was generated deterministically from the initCode. (consider leveraging functions like getSenderAddress)",
"Verify that the factory address in the initCode is correct (the factory address is the first 20 bytes of the initCode)",
"Verify that the initCode is correct."
"Verify that the Biconomy paymaster address in the paymasterAndData field is correct",
"Ensure that the Biconomy paymaster contract has been deployed to the correct network"
]
},
{
"name": "BundlerOutOfGasError",
"regex": "aa95",
"description": "The bundler tried to bundle the user operation with the gas limit set too low, or too high.",
"name": "PostOpRevertedError",
"regex": "AA50",
"description": "The postOp call reverted.",
"causes": [
"The callGasLimit or verificationGasLimit is not correct for executing callData sent in userOp.",
"The callGasLimit or verificationGasLimit has not been retrieved via the relevant bundler api."
"The postOp function in the Biconomy paymaster contract encountered an error"
],
"solutions": [
"Configure the bundler send gas limits properly.",
"Make sure callGasLimit and verificationGasLimit are not too high/low and use correct estimated values for preparing the userOp."
"Check the implementation of the postOp function in your Biconomy paymaster contract",
"Ensure that the postOp function can handle all possible scenarios after the user operation execution"
]
},
{
"name": "TransactionRejectedError",
"regex": "-32500",
"description": "Transaction rejected by entryPoint's simulateValidation, during account creation or validation.",
"causes": [
"The UserOperation failed validation in the EntryPoint contract",
"Issues during Biconomy smart account creation or validation process"
],
"solutions": [
"Check the UserOperation parameters for correctness",
"Ensure the Biconomy smart account creation process is properly configured",
"Review the validation logic in your Biconomy smart account contract"
]
},
{
"name": "RejectedByPaymasterError",
"regex": "-32501",
"description": "Transaction rejected by paymaster's validatePaymasterUserOp.",
"causes": [
"The Biconomy paymaster contract rejected the UserOperation during validation",
"Insufficient funds or invalid paymaster data"
],
"solutions": [
"Verify the Biconomy paymaster contract has sufficient funds",
"Check the paymasterAndData field in the UserOperation",
"Review the validation logic in your Biconomy paymaster contract"
]
},
{
"name": "OpcodeViolationError",
"regex": "-32502",
"description": "Transaction rejected because of opcode validation.",
"causes": [
"The UserOperation contains forbidden opcodes",
"Violation of ERC-4337 security rules in Biconomy implementation"
],
"solutions": [
"Review the calldata in your UserOperation",
"Ensure your Biconomy smart account and paymaster contracts comply with ERC-4337 rules",
"Check for any complex or gas-intensive operations that might be flagged"
]
},
{
"name": "UserOperationOutOfTimeRangeError",
"regex": "-32503",
"description": "UserOperation out of time-range: either account or paymaster returned a time-range, and it is already expired (or will expire soon).",
"causes": [
"The UserOperation's validity timeframe has expired",
"Clock skew between client and Biconomy bundler"
],
"solutions": [
"Adjust the time range in your UserOperation",
"Ensure your client's clock is synchronized",
"Resubmit the UserOperation with an updated timeframe"
]
},
{
"name": "ThrottledOrBannedError",
"regex": "-32504",
"description": "Transaction rejected because paymaster (or signature aggregator) is throttled/banned.",
"causes": [
"The Biconomy paymaster or signature aggregator has exceeded usage limits",
"The entity has been temporarily or permanently banned"
],
"solutions": [
"Wait and retry the operation later",
"Check the status of your Biconomy paymaster or signature aggregator",
"Consider using an alternative Biconomy paymaster if the issue persists"
]
},
{
Expand Down Expand Up @@ -271,5 +334,12 @@
"Top up your smart account with native token using the counterfactual address as the recipient.",
"Top up your paymaster with native token."
]
},
{
"name": "InitCodeFailedOrOOGError",
"regex": "AA13",
"description": "The initCode execution failed or ran out of gas.",
"causes": [
"The initCode provided in the UserOperation for the Biconomy smart account is invalid",
}
]
]

0 comments on commit eb936d4

Please sign in to comment.