pub struct UserOperation {
pub sender: [u8; 20],
pub nonce: [u8; 32],
pub init_code: Vec<u8>,
pub call_data: Vec<u8>,
pub call_gas_limit: [u8; 32],
pub verification_gas_limit: [u8; 32],
pub pre_verification_gas: [u8; 32],
pub max_fee_per_gas: [u8; 32],
pub max_priority_fee_per_gas: [u8; 32],
pub paymaster_and_data: Vec<u8>,
}Expand description
EIP-4337 UserOperation for account abstraction wallets.
This struct represents a user operation that gets submitted to a bundler instead of a regular transaction.
Fields§
§sender: [u8; 20]The account making the operation.
nonce: [u8; 32]Anti-replay nonce.
init_code: Vec<u8>Contract creation code + calldata (for new accounts).
call_data: Vec<u8>The calldata to execute on the sender account.
call_gas_limit: [u8; 32]Gas limit for the execution phase.
verification_gas_limit: [u8; 32]Gas limit for verification.
pre_verification_gas: [u8; 32]Gas for pre-verification (bundler overhead).
max_fee_per_gas: [u8; 32]Maximum fee per gas.
max_priority_fee_per_gas: [u8; 32]Maximum priority fee per gas.
paymaster_and_data: Vec<u8>Paymaster address + data (empty if self-paying).
Implementations§
Source§impl UserOperation
impl UserOperation
Sourcepub fn pack(&self) -> Vec<u8> ⓘ
pub fn pack(&self) -> Vec<u8> ⓘ
Pack the UserOperation for hashing (without signature).
Returns the ABI-encoded hash input as specified in EIP-4337.
Sourcepub fn hash(&self, entry_point: &[u8; 20], chain_id: u64) -> [u8; 32]
pub fn hash(&self, entry_point: &[u8; 20], chain_id: u64) -> [u8; 32]
Compute the UserOperation hash.
keccak256(abi.encode(pack(userOp), entryPoint, chainId))
Sourcepub fn sign(
&self,
signer: &EthereumSigner,
entry_point: &[u8; 20],
chain_id: u64,
) -> Result<EthereumSignature, SignerError>
pub fn sign( &self, signer: &EthereumSigner, entry_point: &[u8; 20], chain_id: u64, ) -> Result<EthereumSignature, SignerError>
Sign this UserOperation.
Trait Implementations§
Source§impl Clone for UserOperation
impl Clone for UserOperation
Source§fn clone(&self) -> UserOperation
fn clone(&self) -> UserOperation
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for UserOperation
impl RefUnwindSafe for UserOperation
impl Send for UserOperation
impl Sync for UserOperation
impl Unpin for UserOperation
impl UnsafeUnpin for UserOperation
impl UnwindSafe for UserOperation
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more