Struct bus_mapping::state_db::StateDB
source · pub struct StateDB { /* private fields */ }
Expand description
In-memory key-value database that represents the Ethereum State Trie.
Implementations§
source§impl StateDB
impl StateDB
sourcepub fn set_account(&mut self, addr: &Address, acc: Account)
pub fn set_account(&mut self, addr: &Address, acc: Account)
Set an Account
at addr
in the StateDB.
sourcepub fn get_account(&self, addr: &Address) -> (bool, &Account)
pub fn get_account(&self, addr: &Address) -> (bool, &Account)
sourcepub fn get_account_mut(&mut self, addr: &Address) -> (bool, &mut Account)
pub fn get_account_mut(&mut self, addr: &Address) -> (bool, &mut Account)
sourcepub fn get_storage(&self, addr: &Address, key: &Word) -> (bool, &Word)
pub fn get_storage(&self, addr: &Address, key: &Word) -> (bool, &Word)
sourcepub fn get_transient_storage(&self, addr: &Address, key: &Word) -> (bool, &Word)
pub fn get_transient_storage(&self, addr: &Address, key: &Word) -> (bool, &Word)
sourcepub fn get_committed_storage(&self, addr: &Address, key: &Word) -> (bool, &Word)
pub fn get_committed_storage(&self, addr: &Address, key: &Word) -> (bool, &Word)
sourcepub fn get_storage_mut(
&mut self,
addr: &Address,
key: &Word
) -> (bool, &mut Word)
pub fn get_storage_mut( &mut self, addr: &Address, key: &Word ) -> (bool, &mut Word)
Get a mutable reference to the storage value from Account
at addr
,
at key
. Returns false when the Account
or key
wasn’t found in
the state and it is created. If the Account
or key
is not found
in the state, a zero Account
will be inserted, a zero value will
be inserted at key
in its storage, and the value will be returned
along with false.
sourcepub fn set_storage(&mut self, addr: &Address, key: &Word, value: &Word)
pub fn set_storage(&mut self, addr: &Address, key: &Word, value: &Word)
Set storage value at addr
and key
.
Writes into dirty_storage during transaction execution.
After transaction execution, dirty_storage
is committed into storage
in commit_tx
method.
sourcepub fn set_transient_storage(
&mut self,
addr: &Address,
key: &Word,
value: &Word
)
pub fn set_transient_storage( &mut self, addr: &Address, key: &Word, value: &Word )
Set transient storage value at addr
and key
.
Transient storage is cleared after transaction execution.
sourcepub fn get_balance(&self, addr: &Address) -> Word
pub fn get_balance(&self, addr: &Address) -> Word
Get balance of account with the given address.
sourcepub fn increase_nonce(&mut self, addr: &Address) -> u64
pub fn increase_nonce(&mut self, addr: &Address) -> u64
Increase nonce of account with addr
and return the previous value.
sourcepub fn check_account_in_access_list(&self, addr: &Address) -> bool
pub fn check_account_in_access_list(&self, addr: &Address) -> bool
Check whether addr
exists in account access list.
sourcepub fn add_account_to_access_list(&mut self, addr: Address) -> bool
pub fn add_account_to_access_list(&mut self, addr: Address) -> bool
Add addr
into account access list. Returns true
if it’s not in the
access list before.
sourcepub fn remove_account_from_access_list(&mut self, addr: &Address)
pub fn remove_account_from_access_list(&mut self, addr: &Address)
Remove addr
from account access list.
sourcepub fn check_account_storage_in_access_list(
&self,
pair: &(Address, Word)
) -> bool
pub fn check_account_storage_in_access_list( &self, pair: &(Address, Word) ) -> bool
Check whether (addr, key)
exists in account storage access list.
sourcepub fn add_account_storage_to_access_list(
&mut self,
(addr, key): (Address, Word)
) -> bool
pub fn add_account_storage_to_access_list( &mut self, (addr, key): (Address, Word) ) -> bool
Add (addr, key)
into account storage access list. Returns true
if
it’s not in the access list before.
sourcepub fn remove_account_storage_from_access_list(
&mut self,
pair: &(Address, Word)
)
pub fn remove_account_storage_from_access_list( &mut self, pair: &(Address, Word) )
Remove (addr, key)
from account storage access list.
sourcepub fn destruct_account(&mut self, addr: Address)
pub fn destruct_account(&mut self, addr: Address)
Set account as self destructed.
sourcepub fn set_refund(&mut self, value: u64)
pub fn set_refund(&mut self, value: u64)
Set refund
sourcepub fn commit_tx(&mut self)
pub fn commit_tx(&mut self)
Clear access list and refund, and commit dirty storage.
It should be invoked before processing
with new transaction with the same StateDB
.
sourcepub fn clear_transient_storage(&mut self)
pub fn clear_transient_storage(&mut self)
Clear transient storage.
Trait Implementations§
Auto Trait Implementations§
impl RefUnwindSafe for StateDB
impl Send for StateDB
impl Sync for StateDB
impl Unpin for StateDB
impl UnwindSafe for StateDB
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
§impl<T> Conv for T
impl<T> Conv for T
§impl<T> FmtForward for T
impl<T> FmtForward for T
§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.§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.§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.§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.§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.§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.§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.§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.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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>
§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
§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 more§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 more§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
§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
§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.§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.§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.§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> Tap for T
impl<T> Tap for T
§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 more§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 more§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 more§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 more§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 more§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 more§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.§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.§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.§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.§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.§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.§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.