pub struct TxSubmitClient { /* private fields */ }Expand description
Transaction submission client that orchestrates RPC and direct submit modes.
Implementations§
Source§impl TxSubmitClient
impl TxSubmitClient
Sourcepub fn new(
blockhash_provider: Arc<dyn RecentBlockhashProvider>,
leader_provider: Arc<dyn LeaderProvider>,
) -> Self
pub fn new( blockhash_provider: Arc<dyn RecentBlockhashProvider>, leader_provider: Arc<dyn LeaderProvider>, ) -> Self
Creates a submission client with no transports preconfigured.
Sourcepub fn with_backups(self, backups: Vec<LeaderTarget>) -> Self
pub fn with_backups(self, backups: Vec<LeaderTarget>) -> Self
Sets optional backup validators.
Sourcepub fn with_routing_policy(self, policy: RoutingPolicy) -> Self
pub fn with_routing_policy(self, policy: RoutingPolicy) -> Self
Sets routing policy.
Sourcepub fn with_dedupe_ttl(self, ttl: Duration) -> Self
pub fn with_dedupe_ttl(self, ttl: Duration) -> Self
Sets dedupe TTL.
Sourcepub fn with_rpc_transport(self, transport: Arc<dyn RpcSubmitTransport>) -> Self
pub fn with_rpc_transport(self, transport: Arc<dyn RpcSubmitTransport>) -> Self
Sets RPC transport.
Sourcepub fn with_direct_transport(
self,
transport: Arc<dyn DirectSubmitTransport>,
) -> Self
pub fn with_direct_transport( self, transport: Arc<dyn DirectSubmitTransport>, ) -> Self
Sets direct transport.
Sourcepub fn with_rpc_config(self, config: RpcSubmitConfig) -> Self
pub fn with_rpc_config(self, config: RpcSubmitConfig) -> Self
Sets RPC submit tuning.
Sourcepub const fn with_direct_config(self, config: DirectSubmitConfig) -> Self
pub const fn with_direct_config(self, config: DirectSubmitConfig) -> Self
Sets direct submit tuning.
Sourcepub const fn with_reliability(self, reliability: SubmitReliability) -> Self
pub const fn with_reliability(self, reliability: SubmitReliability) -> Self
Sets direct/hybrid reliability profile.
Sourcepub fn with_flow_safety_source(
self,
source: Arc<dyn TxFlowSafetySource>,
) -> Self
pub fn with_flow_safety_source( self, source: Arc<dyn TxFlowSafetySource>, ) -> Self
Sets the toxic-flow guard source used before submission.
Sourcepub const fn with_guard_policy(self, policy: TxSubmitGuardPolicy) -> Self
pub const fn with_guard_policy(self, policy: TxSubmitGuardPolicy) -> Self
Sets the toxic-flow guard policy.
Sourcepub fn with_outcome_reporter(
self,
reporter: Arc<dyn TxSubmitOutcomeReporter>,
) -> Self
pub fn with_outcome_reporter( self, reporter: Arc<dyn TxSubmitOutcomeReporter>, ) -> Self
Sets an optional external outcome reporter.
Sourcepub fn toxic_flow_telemetry(&self) -> TxToxicFlowTelemetrySnapshot
pub fn toxic_flow_telemetry(&self) -> TxToxicFlowTelemetrySnapshot
Returns the current built-in toxic-flow telemetry snapshot.
Sourcepub fn record_external_outcome(&self, outcome: &TxSubmitOutcome)
pub fn record_external_outcome(&self, outcome: &TxSubmitOutcome)
Records one external terminal outcome against the built-in telemetry and optional reporter.
Sourcepub async fn submit_builder<T>(
&mut self,
builder: TxBuilder,
signers: &T,
mode: SubmitMode,
) -> Result<SubmitResult, SubmitError>
pub async fn submit_builder<T>( &mut self, builder: TxBuilder, signers: &T, mode: SubmitMode, ) -> Result<SubmitResult, SubmitError>
Builds, signs, and submits a transaction in one API call.
§Errors
Returns SubmitError when blockhash lookup, signing, dedupe, routing, or submission
fails.
Sourcepub async fn submit_builder_with_context<T>(
&mut self,
builder: TxBuilder,
signers: &T,
mode: SubmitMode,
context: TxSubmitContext,
) -> Result<SubmitResult, SubmitError>
pub async fn submit_builder_with_context<T>( &mut self, builder: TxBuilder, signers: &T, mode: SubmitMode, context: TxSubmitContext, ) -> Result<SubmitResult, SubmitError>
Builds, signs, and submits a transaction with explicit toxic-flow context.
§Errors
Returns SubmitError when blockhash lookup, signing, dedupe, toxic-flow guards,
routing, or submission fails.
Sourcepub async fn submit_transaction(
&mut self,
tx: VersionedTransaction,
mode: SubmitMode,
) -> Result<SubmitResult, SubmitError>
pub async fn submit_transaction( &mut self, tx: VersionedTransaction, mode: SubmitMode, ) -> Result<SubmitResult, SubmitError>
Submits one signed VersionedTransaction.
§Errors
Returns SubmitError when encoding, dedupe, routing, or submission fails.
Sourcepub async fn submit_transaction_with_context(
&mut self,
tx: VersionedTransaction,
mode: SubmitMode,
context: TxSubmitContext,
) -> Result<SubmitResult, SubmitError>
pub async fn submit_transaction_with_context( &mut self, tx: VersionedTransaction, mode: SubmitMode, context: TxSubmitContext, ) -> Result<SubmitResult, SubmitError>
Submits one signed VersionedTransaction with explicit toxic-flow context.
§Errors
Returns SubmitError when encoding, dedupe, toxic-flow guards, routing, or submission
fails.
Sourcepub async fn submit_signed(
&mut self,
signed_tx: SignedTx,
mode: SubmitMode,
) -> Result<SubmitResult, SubmitError>
pub async fn submit_signed( &mut self, signed_tx: SignedTx, mode: SubmitMode, ) -> Result<SubmitResult, SubmitError>
Submits externally signed transaction bytes.
§Errors
Returns SubmitError when decoding, dedupe, routing, or submission fails.
Sourcepub async fn submit_signed_with_context(
&mut self,
signed_tx: SignedTx,
mode: SubmitMode,
context: TxSubmitContext,
) -> Result<SubmitResult, SubmitError>
pub async fn submit_signed_with_context( &mut self, signed_tx: SignedTx, mode: SubmitMode, context: TxSubmitContext, ) -> Result<SubmitResult, SubmitError>
Submits externally signed transaction bytes with explicit toxic-flow context.
§Errors
Returns SubmitError when decoding, dedupe, toxic-flow guards, routing, or submission
fails.
Auto Trait Implementations§
impl Freeze for TxSubmitClient
impl !RefUnwindSafe for TxSubmitClient
impl Send for TxSubmitClient
impl Sync for TxSubmitClient
impl Unpin for TxSubmitClient
impl UnsafeUnpin for TxSubmitClient
impl !UnwindSafe for TxSubmitClient
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§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 more