![]() ![]() Maximum fee per gas (similar to EIP-1559 max_fee_per_gas) The amount of gas to pay for to compensate the bundler for pre-verification execution and calldata The amount of gas to allocate for the verification step The amount of gas to allocate the main execution call The data to pass to the sender during the main execution call The initCode of the account (needed if and only if the account is not yet on-chain and needs to be created) Instead, users package up the action they want their account to take in an ABI-encoded struct called a UserOperation: FieldĪnti-replay parameter also used as the salt for first-time account creation To avoid Ethereum consensus changes, we do not attempt to create new transaction types for account-abstracted transactions. Bundlers/Clients whitelist the supported aggregators. Aggregator - a helper contract trusted by accounts to validate an aggregated signature.Note that not all block-builders on the network are required to be bundlers Bundler - a node (block builder) that bundles multiple UserOperations and create an EntryPoint.handleOps() transaction.Bundlers/Clients whitelist the supported entrypoint. EntryPoint - a singleton contract to execute bundles of UserOperations.Sender - the account contract sending a user operation.also, the “nonce” and “signature” fields usage is not defined by the protocol, but by each account implementation.unlike a transaction, it contains several other fields, described below.Like a transaction, it contains “sender”, “to”, “calldata”, “maxFeePerGas”, “maxPriorityFee”, “signature”, “nonce”. ![]() To avoid confusion, it is not named “transaction”. ![]() UserOperation - a structure that describes a transaction to be sent on behalf of a user.Pay tx fees with ERC-20 tokens, allow developers to pay fees for their users, and EIP-3074-like sponsored transaction use cases more generally.Atomic multi-operations (similar goal to EIP-3074).Hence, to increase the chance of faster adoption, this proposal avoids Ethereum consensus changes. Do not require any Ethereum consensus changes: Ethereum consensus layer development is focusing on the merge and later on scalability-oriented features, and there may not be any opportunity for further protocol changes for a long time.Work with all activity happening over a public mempool users do not need to know the direct communication addresses (eg.Allow any bundler (think: block builder) to participate in the process of including account-abstracted user operations. ![]() Completely remove any need at all for users to also have EOAs (as status quo SC wallets and EIP-3074 both require) Achieve the key goal of account abstraction: allow users to use smart contract wallets containing arbitrary verification logic instead of EOAs as their primary account.This proposal takes a different approach, avoiding any adjustments to the consensus layer. See also and the links therein for historical work and motivation, and EIP-2938 for a consensus layer proposal for implementing the same goal. A special class of actor called bundlers (either block builders, or users that can send transactions to block builders through a bundle marketplace) package up a set of these objects into a transaction making a handleOps call to a special contract, and that transaction then gets included in a block. Users send UserOperation objects into a separate mempool. Instead of adding new protocol features and changing the bottom-layer transaction type, this proposal instead introduces a higher-layer pseudo-transaction object called a UserOperation. Reputation scoring and throttling/banning for global entitiesĪn account abstraction proposal which completely avoids the need for consensus-layer protocol changes.Client behavior upon receiving a UserOperation.Required entry point contract functionality. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |