pub struct Client<Env: Environment> {
pub local_node: LocalNodeClient<Env::Storage>,
/* private fields */
}Expand description
A builder that creates ChainClients which share the cache and notifiers.
Fields§
§local_node: LocalNodeClient<Env::Storage>Local node to manage the execution state and the local storage of the chains that we are tracking.
Implementations§
Source§impl<Env: Environment> Client<Env>
impl<Env: Environment> Client<Env>
Sourcepub fn new(
environment: Env,
admin_chain_id: ChainId,
long_lived_services: bool,
chain_modes: impl IntoIterator<Item = (ChainId, ListeningMode)>,
name: impl Into<String>,
chain_worker_ttl: Duration,
sender_chain_worker_ttl: Duration,
options: ChainClientOptions,
requests_scheduler_config: RequestsSchedulerConfig,
) -> Self
pub fn new( environment: Env, admin_chain_id: ChainId, long_lived_services: bool, chain_modes: impl IntoIterator<Item = (ChainId, ListeningMode)>, name: impl Into<String>, chain_worker_ttl: Duration, sender_chain_worker_ttl: Duration, options: ChainClientOptions, requests_scheduler_config: RequestsSchedulerConfig, ) -> Self
Creates a new Client with a new cache and notifiers.
Sourcepub fn admin_chain_id(&self) -> ChainId
pub fn admin_chain_id(&self) -> ChainId
Returns the chain ID of the admin chain.
Sourcepub fn storage_client(&self) -> &Env::Storage
pub fn storage_client(&self) -> &Env::Storage
Returns the storage client used by this client’s local node.
pub fn validator_node_provider(&self) -> &Env::Network
Sourcepub async fn has_key_for(
&self,
owner: &AccountOwner,
) -> Result<bool, ChainClientError>
pub async fn has_key_for( &self, owner: &AccountOwner, ) -> Result<bool, ChainClientError>
Returns whether the signer has a key for the given owner.
Sourcepub fn extend_chain_mode(
&self,
chain_id: ChainId,
mode: ListeningMode,
) -> ListeningMode
pub fn extend_chain_mode( &self, chain_id: ChainId, mode: ListeningMode, ) -> ListeningMode
Extends the listening mode for a chain, combining with the existing mode if present. Returns the resulting mode.
Sourcepub fn chain_mode(&self, chain_id: ChainId) -> Option<ListeningMode>
pub fn chain_mode(&self, chain_id: ChainId) -> Option<ListeningMode>
Returns the listening mode for a chain, if it is tracked.
Sourcepub fn is_tracked(&self, chain_id: ChainId) -> bool
pub fn is_tracked(&self, chain_id: ChainId) -> bool
Returns whether a chain is fully tracked by the local node.
Sourcepub fn create_chain_client(
self: &Arc<Self>,
chain_id: ChainId,
block_hash: Option<CryptoHash>,
next_block_height: BlockHeight,
pending_proposal: Option<PendingProposal>,
preferred_owner: Option<AccountOwner>,
timing_sender: Option<UnboundedSender<(u64, TimingType)>>,
) -> ChainClient<Env>
pub fn create_chain_client( self: &Arc<Self>, chain_id: ChainId, block_hash: Option<CryptoHash>, next_block_height: BlockHeight, pending_proposal: Option<PendingProposal>, preferred_owner: Option<AccountOwner>, timing_sender: Option<UnboundedSender<(u64, TimingType)>>, ) -> ChainClient<Env>
Creates a new ChainClient.
Sourcepub async fn admin_committee(
&self,
) -> Result<(Epoch, Committee), LocalNodeError>
pub async fn admin_committee( &self, ) -> Result<(Epoch, Committee), LocalNodeError>
Obtains the committee for the latest epoch on the admin chain.
Sourcepub async fn get_chain_description_blob(
&self,
chain_id: ChainId,
) -> Result<Blob, ChainClientError>
pub async fn get_chain_description_blob( &self, chain_id: ChainId, ) -> Result<Blob, ChainClientError>
Ensures that the client has the ChainDescription blob corresponding to this
client’s ChainId, and returns the chain description blob.
Sourcepub async fn get_chain_description(
&self,
chain_id: ChainId,
) -> Result<ChainDescription, ChainClientError>
pub async fn get_chain_description( &self, chain_id: ChainId, ) -> Result<ChainDescription, ChainClientError>
Ensures that the client has the ChainDescription blob corresponding to this
client’s ChainId, and returns the chain description.
Sourcepub async fn synchronize_chain_state_from_committee(
&self,
chain_id: ChainId,
committee: Committee,
) -> Result<Box<ChainInfo>, ChainClientError>
pub async fn synchronize_chain_state_from_committee( &self, chain_id: ChainId, committee: Committee, ) -> Result<Box<ChainInfo>, ChainClientError>
Downloads certificates for the given chain from the given committee.
If the chain is not in follow-only mode, also fetches and processes manager values (timeout certificates, proposals, locking blocks) for consensus participation.
Auto Trait Implementations§
impl<Env> !Freeze for Client<Env>
impl<Env> !RefUnwindSafe for Client<Env>
impl<Env> Send for Client<Env>
impl<Env> Sync for Client<Env>
impl<Env> Unpin for Client<Env>where
Env: Unpin,
impl<Env> UnsafeUnpin for Client<Env>where
Env: UnsafeUnpin,
impl<Env> !UnwindSafe for Client<Env>
Blanket Implementations§
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<Choices> CoproductSubsetter<CNil, HNil> for Choices
impl<Choices> CoproductSubsetter<CNil, HNil> for Choices
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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::RequestSource§impl<M, I> RuntimeMemory<&mut I> for Mwhere
M: RuntimeMemory<I>,
impl<M, I> RuntimeMemory<&mut I> for Mwhere
M: RuntimeMemory<I>,
Source§fn read<'instance>(
&self,
instance: &'instance &mut I,
location: GuestPointer,
length: u32,
) -> Result<Cow<'instance, [u8]>, RuntimeError>
fn read<'instance>( &self, instance: &'instance &mut I, location: GuestPointer, length: u32, ) -> Result<Cow<'instance, [u8]>, RuntimeError>
Reads length bytes from memory from the provided location.
Source§fn write(
&mut self,
instance: &mut &mut I,
location: GuestPointer,
bytes: &[u8],
) -> Result<(), RuntimeError>
fn write( &mut self, instance: &mut &mut I, location: GuestPointer, bytes: &[u8], ) -> Result<(), RuntimeError>
Writes the bytes to memory at the provided location.