pub trait ClientContext: Send + Sync {
type Environment: Environment;
// Required methods
fn wallet(&self) -> &<Self::Environment as Environment>::Wallet;
fn storage(&self) -> &<Self::Environment as Environment>::Storage;
fn client(&self) -> &Arc<Client<Self::Environment>>;
fn timing_sender(&self) -> Option<UnboundedSender<(u64, TimingType)>>;
fn update_wallet_for_new_chain(
&mut self,
chain_id: ChainId,
owner: Option<AccountOwner>,
timestamp: Timestamp,
epoch: Epoch,
) -> impl Future<Output = Result<(), Error>> + Send + Sync;
fn update_wallet(
&mut self,
client: &ChainClient<<Self as ClientContext>::Environment>,
) -> impl Future<Output = Result<(), Error>> + Send + Sync;
// Provided methods
fn admin_chain(&self) -> ChainId { ... }
fn make_chain_client(
&self,
chain_id: ChainId,
) -> impl Future<Output = Result<ChainClient<Self::Environment>, Error>> + Send + Sync { ... }
}Required Associated Types§
type Environment: Environment
Required Methods§
fn wallet(&self) -> &<Self::Environment as Environment>::Wallet
fn storage(&self) -> &<Self::Environment as Environment>::Storage
fn client(&self) -> &Arc<Client<Self::Environment>>
Sourcefn timing_sender(&self) -> Option<UnboundedSender<(u64, TimingType)>>
fn timing_sender(&self) -> Option<UnboundedSender<(u64, TimingType)>>
Gets the timing sender for benchmarking, if available.
fn update_wallet_for_new_chain( &mut self, chain_id: ChainId, owner: Option<AccountOwner>, timestamp: Timestamp, epoch: Epoch, ) -> impl Future<Output = Result<(), Error>> + Send + Sync
fn update_wallet( &mut self, client: &ChainClient<<Self as ClientContext>::Environment>, ) -> impl Future<Output = Result<(), Error>> + Send + Sync
Provided Methods§
fn admin_chain(&self) -> ChainId
fn make_chain_client( &self, chain_id: ChainId, ) -> impl Future<Output = Result<ChainClient<Self::Environment>, Error>> + Send + Sync
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.