Struct storage_client::StorageClient
source · pub struct StorageClient { /* private fields */ }
Implementations§
source§impl StorageClient
impl StorageClient
pub fn new(server_address: &SocketAddr, timeout: u64) -> Self
pub fn get_account_state_with_proof_by_version( &self, address: AccountAddress, version: Version ) -> Result<(Option<AccountStateBlob>, SparseMerkleProof<AccountStateBlob>), Error>
pub fn get_startup_info(&self) -> Result<Option<StartupInfo>, Error>
pub fn save_transactions( &self, txns_to_commit: Vec<TransactionToCommit>, first_version: Version, ledger_info_with_sigs: Option<LedgerInfoWithSignatures> ) -> Result<(), Error>
Trait Implementations§
source§impl DbReader for StorageClient
impl DbReader for StorageClient
fn get_account_state_with_proof_by_version( &self, address: AccountAddress, version: u64 ) -> Result<(Option<AccountStateBlob>, SparseMerkleProof<AccountStateBlob>)>
source§fn get_startup_info(&self) -> Result<Option<StartupInfo>>
fn get_startup_info(&self) -> Result<Option<StartupInfo>>
Gets information needed from storage during the main node startup.
See
DiemDB::get_startup_info
.source§fn get_latest_account_state(
&self,
_address: AccountAddress
) -> Result<Option<AccountStateBlob>>
fn get_latest_account_state( &self, _address: AccountAddress ) -> Result<Option<AccountStateBlob>>
source§fn get_latest_ledger_info(&self) -> Result<LedgerInfoWithSignatures>
fn get_latest_ledger_info(&self) -> Result<LedgerInfoWithSignatures>
Returns the latest ledger info.
source§fn get_account_transaction(
&self,
_address: AccountAddress,
_seq_num: u64,
_include_events: bool,
_ledger_version: Version
) -> Result<Option<TransactionWithProof>>
fn get_account_transaction( &self, _address: AccountAddress, _seq_num: u64, _include_events: bool, _ledger_version: Version ) -> Result<Option<TransactionWithProof>>
Returns a transaction that is the
seq_num
-th one associated with the given account. If
the transaction with given seq_num
doesn’t exist, returns None
.source§fn get_account_transactions(
&self,
_address: AccountAddress,
_start_seq_num: u64,
_limit: u64,
_include_events: bool,
_ledger_version: Version
) -> Result<AccountTransactionsWithProof>
fn get_account_transactions( &self, _address: AccountAddress, _start_seq_num: u64, _limit: u64, _include_events: bool, _ledger_version: Version ) -> Result<AccountTransactionsWithProof>
Returns the list of transactions sent by an account with
address
starting
at sequence number seq_num
. Will return no more than limit
transactions.
Will ignore transactions with txn.version > ledger_version
. Optionally
fetch events for each transaction when fetch_events
is true
.source§fn get_transactions(
&self,
_start_version: u64,
_limit: u64,
_ledger_version: u64,
_fetch_events: bool
) -> Result<TransactionListWithProof>
fn get_transactions( &self, _start_version: u64, _limit: u64, _ledger_version: u64, _fetch_events: bool ) -> Result<TransactionListWithProof>
source§fn get_events(
&self,
_key: &EventKey,
_start: u64,
_order: Order,
_limit: u64
) -> Result<Vec<(u64, ContractEvent)>>
fn get_events( &self, _key: &EventKey, _start: u64, _order: Order, _limit: u64 ) -> Result<Vec<(u64, ContractEvent)>>
Returns events by given event key
source§fn get_events_with_proofs(
&self,
_event_key: &EventKey,
_start: u64,
_order: Order,
_limit: u64,
_known_version: Option<u64>
) -> Result<Vec<EventWithProof>>
fn get_events_with_proofs( &self, _event_key: &EventKey, _start: u64, _order: Order, _limit: u64, _known_version: Option<u64> ) -> Result<Vec<EventWithProof>>
Returns events by given event key
source§fn get_event_by_version_with_proof(
&self,
_event_key: &EventKey,
_version: u64,
_proof_version: u64
) -> Result<EventByVersionWithProof>
fn get_event_by_version_with_proof( &self, _event_key: &EventKey, _version: u64, _proof_version: u64 ) -> Result<EventByVersionWithProof>
Returns the [
NewBlockEvent
] for the block containing the requested
version
and proof that the block actually contains the version
.source§fn get_state_proof(&self, _known_version: u64) -> Result<StateProof>
fn get_state_proof(&self, _known_version: u64) -> Result<StateProof>
Returns proof of new state relative to version known to client
source§fn get_state_proof_with_ledger_info(
&self,
_known_version: u64,
_ledger_info: LedgerInfoWithSignatures
) -> Result<StateProof>
fn get_state_proof_with_ledger_info( &self, _known_version: u64, _ledger_info: LedgerInfoWithSignatures ) -> Result<StateProof>
Returns proof of new state for a given ledger info with signatures relative to version known
to client
source§fn get_account_state_with_proof(
&self,
_address: AccountAddress,
_version: Version,
_ledger_version: Version
) -> Result<AccountStateWithProof>
fn get_account_state_with_proof( &self, _address: AccountAddress, _version: Version, _ledger_version: Version ) -> Result<AccountStateWithProof>
Returns the account state corresponding to the given version and account address with proof
based on
ledger_version
source§fn get_latest_state_root(&self) -> Result<(u64, HashValue)>
fn get_latest_state_root(&self) -> Result<(u64, HashValue)>
source§fn get_latest_tree_state(&self) -> Result<TreeState>
fn get_latest_tree_state(&self) -> Result<TreeState>
Gets the latest TreeState no matter if db has been bootstrapped.
Used by the Db-bootstrapper.
source§fn get_epoch_ending_ledger_infos(
&self,
_start_epoch: u64,
_end_epoch: u64
) -> Result<EpochChangeProof>
fn get_epoch_ending_ledger_infos( &self, _start_epoch: u64, _end_epoch: u64 ) -> Result<EpochChangeProof>
source§fn get_epoch_ending_ledger_info(
&self,
_: u64
) -> Result<LedgerInfoWithSignatures>
fn get_epoch_ending_ledger_info( &self, _: u64 ) -> Result<LedgerInfoWithSignatures>
Get the ledger info of the epoch that
known_version
belongs to.§fn get_last_version_before_timestamp(
&self,
_timestamp: u64,
_ledger_version: u64
) -> Result<u64, Error>
fn get_last_version_before_timestamp( &self, _timestamp: u64, _ledger_version: u64 ) -> Result<u64, Error>
Gets the version of the last transaction committed before timestamp,
a commited block at or after the required timestamp must exist (otherwise it’s possible
the next block committed as a timestamp smaller than the one in the request).
§fn get_latest_version(&self) -> Result<u64, Error>
fn get_latest_version(&self) -> Result<u64, Error>
Returns the latest ledger info.
§fn get_latest_commit_metadata(&self) -> Result<(u64, u64), Error>
fn get_latest_commit_metadata(&self) -> Result<(u64, u64), Error>
Returns the latest version and committed block timestamp
§fn get_latest_transaction_info_option(
&self
) -> Result<Option<(u64, TransactionInfo)>, Error>
fn get_latest_transaction_info_option( &self ) -> Result<Option<(u64, TransactionInfo)>, Error>
Gets the latest transaction info.
N.B. Unlike get_startup_info(), even if the db is not bootstrapped, this can return
Some
– those from a db-restore run.§fn get_accumulator_root_hash(&self, _version: u64) -> Result<HashValue, Error>
fn get_accumulator_root_hash(&self, _version: u64) -> Result<HashValue, Error>
Gets the transaction accumulator root hash at specified version.
Caller must guarantee the version is not greater than the latest version.
source§impl DbWriter for StorageClient
impl DbWriter for StorageClient
source§fn save_transactions(
&self,
txns_to_commit: &[TransactionToCommit],
first_version: Version,
ledger_info_with_sigs: Option<&LedgerInfoWithSignatures>
) -> Result<()>
fn save_transactions( &self, txns_to_commit: &[TransactionToCommit], first_version: Version, ledger_info_with_sigs: Option<&LedgerInfoWithSignatures> ) -> Result<()>
Persist transactions. Called by the executor module when either syncing nodes or committing
blocks during normal operation.
See
DiemDB::save_transactions
.Auto Trait Implementations§
impl RefUnwindSafe for StorageClient
impl Send for StorageClient
impl Sync for StorageClient
impl Unpin for StorageClient
impl UnwindSafe for StorageClient
Blanket Implementations§
§impl<T> Conv for T
impl<T> Conv for 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,
Causes
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,
Causes
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,
Causes
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,
Causes
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,
Causes
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,
Causes
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,
Causes
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,
Causes
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>
§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,
Pipes by value. This is generally the method you want to use. Read more
§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,
Borrows
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,
Mutably borrows
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) -> Rwhere
Self: Borrow<B>,
B: 'a + ?Sized,
R: 'a,
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> Rwhere Self: Borrow<B>, B: 'a + ?Sized, R: 'a,
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R
) -> Rwhere
Self: BorrowMut<B>,
B: 'a + ?Sized,
R: 'a,
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R ) -> Rwhere Self: BorrowMut<B>, B: 'a + ?Sized, R: 'a,
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> Rwhere
Self: AsRef<U>,
U: 'a + ?Sized,
R: 'a,
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> Rwhere Self: AsRef<U>, U: 'a + ?Sized, R: 'a,
Borrows
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) -> Rwhere
Self: AsMut<U>,
U: 'a + ?Sized,
R: 'a,
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> Rwhere Self: AsMut<U>, U: 'a + ?Sized, R: 'a,
Mutably borrows
self
, then passes self.as_mut()
into the pipe
function.§impl<T> Pipe for T
impl<T> Pipe for T
§impl<T> PipeAsRef for T
impl<T> PipeAsRef for T
§impl<T> PipeBorrow for T
impl<T> PipeBorrow for T
§impl<T> PipeDeref for T
impl<T> PipeDeref for T
§impl<T> PipeRef for T
impl<T> PipeRef for T
§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,
Pipes a reference into a function that cannot ordinarily be called in
suffix position. Read more
§fn pipe_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere R: 'a,
Pipes a mutable reference into a function that cannot ordinarily be
called in suffix position. Read more
§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)) -> Selfwhere
Self: Borrow<B>,
B: ?Sized,
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Selfwhere Self: Borrow<B>, B: ?Sized,
Immutable access to the
Borrow<B>
of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
Self: BorrowMut<B>,
B: ?Sized,
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere Self: BorrowMut<B>, B: ?Sized,
Mutable access to the
BorrowMut<B>
of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Selfwhere
Self: AsRef<R>,
R: ?Sized,
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Selfwhere Self: AsRef<R>, R: ?Sized,
Immutable access to the
AsRef<R>
view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
Self: AsMut<R>,
R: ?Sized,
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere Self: AsMut<R>, R: ?Sized,
Mutable access to the
AsMut<R>
view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Selfwhere
Self: Deref<Target = T>,
T: ?Sized,
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Selfwhere Self: Deref<Target = T>, T: ?Sized,
Immutable access to the
Deref::Target
of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Selfwhere
Self: DerefMut<Target = T> + Deref,
T: ?Sized,
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Selfwhere Self: DerefMut<Target = T> + Deref, T: ?Sized,
Mutable access to the
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
Calls
.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
Calls
.tap_mut()
only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Selfwhere
Self: Borrow<B>,
B: ?Sized,
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Selfwhere Self: Borrow<B>, B: ?Sized,
Calls
.tap_borrow()
only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
Self: BorrowMut<B>,
B: ?Sized,
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere Self: BorrowMut<B>, B: ?Sized,
Calls
.tap_borrow_mut()
only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Selfwhere
Self: AsRef<R>,
R: ?Sized,
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Selfwhere Self: AsRef<R>, R: ?Sized,
Calls
.tap_ref()
only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
Self: AsMut<R>,
R: ?Sized,
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere Self: AsMut<R>, R: ?Sized,
Calls
.tap_ref_mut()
only in debug builds, and is erased in release
builds.§impl<T> Tap for T
impl<T> Tap for T
§fn tap<F, R>(self, func: F) -> Selfwhere
F: FnOnce(&Self) -> R,
fn tap<F, R>(self, func: F) -> Selfwhere F: FnOnce(&Self) -> R,
Provides immutable access for inspection. Read more
§fn tap_dbg<F, R>(self, func: F) -> Selfwhere
F: FnOnce(&Self) -> R,
fn tap_dbg<F, R>(self, func: F) -> Selfwhere F: FnOnce(&Self) -> R,
Calls
tap
in debug builds, and does nothing in release builds.§fn tap_mut<F, R>(self, func: F) -> Selfwhere
F: FnOnce(&mut Self) -> R,
fn tap_mut<F, R>(self, func: F) -> Selfwhere F: FnOnce(&mut Self) -> R,
Provides mutable access for modification. Read more
§fn tap_mut_dbg<F, R>(self, func: F) -> Selfwhere
F: FnOnce(&mut Self) -> R,
fn tap_mut_dbg<F, R>(self, func: F) -> Selfwhere F: FnOnce(&mut Self) -> R,
Calls
tap_mut
in debug builds, and does nothing in release builds.§impl<T, U> TapAsRef<U> for Twhere
U: ?Sized,
impl<T, U> TapAsRef<U> for Twhere U: ?Sized,
§fn tap_ref<F, R>(self, func: F) -> Selfwhere
Self: AsRef<T>,
F: FnOnce(&T) -> R,
fn tap_ref<F, R>(self, func: F) -> Selfwhere Self: AsRef<T>, F: FnOnce(&T) -> R,
Provides immutable access to the reference for inspection.
§fn tap_ref_dbg<F, R>(self, func: F) -> Selfwhere
Self: AsRef<T>,
F: FnOnce(&T) -> R,
fn tap_ref_dbg<F, R>(self, func: F) -> Selfwhere Self: AsRef<T>, F: FnOnce(&T) -> R,
Calls
tap_ref
in debug builds, and does nothing in release builds.§fn tap_ref_mut<F, R>(self, func: F) -> Selfwhere
Self: AsMut<T>,
F: FnOnce(&mut T) -> R,
fn tap_ref_mut<F, R>(self, func: F) -> Selfwhere Self: AsMut<T>, F: FnOnce(&mut T) -> R,
Provides mutable access to the reference for modification.
§fn tap_ref_mut_dbg<F, R>(self, func: F) -> Selfwhere
Self: AsMut<T>,
F: FnOnce(&mut T) -> R,
fn tap_ref_mut_dbg<F, R>(self, func: F) -> Selfwhere Self: AsMut<T>, F: FnOnce(&mut T) -> R,
Calls
tap_ref_mut
in debug builds, and does nothing in release builds.§impl<T, U> TapBorrow<U> for Twhere
U: ?Sized,
impl<T, U> TapBorrow<U> for Twhere U: ?Sized,
§fn tap_borrow<F, R>(self, func: F) -> Selfwhere
Self: Borrow<T>,
F: FnOnce(&T) -> R,
fn tap_borrow<F, R>(self, func: F) -> Selfwhere Self: Borrow<T>, F: FnOnce(&T) -> R,
Provides immutable access to the borrow for inspection. Read more
§fn tap_borrow_dbg<F, R>(self, func: F) -> Selfwhere
Self: Borrow<T>,
F: FnOnce(&T) -> R,
fn tap_borrow_dbg<F, R>(self, func: F) -> Selfwhere Self: Borrow<T>, F: FnOnce(&T) -> R,
Calls
tap_borrow
in debug builds, and does nothing in release builds.§fn tap_borrow_mut<F, R>(self, func: F) -> Selfwhere
Self: BorrowMut<T>,
F: FnOnce(&mut T) -> R,
fn tap_borrow_mut<F, R>(self, func: F) -> Selfwhere Self: BorrowMut<T>, F: FnOnce(&mut T) -> R,
Provides mutable access to the borrow for modification.
§fn tap_borrow_mut_dbg<F, R>(self, func: F) -> Selfwhere
Self: BorrowMut<T>,
F: FnOnce(&mut T) -> R,
fn tap_borrow_mut_dbg<F, R>(self, func: F) -> Selfwhere Self: BorrowMut<T>, F: FnOnce(&mut T) -> R,
Calls
tap_borrow_mut
in debug builds, and does nothing in release
builds.§impl<T> TapDeref for T
impl<T> TapDeref for T
§fn tap_deref<F, R>(self, func: F) -> Selfwhere
Self: Deref,
F: FnOnce(&Self::Target) -> R,
fn tap_deref<F, R>(self, func: F) -> Selfwhere Self: Deref, F: FnOnce(&Self::Target) -> R,
Immutably dereferences
self
for inspection.§fn tap_deref_dbg<F, R>(self, func: F) -> Selfwhere
Self: Deref,
F: FnOnce(&Self::Target) -> R,
fn tap_deref_dbg<F, R>(self, func: F) -> Selfwhere Self: Deref, F: FnOnce(&Self::Target) -> R,
Calls
tap_deref
in debug builds, and does nothing in release builds.§fn tap_deref_mut<F, R>(self, func: F) -> Selfwhere
Self: DerefMut,
F: FnOnce(&mut Self::Target) -> R,
fn tap_deref_mut<F, R>(self, func: F) -> Selfwhere Self: DerefMut, F: FnOnce(&mut Self::Target) -> R,
Mutably dereferences
self
for modification.§fn tap_deref_mut_dbg<F, R>(self, func: F) -> Selfwhere
Self: DerefMut,
F: FnOnce(&mut Self::Target) -> R,
fn tap_deref_mut_dbg<F, R>(self, func: F) -> Selfwhere Self: DerefMut, F: FnOnce(&mut Self::Target) -> R,
Calls
tap_deref_mut
in debug builds, and does nothing in release
builds.