pub struct AccountOverride {
pub balance: Option<U256>,
pub nonce: Option<u64>,
pub code: Option<Bytes>,
pub state: Option<B256HashMap<B256>>,
pub state_diff: Option<B256HashMap<B256>>,
pub move_precompile_to: Option<Address>,
}Expand description
Custom account override used in call
Fields§
§balance: Option<U256>Fake balance to set for the account before executing the call.
nonce: Option<u64>Fake nonce to set for the account before executing the call.
code: Option<Bytes>Fake EVM bytecode to inject into the account before executing the call.
state: Option<B256HashMap<B256>>Fake key-value mapping to override all slots in the account storage before executing the call.
state_diff: Option<B256HashMap<B256>>Fake key-value mapping to override individual slots in the account storage before executing the call.
move_precompile_to: Option<Address>Moves addresses precompile into the specified address. This move is done before the ‘code’ override is set. When the specified address is not a precompile, the behaviour is undefined and different clients might behave differently.
Implementations§
Source§impl AccountOverride
impl AccountOverride
Sourcepub fn with_7702_delegation_designator(
self,
delegation_address: Address,
) -> Self
pub fn with_7702_delegation_designator( self, delegation_address: Address, ) -> Self
Convenience function that sets overrides the code with the EIP-7702 delegation designator
for delegation_address
Sourcepub fn with_state(self, state: impl IntoIterator<Item = (B256, B256)>) -> Self
pub fn with_state(self, state: impl IntoIterator<Item = (B256, B256)>) -> Self
Configures the state overrides
Sourcepub fn with_state_diff(
self,
state_diff: impl IntoIterator<Item = (B256, B256)>,
) -> Self
pub fn with_state_diff( self, state_diff: impl IntoIterator<Item = (B256, B256)>, ) -> Self
Configures the state diffs
Sourcepub const fn with_balance(self, balance: U256) -> Self
pub const fn with_balance(self, balance: U256) -> Self
Configures the balance override
Sourcepub const fn with_nonce(self, nonce: u64) -> Self
pub const fn with_nonce(self, nonce: u64) -> Self
Configures the nonce override
Sourcepub fn set_state(&mut self, state: impl IntoIterator<Item = (B256, B256)>)
pub fn set_state(&mut self, state: impl IntoIterator<Item = (B256, B256)>)
Sets the state overrides in place.
Sourcepub fn set_state_diff(
&mut self,
state_diff: impl IntoIterator<Item = (B256, B256)>,
)
pub fn set_state_diff( &mut self, state_diff: impl IntoIterator<Item = (B256, B256)>, )
Sets the state diffs in place.
Sourcepub const fn set_balance(&mut self, balance: U256)
pub const fn set_balance(&mut self, balance: U256)
Sets the balance override in place.
Sourcepub const fn set_move_precompile_to(&mut self, address: Address)
pub const fn set_move_precompile_to(&mut self, address: Address)
Sets the move precompile address in place.
Sourcepub fn with_code_opt(self, code: Option<impl Into<Bytes>>) -> Self
pub fn with_code_opt(self, code: Option<impl Into<Bytes>>) -> Self
Conditionally sets the bytecode override and returns self.
Sourcepub fn with_7702_delegation_designator_opt(
self,
delegation_address: Option<Address>,
) -> Self
pub fn with_7702_delegation_designator_opt( self, delegation_address: Option<Address>, ) -> Self
Convenience function that sets overrides the code with the EIP-7702 delegation designator
for delegation_address if it is provided
Sourcepub const fn with_balance_opt(self, balance: Option<U256>) -> Self
pub const fn with_balance_opt(self, balance: Option<U256>) -> Self
Conditionally sets the balance override and returns self.
Sourcepub const fn with_nonce_opt(self, nonce: Option<u64>) -> Self
pub const fn with_nonce_opt(self, nonce: Option<u64>) -> Self
Conditionally sets the nonce override and returns self.
Sourcepub const fn with_move_precompile_to_opt(self, address: Option<Address>) -> Self
pub const fn with_move_precompile_to_opt(self, address: Option<Address>) -> Self
Conditionally sets the move precompile address and returns self.
Trait Implementations§
Source§impl Clone for AccountOverride
impl Clone for AccountOverride
Source§fn clone(&self) -> AccountOverride
fn clone(&self) -> AccountOverride
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for AccountOverride
impl Debug for AccountOverride
Source§impl Default for AccountOverride
impl Default for AccountOverride
Source§fn default() -> AccountOverride
fn default() -> AccountOverride
Source§impl<'de> Deserialize<'de> for AccountOverridewhere
AccountOverride: Default,
impl<'de> Deserialize<'de> for AccountOverridewhere
AccountOverride: Default,
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl PartialEq for AccountOverride
impl PartialEq for AccountOverride
Source§impl Serialize for AccountOverride
impl Serialize for AccountOverride
impl Eq for AccountOverride
impl StructuralPartialEq for AccountOverride
Auto Trait Implementations§
impl !Freeze for AccountOverride
impl RefUnwindSafe for AccountOverride
impl Send for AccountOverride
impl Sync for AccountOverride
impl Unpin for AccountOverride
impl UnwindSafe for AccountOverride
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> FmtForward for T
impl<T> FmtForward for T
Source§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self to use its Binary implementation when Debug-formatted.Source§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self to use its Display implementation when
Debug-formatted.Source§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.Source§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.Source§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self to use its Octal implementation when Debug-formatted.Source§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.Source§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.Source§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
Source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
Source§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
Source§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
Source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.Source§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.Source§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.Source§impl<T> Tap for T
impl<T> Tap for T
Source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read moreSource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read moreSource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read moreSource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read moreSource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.Source§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.Source§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.Source§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.Source§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.