Structural Error
In this page, we explore vulnerabilities caused by incorrect structural error.
Version Mismatch of Reference Implementation
There are cases where the Paymaster implements the v0.6 interface but references an EntryPoint from v0.7.
// https://github.com/eth-infinitism/account-abstraction/blob/releases/v0.6/contracts/core/EntryPoint.sol
// Entrypoint v0.6
function _validatePaymasterPrepayment(
uint256 opIndex,
UserOperation calldata op,
UserOpInfo memory opInfo,
uint256 requiredPreFund,
uint256 gasUsedByValidateAccountPrepayment
)
internal returns (bytes memory context, uint256 validationData) {
...
...
try IPaymaster(paymaster).validatePaymasterUserOp{gas : gas}(
op,
opInfo.userOpHash,
requiredPreFund
) returns (bytes memory _context, uint256 _validationData)
...Improper Handling of Invalid paymasterAndData Format During Validation
Last updated