Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

IAggregator

Aggregates and validates multiple signatures for a batch of user operations. A contract could implement this interface with custom validation schemes that allow signature aggregation, enabling significant optimizations and gas savings for execution and transaction data cost. Bundlers and clients whitelist supported aggregators. See https://eips.ethereum.org/EIPS/eip-7766[ERC-7766]

Functions

validateUserOpSignature

Validates the signature for a user operation. Returns an alternative signature that should be used during bundling.

function validateUserOpSignature(PackedUserOperation calldata userOp)
    external
    view
    returns (bytes memory sigForUserOp);

aggregateSignatures

Returns an aggregated signature for a batch of user operation's signatures.

function aggregateSignatures(PackedUserOperation[] calldata userOps)
    external
    view
    returns (bytes memory aggregatesSignature);

validateSignatures

*Validates that the aggregated signature is valid for the user operations. Requirements:

  • The aggregated signature MUST match the given list of operations.*
function validateSignatures(PackedUserOperation[] calldata userOps, bytes calldata signature) external view;