pub enum BlockchainResponse {
Show 22 variants
BlockExtendedHeader(ExtendedBlockHeader),
BlockHash([u8; 32]),
FindBlock(Option<(Chain, usize)>),
FilterUnknownHashes(HashSet<[u8; 32]>),
BlockExtendedHeaderInRange(Vec<ExtendedBlockHeader>),
ChainHeight(usize, [u8; 32]),
GeneratedCoins(u64),
Outputs(HashMap<u64, HashMap<u64, OutputOnChain>>),
NumberOutputsWithAmount(HashMap<u64, usize>),
KeyImagesSpent(bool),
CompactChainHistory {
block_ids: Vec<[u8; 32]>,
cumulative_difficulty: u128,
},
FindFirstUnknown(Option<(usize, usize)>),
AltBlocksInChain(Vec<AltBlockInformation>),
Block(Block),
TotalTxCount(usize),
DatabaseSize {
database_size: u64,
free_space: u64,
},
OutputHistogram(Vec<OutputHistogramEntry>),
CoinbaseTxSum(CoinbaseTxSum),
AltChains(Vec<ChainInfo>),
AltChainCount(usize),
Ok,
PopBlocks(ChainId),
}
Expand description
A response from the database.
These are the data types returned when using sending a Request
.
This pairs with BlockchainReadRequest
and BlockchainWriteRequest
,
see those two for more info.
Variants§
BlockExtendedHeader(ExtendedBlockHeader)
Response to BlockchainReadRequest::BlockExtendedHeader
.
Inner value is the extended headed of the requested block.
BlockHash([u8; 32])
Response to BlockchainReadRequest::BlockHash
.
Inner value is the hash of the requested block.
FindBlock(Option<(Chain, usize)>)
Response to BlockchainReadRequest::FindBlock
.
Inner value is the chain and height of the block if found.
FilterUnknownHashes(HashSet<[u8; 32]>)
Response to BlockchainReadRequest::FilterUnknownHashes
.
Inner value is the list of hashes that were in the main chain.
BlockExtendedHeaderInRange(Vec<ExtendedBlockHeader>)
Response to BlockchainReadRequest::BlockExtendedHeaderInRange
.
Inner value is the list of extended header(s) of the requested block(s).
ChainHeight(usize, [u8; 32])
Response to BlockchainReadRequest::ChainHeight
.
Inner value is the chain height, and the top block’s hash.
GeneratedCoins(u64)
Response to BlockchainReadRequest::GeneratedCoins
.
Inner value is the total amount of generated coins up to and including the chosen height, in atomic units.
Outputs(HashMap<u64, HashMap<u64, OutputOnChain>>)
Response to BlockchainReadRequest::Outputs
.
Inner value is all the outputs requested, associated with their amount and amount index.
NumberOutputsWithAmount(HashMap<u64, usize>)
Response to BlockchainReadRequest::NumberOutputsWithAmount
.
Inner value is a HashMap
of all the outputs requested where:
- Key = output amount
- Value = count of outputs with the same amount
KeyImagesSpent(bool)
Response to BlockchainReadRequest::KeyImagesSpent
.
The inner value is true
if any of the key images
were spent (existed in the database already).
The inner value is false
if none of the key images were spent.
CompactChainHistory
Response to BlockchainReadRequest::CompactChainHistory
.
Fields
FindFirstUnknown(Option<(usize, usize)>)
Response to BlockchainReadRequest::FindFirstUnknown
.
Contains the index of the first unknown block and its expected height.
This will be None
if all blocks were known.
AltBlocksInChain(Vec<AltBlockInformation>)
Response to BlockchainReadRequest::AltBlocksInChain
.
Contains all the alt blocks in the alt-chain in chronological order.
Block(Block)
Response to:
TotalTxCount(usize)
Response to BlockchainReadRequest::TotalTxCount
.
DatabaseSize
Response to BlockchainReadRequest::DatabaseSize
.
Fields
OutputHistogram(Vec<OutputHistogramEntry>)
Response to BlockchainReadRequest::OutputHistogram
.
CoinbaseTxSum(CoinbaseTxSum)
Response to BlockchainReadRequest::CoinbaseTxSum
.
AltChains(Vec<ChainInfo>)
Response to BlockchainReadRequest::AltChains
.
AltChainCount(usize)
Response to BlockchainReadRequest::AltChainCount
.
Ok
A generic Ok response to indicate a request was successfully handled.
currently the response for:
PopBlocks(ChainId)
Response to BlockchainWriteRequest::PopBlocks
.
The inner value is the alt-chain ID for the old main chain blocks.
Trait Implementations§
Source§impl Clone for BlockchainResponse
impl Clone for BlockchainResponse
Source§fn clone(&self) -> BlockchainResponse
fn clone(&self) -> BlockchainResponse
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for BlockchainResponse
impl Debug for BlockchainResponse
Source§impl PartialEq for BlockchainResponse
impl PartialEq for BlockchainResponse
impl Eq for BlockchainResponse
impl StructuralPartialEq for BlockchainResponse
Auto Trait Implementations§
impl Freeze for BlockchainResponse
impl RefUnwindSafe for BlockchainResponse
impl Send for BlockchainResponse
impl Sync for BlockchainResponse
impl Unpin for BlockchainResponse
impl UnwindSafe for BlockchainResponse
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<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> Pointable for T
impl<T> Pointable for T
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.Source§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
Source§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
Source§fn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 1152 bytes
Size for each variant:
BlockExtendedHeader
: 64 bytesBlockHash
: 40 bytesFindBlock
: 32 bytesFilterUnknownHashes
: 56 bytesBlockExtendedHeaderInRange
: 32 bytesChainHeight
: 48 bytesGeneratedCoins
: 16 bytesOutputs
: 56 bytesNumberOutputsWithAmount
: 56 bytesKeyImagesSpent
: 9 bytesCompactChainHistory
: 64 bytesFindFirstUnknown
: 32 bytesAltBlocksInChain
: 32 bytesBlock
: 1144 bytesTotalTxCount
: 16 bytesDatabaseSize
: 24 bytesOutputHistogram
: 32 bytesCoinbaseTxSum
: 48 bytesAltChains
: 32 bytesAltChainCount
: 16 bytesOk
: 0 bytesPopBlocks
: 16 bytes