Kinto EntryPoint

Deployment Address

**Mainnet: ** 0x2843C269D2a64eCfA63548E8B3Fc0FD23B7F70cb

Code: EntryPoint.sol


Basics

  • Serves as a single EntryPoint implementation for Account Abstraction (EIP-4337).

  • Manages user operations, including validation, execution, and compensation for operations.

  • Supports aggregated operations from multiple aggregators.

  • Implements functionalities related to stake management and nonce management.

  • Provides interface support checks and utilities for handling delegate calls and reverts


State Functions

setWalletFactory(address _walletFactory) external

handleOps(UserOperation[] calldata ops, address payable beneficiary) public nonReentrant

handleAggregatedOps(UserOpsPerAggregator[] calldata opsPerAggregator, address payable beneficiary) public nonReentrant

getSenderAddress(bytes calldata initCode) public

delegateAndRevert(address target, bytes calldata data) external

  1. setWalletFactory (Admin only)

Sets the wallet factory address.

function setWalletFactory(address _walletFactory) external;
Parameter
Type
Explanation

_walletFactory

address

The address of the wallet factory.

  1. handleOps

Handles an array of user operations.

function handleOps(UserOperation[] calldata ops, address payable beneficiary) public nonReentrant;
Parameter
Type
Explanation

ops

UserOperation[] calldata

Array of user operations.

beneficiary

address payable

Address to receive the fees.

  1. handleAggregatedOps

Handles aggregated operations from multiple aggregators.

function handleAggregatedOps(UserOpsPerAggregator[] calldata opsPerAggregator, address payable beneficiary) public nonReentrant;
Parameter
Type
Explanation

opsPerAggregator

UserOpsPerAggregator[] calldata

Array of operations per aggregator.

beneficiary

address payable

Address to receive the fees.

  1. getSenderAddress

Gets the address of a sender based on the provided initialization code.

function getSenderAddress(bytes calldata initCode) public;
Parameter
Type
Explanation

initCode

bytes calldata

The initialization code.

  1. delegateAndRevert

Delegates a call to another contract and reverts.

function delegateAndRevert(address target, bytes calldata data) external;
Parameter
Type
Explanation

target

address

The target address of the delegatecall.

data

bytes calldata

The data to be sent in the call.


View Function

supportsInterface(bytes4 interfaceId) public view virtual override returns (bool)

getUserOpHash(UserOperation calldata userOp) public view returns (bytes32)

  1. supportsInterface

Checks if the contract supports an interface.

function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool);
Parameter
Type
Explanation

interfaceId

bytes4

The interface identifier.

  1. getUserOpHash

Gets the hash of a user operation.

function getUserOpHash(UserOperation calldata userOp) public view returns (bytes32);
Parameter
Type
Explanation

userOp

UserOperation calldata

The user operation.


Events

  1. FailedOp Emitted when an operation fails.

    event FailedOp(uint256 opIndex, string reason);
  2. FailedOpWithRevert Emitted when an operation fails with a revert reason.

    event FailedOpWithRevert(uint256 opIndex, string reason, bytes returnData);
  3. PostOpRevertReason Emitted when a post-operation reverts.

    event PostOpRevertReason(bytes32 userOpHash, address sender, uint256 nonce, bytes revertReason);
  4. UserOperationRevertReason Emitted when a user operation reverts.

    event UserOperationRevertReason(bytes32 userOpHash, address sender, uint256 nonce, bytes revertReason);
  5. AccountDeployed Emitted when an account is deployed.

    event AccountDeployed(bytes32 userOpHash, address sender, address factory, address paymaster);
  6. BeforeExecution Emitted before execution of operations.

    event BeforeExecution();
  7. SignatureAggregatorChanged Emitted when the signature aggregator is changed.

    event SignatureAggregatorChanged(address aggregator);
  8. UserOperationEvent Emitted for each user operation event.

    event UserOperationEvent(bytes32 userOpHash, address sender, address paymaster, uint256 nonce, bool success, uint256 actualGasCost, uint256 actualGas);
  9. PostOpReverted Emitted when a post-operation is reverted.

    event PostOpReverted(bytes reason);
  10. SenderAddressResult Emitted for the result of getSenderAddress.

    event SenderAddressResult(address sender);
  11. DelegateAndRevert Emitted when delegateAndRevert is called.

    event DelegateAndRevert(bool success, bytes ret);

Last updated