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, max_block_mass: u64, 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, max_block_mass: u64, 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 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.

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§

§

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

§

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>

§

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

§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
§

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

§

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

Mutably borrows from an owned value. Read more
Source§

impl<S> CastArc for S
where S: CastFromSync + ?Sized,

Source§

fn cast<T>(self: Arc<S>) -> Result<Arc<T>, Arc<S>>
where T: 'static + ?Sized,

Casts an Arc for this trait into that for type T.
Source§

impl<S> CastBox for S
where S: CastFrom + ?Sized,

Source§

fn cast<T>(self: Box<S>) -> Result<Box<T>, Box<S>>
where T: 'static + ?Sized,

Casts a box to this trait into that of type T. If fails, returns the receiver.
Source§

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

Source§

fn ref_any(&self) -> &(dyn Any + 'static)

Returns a immutable reference to Any, which is backed by the type implementing this trait.
Source§

fn mut_any(&mut self) -> &mut (dyn Any + 'static)

Returns a mutable reference to Any, which is backed by the type implementing this trait.
Source§

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

Returns a Box of Any, which is backed by the type implementing this trait.
Source§

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

Returns an Rc of Any, which is backed by the type implementing this trait.
Source§

impl<T> CastFromSync for T
where T: Sync + Send + 'static,

Source§

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

Source§

impl<S> CastMut for S
where S: CastFrom + ?Sized,

Source§

fn cast<T>(&mut self) -> Option<&mut T>
where T: 'static + ?Sized,

Casts a mutable reference to this trait into that of type T.
Source§

impl<S> CastRc for S
where S: CastFrom + ?Sized,

Source§

fn cast<T>(self: Rc<S>) -> Result<Rc<T>, Rc<S>>
where T: 'static + ?Sized,

Casts an Rc for this trait into that for type T.
Source§

impl<S> CastRef for S
where S: CastFrom + ?Sized,

Source§

fn cast<T>(&self) -> Option<&T>
where T: 'static + ?Sized,

Casts a reference to this trait into that of type T.
Source§

fn impls<T>(&self) -> bool
where T: 'static + ?Sized,

Tests if this trait object can be cast into T.
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

§

impl<T> From<T> for T

§

fn from(t: T) -> T

Returns the argument unchanged.

§

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

§

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>,

§

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

§

type Error = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
§

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

§

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

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

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

Performs the conversion.
Source§

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

Source§

fn vzip(self) -> V

Source§

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

Source§

fn wrapping_into(self) -> U

Source§

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