pub struct TradingInfrastructure {
pub rpc: Arc<SolanaRpcClient>,
pub swqos_clients: Vec<Arc<SwqosClient>>,
pub config: InfrastructureConfig,
}Expand description
Shared infrastructure components that can be reused across multiple wallets
This struct holds the expensive-to-initialize components (RPC client, SWQOS clients) that are wallet-independent and can be shared when only the trading wallet changes.
Fields§
§rpc: Arc<SolanaRpcClient>Shared RPC client for blockchain interactions
swqos_clients: Vec<Arc<SwqosClient>>Shared SWQOS clients for transaction priority and routing
config: InfrastructureConfigConfiguration used to create this infrastructure
Implementations§
Source§impl TradingInfrastructure
impl TradingInfrastructure
Sourcepub async fn new(config: InfrastructureConfig) -> Self
pub async fn new(config: InfrastructureConfig) -> Self
Create new shared infrastructure from configuration
This performs the expensive initialization:
- Creates RPC client with connection pool
- Creates SWQOS clients (each with their own HTTP client)
- Initializes rent cache and starts background updater
Auto Trait Implementations§
impl Freeze for TradingInfrastructure
impl !RefUnwindSafe for TradingInfrastructure
impl Send for TradingInfrastructure
impl Sync for TradingInfrastructure
impl Unpin for TradingInfrastructure
impl !UnwindSafe for TradingInfrastructure
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
Mutably borrows from an owned value. Read more
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>
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 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>
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