pub enum BlockchainResponse {
Show 33 variants
BlockCompleteEntries {
blocks: Vec<BlockCompleteEntry>,
missing_hashes: Vec<[u8; 32]>,
blockchain_height: usize,
},
BlockCompleteEntriesByHeight(Vec<BlockCompleteEntry>),
BlockExtendedHeader(ExtendedBlockHeader),
BlockHash([u8; 32]),
BlockHashInRange(Vec<[u8; 32]>),
FindBlock(Option<(Chain, usize)>),
FilterUnknownHashes(HashSet<[u8; 32]>),
BlockExtendedHeaderInRange(Vec<ExtendedBlockHeader>),
ChainHeight(usize, [u8; 32]),
GeneratedCoins(u64),
Outputs(OutputCache),
OutputsVec(Vec<(u64, Vec<(u64, OutputOnChain)>)>),
NumberOutputsWithAmount(HashMap<u64, usize>),
KeyImagesSpent(bool),
KeyImagesSpentVec(Vec<bool>),
CompactChainHistory {
block_ids: Vec<[u8; 32]>,
cumulative_difficulty: u128,
},
NextChainEntry {
start_height: Option<usize>,
chain_height: usize,
block_ids: Vec<[u8; 32]>,
block_weights: Vec<usize>,
cumulative_difficulty: u128,
first_block_blob: Option<Vec<u8>>,
},
FindFirstUnknown(Option<(usize, usize)>),
TxsInBlock(Option<TxsInBlock>),
AltBlocksInChain(Vec<AltBlockInformation>),
Block(Block),
TotalTxCount(usize),
DatabaseSize {
database_size: u64,
free_space: u64,
},
OutputDistribution(Vec<OutputDistributionData>),
OutputHistogram(Vec<OutputHistogramEntry>),
CoinbaseTxSum(CoinbaseTxSum),
AltChains(Vec<ChainInfo>),
AltChainCount(usize),
Transactions {
txs: Vec<TxInBlockchain>,
missed_txs: Vec<[u8; 32]>,
},
TotalRctOutputs(u64),
TxOutputIndexes(Vec<u64>),
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§
BlockCompleteEntries
Response to BlockchainReadRequest::BlockCompleteEntries.
Fields
blocks: Vec<BlockCompleteEntry>The BlockCompleteEntrys that we had.
BlockCompleteEntriesByHeight(Vec<BlockCompleteEntry>)
Response to BlockchainReadRequest::BlockCompleteEntriesByHeight.
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.
BlockHashInRange(Vec<[u8; 32]>)
Response to BlockchainReadRequest::BlockHashInRange.
Inner value is the hashes of the requested blocks, in order.
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(OutputCache)
Response to BlockchainReadRequest::Outputs.
Inner value is an OutputCache, missing outputs won’t trigger an error, they just will not be
in the cache until the cache is updated with the block containing those outputs.
OutputsVec(Vec<(u64, Vec<(u64, OutputOnChain)>)>)
Response to BlockchainReadRequest::OutputsVec.
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.
KeyImagesSpentVec(Vec<bool>)
Response to BlockchainReadRequest::KeyImagesSpentVec.
Inner value is a Vec the same length as the input.
The index of each entry corresponds with the request.
true means that the key image was spent.
CompactChainHistory
Response to BlockchainReadRequest::CompactChainHistory.
Fields
NextChainEntry
Response to BlockchainReadRequest::NextChainEntry.
If all blocks were unknown start_height will be None, the other fields will be meaningless.
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.
TxsInBlock(Option<TxsInBlock>)
The response for BlockchainReadRequest::TxsInBlock.
Will return None if the request contained an index out of range.
AltBlocksInChain(Vec<AltBlockInformation>)
The response for 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
OutputDistribution(Vec<OutputDistributionData>)
Response to BlockchainReadRequest::OutputDistribution.
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.
Transactions
Response to BlockchainReadRequest::Transactions.
Fields
txs: Vec<TxInBlockchain>The transaction blobs found.
TotalRctOutputs(u64)
Response to BlockchainReadRequest::TotalRctOutputs.
TxOutputIndexes(Vec<u64>)
Response to BlockchainReadRequest::TxOutputIndexes.
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.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> 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.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: 640 bytes
Size for each variant:
BlockCompleteEntries: 64 bytesBlockCompleteEntriesByHeight: 32 bytesBlockExtendedHeader: 64 bytesBlockHash: 40 bytesBlockHashInRange: 32 bytesFindBlock: 32 bytesFilterUnknownHashes: 56 bytesBlockExtendedHeaderInRange: 32 bytesChainHeight: 48 bytesGeneratedCoins: 16 bytesOutputs: 224 bytesOutputsVec: 32 bytesNumberOutputsWithAmount: 56 bytesKeyImagesSpent: 9 bytesKeyImagesSpentVec: 32 bytesCompactChainHistory: 64 bytesNextChainEntry: 128 bytesFindFirstUnknown: 32 bytesTxsInBlock: 56 bytesAltBlocksInChain: 32 bytesBlock: 632 bytesTotalTxCount: 16 bytesDatabaseSize: 24 bytesOutputDistribution: 32 bytesOutputHistogram: 32 bytesCoinbaseTxSum: 40 bytesAltChains: 32 bytesAltChainCount: 16 bytesTransactions: 56 bytesTotalRctOutputs: 16 bytesTxOutputIndexes: 32 bytesOk: 0 bytesPopBlocks: 16 bytes