pub struct CardanoTransactionRepository { /* private fields */ }Expand description
§Cardano transaction repository
This is a business oriented layer to perform actions on the database through queries.
Implementations§
Source§impl CardanoTransactionRepository
impl CardanoTransactionRepository
Sourcepub fn new(connection_pool: Arc<SqliteConnectionPool>) -> Self
pub fn new(connection_pool: Arc<SqliteConnectionPool>) -> Self
Instantiate service
Sourcepub async fn get_all_transactions(
&self,
) -> StdResult<Vec<CardanoTransactionRecord>>
pub async fn get_all_transactions( &self, ) -> StdResult<Vec<CardanoTransactionRecord>>
Return all the CardanoTransactionRecords in the database.
Sourcepub async fn get_all_blocks(&self) -> StdResult<Vec<CardanoBlockRecord>>
pub async fn get_all_blocks(&self) -> StdResult<Vec<CardanoBlockRecord>>
Return all the CardanoBlockRecords in the database.
Sourcepub async fn get_transactions_in_range_blocks(
&self,
range: Range<BlockNumber>,
) -> StdResult<Vec<CardanoTransactionRecord>>
pub async fn get_transactions_in_range_blocks( &self, range: Range<BlockNumber>, ) -> StdResult<Vec<CardanoTransactionRecord>>
Return all the CardanoTransactionRecords in the database where block number is in the given range.
Sourcepub async fn get_blocks_with_transactions_in_range_blocks(
&self,
range: Range<BlockNumber>,
) -> StdResult<Vec<CardanoBlockTransactionsRecord>>
pub async fn get_blocks_with_transactions_in_range_blocks( &self, range: Range<BlockNumber>, ) -> StdResult<Vec<CardanoBlockTransactionsRecord>>
Return all the CardanoTransactionRecords in the database where block number is in the given range.
Sourcepub async fn get_block<T: Into<BlockHash>>(
&self,
block_hash: T,
) -> StdResult<Option<CardanoBlockRecord>>
pub async fn get_block<T: Into<BlockHash>>( &self, block_hash: T, ) -> StdResult<Option<CardanoBlockRecord>>
Return the CardanoBlockRecord for the given block hash.
Sourcepub async fn get_transaction<T: Into<TransactionHash>>(
&self,
transaction_hash: T,
) -> StdResult<Option<CardanoTransactionRecord>>
pub async fn get_transaction<T: Into<TransactionHash>>( &self, transaction_hash: T, ) -> StdResult<Option<CardanoTransactionRecord>>
Return the CardanoTransactionRecord for the given transaction hash.
Sourcepub async fn create_block_and_transactions(
&self,
blocks_with_transactions: Vec<CardanoBlockWithTransactions>,
) -> StdResult<()>
pub async fn create_block_and_transactions( &self, blocks_with_transactions: Vec<CardanoBlockWithTransactions>, ) -> StdResult<()>
Create new CardanoTransactionRecords in the database.
Sourcepub async fn create_block_range_roots<T: Into<BlockRangeRootRecord>>(
&self,
block_ranges: Vec<T>,
) -> StdResult<Vec<BlockRangeRootRecord>>
pub async fn create_block_range_roots<T: Into<BlockRangeRootRecord>>( &self, block_ranges: Vec<T>, ) -> StdResult<Vec<BlockRangeRootRecord>>
Create new BlockRangeRootRecords in the database.
Sourcepub async fn create_legacy_block_range_roots<T: Into<BlockRangeRootRecord>>(
&self,
block_ranges: Vec<T>,
) -> StdResult<Vec<BlockRangeRootRecord>>
pub async fn create_legacy_block_range_roots<T: Into<BlockRangeRootRecord>>( &self, block_ranges: Vec<T>, ) -> StdResult<Vec<BlockRangeRootRecord>>
Create new legacy BlockRangeRootRecords in the database.
Sourcepub async fn get_transaction_highest_chain_point(
&self,
) -> StdResult<Option<ChainPoint>>
pub async fn get_transaction_highest_chain_point( &self, ) -> StdResult<Option<ChainPoint>>
Get the highest ChainPoint of the cardano transactions stored in the database.
Sourcepub async fn get_prune_blocks_threshold(&self) -> StdResult<Option<BlockNumber>>
pub async fn get_prune_blocks_threshold(&self) -> StdResult<Option<BlockNumber>>
Get the threshold BlockNumber to prune the blocks and transactions below.
To ensure that all new and legacy blocks range roots were computed and stored: This threshold is the minimum of the highest block number of the block range roots and the highest block number of the legacy block range roots.
Sourcepub async fn retrieve_block_range_roots_up_to(
&self,
block_number: BlockNumber,
) -> StdResult<Box<dyn Iterator<Item = (BlockRange, MKTreeNode)> + '_>>
pub async fn retrieve_block_range_roots_up_to( &self, block_number: BlockNumber, ) -> StdResult<Box<dyn Iterator<Item = (BlockRange, MKTreeNode)> + '_>>
Retrieve all the Block Range Roots in database for which their start number is below the given block number.
Sourcepub async fn retrieve_legacy_block_range_roots_up_to(
&self,
block_number: BlockNumber,
) -> StdResult<Box<dyn Iterator<Item = (BlockRange, MKTreeNode)> + '_>>
pub async fn retrieve_legacy_block_range_roots_up_to( &self, block_number: BlockNumber, ) -> StdResult<Box<dyn Iterator<Item = (BlockRange, MKTreeNode)> + '_>>
Retrieve all the legacy Block Range Roots in database for which their start number is below the given block number.
Sourcepub async fn retrieve_highest_block_range_root(
&self,
) -> StdResult<Option<BlockRangeRootRecord>>
pub async fn retrieve_highest_block_range_root( &self, ) -> StdResult<Option<BlockRangeRootRecord>>
Retrieve the block range root with the highest bounds in the database.
Sourcepub async fn retrieve_highest_legacy_block_range_root(
&self,
) -> StdResult<Option<BlockRangeRootRecord>>
pub async fn retrieve_highest_legacy_block_range_root( &self, ) -> StdResult<Option<BlockRangeRootRecord>>
Retrieve the legacy block range root with the highest bounds in the database.
Sourcepub async fn get_all(&self) -> StdResult<Vec<CardanoTransaction>>
pub async fn get_all(&self) -> StdResult<Vec<CardanoTransaction>>
Retrieve all the CardanoTransaction in database.
Sourcepub fn get_all_block_range_root(&self) -> StdResult<Vec<BlockRangeRootRecord>>
pub fn get_all_block_range_root(&self) -> StdResult<Vec<BlockRangeRootRecord>>
Retrieve all the BlockRangeRootRecord in database.
Sourcepub fn get_all_legacy_block_range_root(
&self,
) -> StdResult<Vec<BlockRangeRootRecord>>
pub fn get_all_legacy_block_range_root( &self, ) -> StdResult<Vec<BlockRangeRootRecord>>
Retrieve all the legacy BlockRangeRootRecord in database.
Sourcepub async fn store_blocks_and_transactions(
&self,
blocks_with_transactions: Vec<CardanoBlockWithTransactions>,
) -> StdResult<()>
pub async fn store_blocks_and_transactions( &self, blocks_with_transactions: Vec<CardanoBlockWithTransactions>, ) -> StdResult<()>
Store the given transactions in the database.
The storage is done in chunks to avoid exceeding sqlite binding limitations.
Sourcepub async fn get_closest_block_number_above_slot_number(
&self,
slot_number: SlotNumber,
) -> StdResult<Option<BlockNumber>>
pub async fn get_closest_block_number_above_slot_number( &self, slot_number: SlotNumber, ) -> StdResult<Option<BlockNumber>>
Get the closest block number above a given slot number
Sourcepub async fn get_transaction_by_hashes<T: Into<TransactionHash>>(
&self,
hashes: Vec<T>,
up_to: BlockNumber,
) -> StdResult<Vec<CardanoTransactionRecord>>
pub async fn get_transaction_by_hashes<T: Into<TransactionHash>>( &self, hashes: Vec<T>, up_to: BlockNumber, ) -> StdResult<Vec<CardanoTransactionRecord>>
Get the CardanoTransactionRecord for the given transaction hashes, up to a block number
Sourcepub async fn get_transaction_by_block_ranges(
&self,
block_ranges: Vec<BlockRange>,
) -> StdResult<Vec<CardanoTransactionRecord>>
pub async fn get_transaction_by_block_ranges( &self, block_ranges: Vec<BlockRange>, ) -> StdResult<Vec<CardanoTransactionRecord>>
Get the CardanoTransactionRecord for the given block ranges.
Sourcepub async fn get_blocks_with_transactions_by_block_ranges(
&self,
block_ranges: Vec<BlockRange>,
) -> StdResult<Vec<CardanoBlockTransactionsRecord>>
pub async fn get_blocks_with_transactions_by_block_ranges( &self, block_ranges: Vec<BlockRange>, ) -> StdResult<Vec<CardanoBlockTransactionsRecord>>
Get the CardanoBlockTransactionsRecord for the given block ranges.
Sourcepub async fn prune_transaction(
&self,
number_of_blocks_to_keep: BlockNumber,
) -> StdResult<()>
pub async fn prune_transaction( &self, number_of_blocks_to_keep: BlockNumber, ) -> StdResult<()>
Prune the transactions older than the given number of blocks (based on the block range root stored).
Sourcepub async fn remove_rolled_back_transactions_and_block_range_by_block_number(
&self,
block_number: BlockNumber,
) -> StdResult<()>
pub async fn remove_rolled_back_transactions_and_block_range_by_block_number( &self, block_number: BlockNumber, ) -> StdResult<()>
Remove blocks, transactions, and block range roots that are in a rolled-back fork
- Remove blocks and transactions with a block number strictly greater than the given block number
- Remove block range roots that have lower bound range strictly above the given block number
Sourcepub async fn remove_rolled_back_blocks_transactions_and_block_range_by_slot_number(
&self,
slot_number: SlotNumber,
) -> StdResult<()>
pub async fn remove_rolled_back_blocks_transactions_and_block_range_by_slot_number( &self, slot_number: SlotNumber, ) -> StdResult<()>
Remove blocks, transactions, and block range roots that are in a rolled-back fork
- Remove blocks and transactions with the closest block number strictly greater than the given slot number if it exists
- Remove block range roots that have lower bound range strictly above the aforementioned block number
Auto Trait Implementations§
impl Freeze for CardanoTransactionRepository
impl RefUnwindSafe for CardanoTransactionRepository
impl Send for CardanoTransactionRepository
impl Sync for CardanoTransactionRepository
impl Unpin for CardanoTransactionRepository
impl UnwindSafe for CardanoTransactionRepository
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> CheckedAs for T
impl<T> CheckedAs for T
Source§fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
Source§impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
Source§fn checked_cast_from(src: Src) -> Option<Dst>
fn checked_cast_from(src: Src) -> Option<Dst>
§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,
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,
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,
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,
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,
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,
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,
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,
self to use its UpperHex implementation when
Debug-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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<Src, Dst> LosslessTryInto<Dst> for Srcwhere
Dst: LosslessTryFrom<Src>,
impl<Src, Dst> LosslessTryInto<Dst> for Srcwhere
Dst: LosslessTryFrom<Src>,
Source§fn lossless_try_into(self) -> Option<Dst>
fn lossless_try_into(self) -> Option<Dst>
Source§impl<Src, Dst> LossyInto<Dst> for Srcwhere
Dst: LossyFrom<Src>,
impl<Src, Dst> LossyInto<Dst> for Srcwhere
Dst: LossyFrom<Src>,
Source§fn lossy_into(self) -> Dst
fn lossy_into(self) -> Dst
Source§impl<T> OverflowingAs for T
impl<T> OverflowingAs for T
Source§fn overflowing_as<Dst>(self) -> (Dst, bool)where
T: OverflowingCast<Dst>,
fn overflowing_as<Dst>(self) -> (Dst, bool)where
T: OverflowingCast<Dst>,
Source§impl<Src, Dst> OverflowingCastFrom<Src> for Dstwhere
Src: OverflowingCast<Dst>,
impl<Src, Dst> OverflowingCastFrom<Src> for Dstwhere
Src: OverflowingCast<Dst>,
Source§fn overflowing_cast_from(src: Src) -> (Dst, bool)
fn overflowing_cast_from(src: Src) -> (Dst, bool)
§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,
§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 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,
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) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§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
§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.§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.§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.§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> SaturatingAs for T
impl<T> SaturatingAs for T
Source§fn saturating_as<Dst>(self) -> Dstwhere
T: SaturatingCast<Dst>,
fn saturating_as<Dst>(self) -> Dstwhere
T: SaturatingCast<Dst>,
Source§impl<Src, Dst> SaturatingCastFrom<Src> for Dstwhere
Src: SaturatingCast<Dst>,
impl<Src, Dst> SaturatingCastFrom<Src> for Dstwhere
Src: SaturatingCast<Dst>,
Source§fn saturating_cast_from(src: Src) -> Dst
fn saturating_cast_from(src: Src) -> Dst
§impl<T> Tap for T
impl<T> Tap for T
§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 more§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 more§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 more§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 more§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 more§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 more§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.§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.§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.§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.§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.§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.§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.