pub enum BlockchainResponse {
Show 35 variants
BlockCompleteEntries {
blocks: Vec<BlockCompleteEntry>,
missing_hashes: Vec<[u8; 32]>,
blockchain_height: usize,
},
BlockCompleteEntriesByHeight(Vec<BlockCompleteEntry>),
BlockCompleteEntriesAboveSplitPoint {
blocks: Vec<BlockCompleteEntry>,
output_indices: Vec<Vec<Vec<u64>>>,
blockchain_height: usize,
start_height: usize,
top_hash: [u8; 32],
},
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),
CumulativeRctOutsInRange(Vec<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,
},
PreRctOutputDistribution(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.
BlockCompleteEntriesAboveSplitPoint
Fields
blocks: Vec<BlockCompleteEntry>The BlockCompleteEntrys that we had.
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.
CumulativeRctOutsInRange(Vec<u64>)
Response to BlockchainReadRequest::CumulativeRctOutsInRange.
Inner value is cumulative_rct_outs for each block in the requested range.
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
PreRctOutputDistribution(Vec<OutputDistributionData>)
Response to BlockchainReadRequest::PreRctOutputDistribution.
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 (const: unstable) · 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
impl Eq for BlockchainResponse
Source§impl PartialEq for BlockchainResponse
impl PartialEq 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 UnsafeUnpin 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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.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 more§impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
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 bytesBlockCompleteEntriesAboveSplitPoint: 104 bytesBlockExtendedHeader: 64 bytesBlockHash: 40 bytesBlockHashInRange: 32 bytesFindBlock: 32 bytesFilterUnknownHashes: 56 bytesBlockExtendedHeaderInRange: 32 bytesChainHeight: 48 bytesGeneratedCoins: 16 bytesCumulativeRctOutsInRange: 32 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 bytesPreRctOutputDistribution: 32 bytesOutputHistogram: 32 bytesCoinbaseTxSum: 40 bytesAltChains: 32 bytesAltChainCount: 16 bytesTransactions: 56 bytesTotalRctOutputs: 16 bytesTxOutputIndexes: 32 bytesOk: 0 bytesPopBlocks: 16 bytes