Changes from ERC-4337

Removal of Entrypoint Address

The Entrypoint contract used in ERC-4337 is no longer used. To maintain consistency with ERC-4337, the msg.sender calling validation functions like validateTransaction at wallet and is set to AA_ENTRY_POINT, which is 0x0000000000000000000000000000000000007560.

Wallet providers need to modify or add to the contract's permissions accordingly.

Summary of Changes in Wallets, Paymasters, and Factories

Some function interfaces, which are called inside Wallet and Paymaster contracts, will change. The summary of changes in the selectors and parameters are as follows:

ERC-4337RIP-7560

Wallet

function validateUserOp(

PackedUseroperation calldata userOp,

bytes32 userOpHash,

uint256 missingAccountFunds

) external returns (uint256 validationData);

function validateTransaction(

uint256 version,

bytes32 txHash,

bytes transaction

) external returns (bytes32 validationData);

Paymaster

function validatePaymasterUserOp(

PackedUseroperation calldata userOp,

bytes32 userOpHash,

uint256 maxCost

) external returns (bytes memory context, uint256 validationData);

function postOp(

PostOpMode mode,

bytes calldata context,

uint256 actualGasCost,

uint256 actualUserOpFeePerGas

) external;

function validatePaymasterTransaction(

uint256 version,

bytes32 txHash,

bytes transaction

) external returns (bytes32 validationData, bytes context);

function postPaymasterTransaction(

bool success,

uint256 actualGasCost,

bytes context

) external;

Last updated