Skip to main content

MiningManager

Struct MiningManager 

Source
pub struct MiningManager { /* private fields */ }

Implementations§

Source§

impl MiningManager

Source

pub fn new( target_time_per_block: u64, relay_non_std_transactions: bool, mempool_block_mass_limits: BlockMassLimits, block_lane_limits: BlockLaneLimits, cache_lifetime: Option<u64>, counters: Arc<MiningCounters>, ) -> Self

Source

pub fn new_with_extended_config( target_time_per_block: u64, relay_non_std_transactions: bool, mempool_block_mass_limits: BlockMassLimits, block_lane_limits: BlockLaneLimits, ram_scale: f64, cache_lifetime: Option<u64>, counters: Arc<MiningCounters>, ) -> Self

Source

pub fn get_block_template( &self, consensus: &dyn ConsensusApi, miner_data: &MinerData, ) -> MiningManagerResult<BlockTemplate>

Source

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.

Source

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.

Source

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.

Source

pub fn has_transaction( &self, transaction_id: &TransactionId, query: TransactionQuery, ) -> bool

Returns whether the mempool holds this transaction in any form.

Source

pub fn get_all_transactions( &self, query: TransactionQuery, ) -> (Vec<MutableTransaction>, Vec<MutableTransaction>)

Source

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.

Source

pub fn transaction_count(&self, query: TransactionQuery) -> usize

Source

pub fn handle_new_block_transactions( &self, consensus: &dyn ConsensusApi, block_daa_score: u64, block_transactions: &[Transaction], ) -> MiningManagerResult<Vec<Arc<Transaction>>>

Source

pub fn expire_low_priority_transactions(&self, consensus: &dyn ConsensusApi)

Source

pub fn revalidate_high_priority_transactions( &self, consensus: &dyn ConsensusApi, transaction_ids_sender: UnboundedSender<Vec<TransactionId>>, )

Source

pub fn has_accepted_transaction(&self, transaction_id: &TransactionId) -> bool

Source

pub fn unaccepted_transactions( &self, transactions: Vec<TransactionId>, ) -> Vec<TransactionId> ⓘ

Source

pub fn unknown_transactions( &self, transactions: Vec<TransactionId>, ) -> Vec<TransactionId> ⓘ

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Any for T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Source§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Source§

fn type_name(&self) -> &'static str

Source§

impl<T> AnySync for T
where T: Any + Send + Sync,

Source§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send> ⓘ

Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T, U> ExactFrom<T> for U
where U: TryFrom<T>,

Source§

fn exact_from(value: T) -> U

Source§

impl<T, U> ExactInto<U> for T
where U: ExactFrom<T>,

Source§

fn exact_into(self) -> U

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
where F: FnOnce(&Self) -> bool,

Converts 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
Source§

impl<T, U> OverflowingInto<U> for T
where U: OverflowingFrom<T>,

Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T, U> RoundingInto<U> for T
where U: RoundingFrom<T>,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> SaturatingInto<U> for T
where U: SaturatingFrom<T>,

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> UnsafeAny for T
where T: Any,

Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T, U> WrappingInto<U> for T
where U: WrappingFrom<T>,

Source§

fn wrapping_into(self) -> U