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;