[][src]Trait ckb_store::ChainStore

pub trait ChainStore<'a>: Send + Sync + Sized {
    type Vector: AsRef<[u8]>;
    fn cache(&'a self) -> Option<&'a StoreCache>;
fn get(&'a self, col: Col, key: &[u8]) -> Option<Self::Vector>;
fn get_iter(&self, col: Col, mode: IteratorMode<'_>) -> DBIter<'_>; fn cell_provider(&self) -> CellProviderWrapper<'_, Self> { ... }
fn get_block(&'a self, h: &Byte32) -> Option<BlockView> { ... }
fn get_block_header(&'a self, hash: &Byte32) -> Option<HeaderView> { ... }
fn get_block_body(&'a self, hash: &Byte32) -> Vec<TransactionView> { ... }
fn get_block_txs_hashes(&'a self, hash: &Byte32) -> Vec<Byte32> { ... }
fn get_block_proposal_txs_ids(
        &'a self,
        hash: &Byte32
    ) -> Option<ProposalShortIdVec> { ... }
fn get_block_uncles(&'a self, hash: &Byte32) -> Option<UncleBlockVecView> { ... }
fn get_block_ext(&'a self, block_hash: &Byte32) -> Option<BlockExt> { ... }
fn get_block_hash(&'a self, number: BlockNumber) -> Option<Byte32> { ... }
fn get_block_number(&'a self, hash: &Byte32) -> Option<BlockNumber> { ... }
fn is_main_chain(&'a self, hash: &Byte32) -> bool { ... }
fn get_tip_header(&'a self) -> Option<HeaderView> { ... }
fn get_transaction(
        &'a self,
        hash: &Byte32
    ) -> Option<(TransactionView, Byte32)> { ... }
fn get_transaction_with_info(
        &'a self,
        hash: &Byte32
    ) -> Option<(TransactionView, TransactionInfo)> { ... }
fn get_transaction_info(&'a self, hash: &Byte32) -> Option<TransactionInfo> { ... }
fn get_cell(&'a self, out_point: &OutPoint) -> Option<CellMeta> { ... }
fn get_cell_data(&'a self, out_point: &OutPoint) -> Option<(Bytes, Byte32)> { ... }
fn get_current_epoch_ext(&'a self) -> Option<EpochExt> { ... }
fn get_epoch_ext(&'a self, hash: &Byte32) -> Option<EpochExt> { ... }
fn get_epoch_index(&'a self, number: EpochNumber) -> Option<Byte32> { ... }
fn get_block_epoch_index(&'a self, block_hash: &Byte32) -> Option<Byte32> { ... }
fn get_block_epoch(&'a self, hash: &Byte32) -> Option<EpochExt> { ... }
fn is_uncle(&'a self, hash: &Byte32) -> bool { ... }
fn get_uncle_header(&'a self, hash: &Byte32) -> Option<HeaderView> { ... }
fn block_exists(&'a self, hash: &Byte32) -> bool { ... }
fn get_cellbase(&'a self, hash: &Byte32) -> Option<TransactionView> { ... }
fn next_epoch_ext(
        &'a self,
        consensus: &Consensus,
        last_epoch: &EpochExt,
        header: &HeaderView
    ) -> Option<EpochExt> { ... }
fn get_packed_block(&'a self, hash: &Byte32) -> Option<Block> { ... }
fn get_packed_block_header(&'a self, hash: &Byte32) -> Option<Header> { ... } }

Associated Types

Loading content...

Required methods

fn cache(&'a self) -> Option<&'a StoreCache>

fn get(&'a self, col: Col, key: &[u8]) -> Option<Self::Vector>

fn get_iter(&self, col: Col, mode: IteratorMode<'_>) -> DBIter<'_>

Loading content...

Provided methods

fn cell_provider(&self) -> CellProviderWrapper<'_, Self>

fn get_block(&'a self, h: &Byte32) -> Option<BlockView>

Get block by block header hash

fn get_block_header(&'a self, hash: &Byte32) -> Option<HeaderView>

Get header by block header hash

fn get_block_body(&'a self, hash: &Byte32) -> Vec<TransactionView>

Get block body by block header hash

fn get_block_txs_hashes(&'a self, hash: &Byte32) -> Vec<Byte32>

Get all transaction-hashes in block body by block header hash

fn get_block_proposal_txs_ids(
    &'a self,
    hash: &Byte32
) -> Option<ProposalShortIdVec>

Get proposal short id by block header hash

fn get_block_uncles(&'a self, hash: &Byte32) -> Option<UncleBlockVecView>

Get block uncles by block header hash

fn get_block_ext(&'a self, block_hash: &Byte32) -> Option<BlockExt>

Get block ext by block header hash

fn get_block_hash(&'a self, number: BlockNumber) -> Option<Byte32>

Get block header hash by block number

fn get_block_number(&'a self, hash: &Byte32) -> Option<BlockNumber>

Get block number by block header hash

fn is_main_chain(&'a self, hash: &Byte32) -> bool

fn get_tip_header(&'a self) -> Option<HeaderView>

fn get_transaction(&'a self, hash: &Byte32) -> Option<(TransactionView, Byte32)>

Get commit transaction and block hash by its hash

fn get_transaction_with_info(
    &'a self,
    hash: &Byte32
) -> Option<(TransactionView, TransactionInfo)>

fn get_transaction_info(&'a self, hash: &Byte32) -> Option<TransactionInfo>

fn get_cell(&'a self, out_point: &OutPoint) -> Option<CellMeta>

fn get_cell_data(&'a self, out_point: &OutPoint) -> Option<(Bytes, Byte32)>

fn get_current_epoch_ext(&'a self) -> Option<EpochExt>

fn get_epoch_ext(&'a self, hash: &Byte32) -> Option<EpochExt>

fn get_epoch_index(&'a self, number: EpochNumber) -> Option<Byte32>

fn get_block_epoch_index(&'a self, block_hash: &Byte32) -> Option<Byte32>

fn get_block_epoch(&'a self, hash: &Byte32) -> Option<EpochExt>

fn is_uncle(&'a self, hash: &Byte32) -> bool

fn get_uncle_header(&'a self, hash: &Byte32) -> Option<HeaderView>

Get header by uncle header hash

fn block_exists(&'a self, hash: &Byte32) -> bool

fn get_cellbase(&'a self, hash: &Byte32) -> Option<TransactionView>

fn next_epoch_ext(
    &'a self,
    consensus: &Consensus,
    last_epoch: &EpochExt,
    header: &HeaderView
) -> Option<EpochExt>

fn get_packed_block(&'a self, hash: &Byte32) -> Option<Block>

fn get_packed_block_header(&'a self, hash: &Byte32) -> Option<Header>

Loading content...

Implementors

impl<'a> ChainStore<'a> for ChainDB[src]

type Vector = DBPinnableSlice<'a>

impl<'a> ChainStore<'a> for StoreSnapshot[src]

type Vector = DBPinnableSlice<'a>

impl<'a> ChainStore<'a> for StoreTransaction[src]

type Vector = DBVector

Loading content...