pub struct MiningManager { /* private fields */ }Implementations§
Source§impl MiningManager
impl MiningManager
pub fn new( target_time_per_block: u64, relay_non_std_transactions: bool, max_block_mass: u64, cache_lifetime: Option<u64>, counters: Arc<MiningCounters>, ) -> Self
pub fn new_with_extended_config( target_time_per_block: u64, relay_non_std_transactions: bool, max_block_mass: u64, ram_scale: f64, cache_lifetime: Option<u64>, counters: Arc<MiningCounters>, ) -> Self
pub fn get_block_template( &self, consensus: &dyn ConsensusApi, miner_data: &MinerData, ) -> MiningManagerResult<BlockTemplate>
Sourcepub fn validate_and_insert_transaction(
&self,
consensus: &dyn ConsensusApi,
transaction: Transaction,
priority: Priority,
orphan: Orphan,
rbf_policy: RbfPolicy,
) -> MiningManagerResult<TransactionInsertion>
pub fn validate_and_insert_transaction( &self, consensus: &dyn ConsensusApi, transaction: Transaction, priority: Priority, orphan: Orphan, rbf_policy: RbfPolicy, ) -> MiningManagerResult<TransactionInsertion>
validate_and_insert_transaction validates the given transaction, and adds it to the set of known transactions that have not yet been added to any block.
The validation is constrained by a Replace by fee policy applied
to double spends in the mempool. For more information, see RbfPolicy.
On success, returns transactions that where unorphaned following the insertion of the provided transaction.
The returned transactions are references of objects owned by the mempool.
Sourcepub fn validate_and_insert_transaction_batch(
&self,
consensus: &dyn ConsensusApi,
transactions: Vec<Transaction>,
priority: Priority,
orphan: Orphan,
rbf_policy: RbfPolicy,
) -> Vec<MiningManagerResult<Arc<Transaction>>> ⓘ
pub fn validate_and_insert_transaction_batch( &self, consensus: &dyn ConsensusApi, transactions: Vec<Transaction>, priority: Priority, orphan: Orphan, rbf_policy: RbfPolicy, ) -> Vec<MiningManagerResult<Arc<Transaction>>> ⓘ
Validates a batch of transactions, handling iteratively only the independent ones, and adds those to the set of known transactions that have not yet been added to any block.
The validation is constrained by a Replace by fee policy applied
to double spends in the mempool. For more information, see RbfPolicy.
Returns transactions that where unorphaned following the insertion of the provided transactions. The returned transactions are references of objects owned by the mempool.
Sourcepub fn get_transaction(
&self,
transaction_id: &TransactionId,
query: TransactionQuery,
) -> Option<MutableTransaction>
pub fn get_transaction( &self, transaction_id: &TransactionId, query: TransactionQuery, ) -> Option<MutableTransaction>
Try to return a mempool transaction by its id.
Note: the transaction is an orphan if tx.is_fully_populated() returns false.
Sourcepub fn has_transaction(
&self,
transaction_id: &TransactionId,
query: TransactionQuery,
) -> bool
pub fn has_transaction( &self, transaction_id: &TransactionId, query: TransactionQuery, ) -> bool
Returns whether the mempool holds this transaction in any form.
pub fn get_all_transactions( &self, query: TransactionQuery, ) -> (Vec<MutableTransaction>, Vec<MutableTransaction>)
Sourcepub fn get_transactions_by_addresses(
&self,
script_public_keys: &ScriptPublicKeySet,
query: TransactionQuery,
) -> GroupedOwnerTransactions
pub fn get_transactions_by_addresses( &self, script_public_keys: &ScriptPublicKeySet, query: TransactionQuery, ) -> GroupedOwnerTransactions
get_transactions_by_addresses returns the sending and receiving transactions for a set of addresses.
Note: a transaction is an orphan if tx.is_fully_populated() returns false.
pub fn transaction_count(&self, query: TransactionQuery) -> usize
pub fn handle_new_block_transactions( &self, consensus: &dyn ConsensusApi, block_daa_score: u64, block_transactions: &[Transaction], ) -> MiningManagerResult<Vec<Arc<Transaction>>>
pub fn expire_low_priority_transactions(&self, consensus: &dyn ConsensusApi)
pub fn revalidate_high_priority_transactions( &self, consensus: &dyn ConsensusApi, transaction_ids_sender: UnboundedSender<Vec<TransactionId>>, )
Sourcepub fn is_transaction_output_dust(
&self,
transaction_output: &TransactionOutput,
) -> bool
pub fn is_transaction_output_dust( &self, transaction_output: &TransactionOutput, ) -> bool
is_transaction_output_dust returns whether or not the passed transaction output amount is considered dust or not based on the configured minimum transaction relay fee.
Dust is defined in terms of the minimum transaction relay fee. In particular, if the cost to the network to spend coins is more than 1/3 of the minimum transaction relay fee, it is considered dust.
pub fn has_accepted_transaction(&self, transaction_id: &TransactionId) -> bool
pub fn unaccepted_transactions( &self, transactions: Vec<TransactionId>, ) -> Vec<TransactionId> ⓘ
pub fn unknown_transactions( &self, transactions: Vec<TransactionId>, ) -> Vec<TransactionId> ⓘ
Auto Trait Implementations§
impl !Freeze for MiningManager
impl !RefUnwindSafe for MiningManager
impl Send for MiningManager
impl Sync for MiningManager
impl Unpin for MiningManager
impl UnwindSafe for MiningManager
Blanket Implementations§
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<S> CastArc for Swhere
S: CastFromSync + ?Sized,
impl<S> CastArc for Swhere
S: CastFromSync + ?Sized,
Source§impl<T> CastFrom for Twhere
T: Any + 'static,
impl<T> CastFrom for Twhere
T: Any + 'static,
Source§fn ref_any(&self) -> &(dyn Any + 'static)
fn ref_any(&self) -> &(dyn Any + 'static)
Any, which is backed by the type implementing this trait.Source§fn mut_any(&mut self) -> &mut (dyn Any + 'static)
fn mut_any(&mut self) -> &mut (dyn Any + 'static)
Any, which is backed by the type implementing this trait.Source§impl<T> CastFromSync for T
impl<T> CastFromSync for T
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