MiningManagerProxy

Struct MiningManagerProxy 

Source
pub struct MiningManagerProxy { /* private fields */ }
Expand description

Async proxy for the mining manager

Implementations§

Source§

impl MiningManagerProxy

Source

pub fn new(inner: Arc<MiningManager>) -> Self

Source

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

Source

pub async fn get_realtime_feerate_estimations(self) -> FeerateEstimations

Returns realtime feerate estimations based on internal mempool state

Source

pub async fn get_realtime_feerate_estimations_verbose( self, consensus: &ConsensusProxy, prefix: Prefix, ) -> MiningManagerResult<FeeEstimateVerbose>

Returns realtime feerate estimations based on internal mempool state with additional verbose data

Source

pub async fn validate_and_insert_transaction( self, consensus: &ConsensusProxy, transaction: Transaction, priority: Priority, orphan: Orphan, rbf_policy: RbfPolicy, ) -> MiningManagerResult<TransactionInsertion>

Validates a 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.

The returned transactions are references of objects owned by the mempool.

Source

pub async fn validate_and_insert_transaction_batch( self, consensus: &ConsensusProxy, 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 async fn handle_new_block_transactions( self, consensus: &ConsensusProxy, block_daa_score: u64, block_transactions: Arc<Vec<Transaction>>, ) -> MiningManagerResult<Vec<Arc<Transaction>>>

Source

pub async fn expire_low_priority_transactions(self, consensus: &ConsensusProxy)

Source

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

Source

pub async 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 async fn has_transaction( self, transaction_id: TransactionId, query: TransactionQuery, ) -> bool

Returns whether the mempool holds this transaction in any form.

Source

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

Source

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

Source

pub async 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 async fn has_accepted_transaction( self, transaction_id: TransactionId, ) -> bool

Returns whether a transaction id was registered as accepted in the mempool, meaning that the consensus accepted a block containing it and said block was handled by the mempool.

Registered transaction ids expire after a delay and are unregistered from the mempool. So a returned value of true means with certitude that the transaction was accepted and a false means either the transaction was never accepted or it was but beyond the expiration delay.

Source

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

Returns a vector of unaccepted transactions. For more details, see Self::has_accepted_transaction().

Source

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

Returns a vector with all transaction ids that are neither in the mempool, nor in the orphan pool nor accepted.

Source

pub fn snapshot(&self) -> MempoolCountersSnapshot

Source

pub fn p2p_tx_count_sample(&self) -> P2pTxCountSample

Source

pub fn transaction_count_sample(&self, query: TransactionQuery) -> u64

Returns a recent sample of transaction count which is not necessarily accurate but is updated enough for being used as a stats/metric

Trait Implementations§

Source§

impl Clone for MiningManagerProxy

Source§

fn clone(&self) -> MiningManagerProxy

Returns a duplicate of the value. Read more
1.0.0§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more

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> CloneAny for T
where T: Any + Clone + Send + Sync,

§

impl<T> CloneToUninit for T
where T: Clone,

§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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

§

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> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
§

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,