Skip to main content

Client

Struct Client 

Source
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>

Source

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: Option<Duration>, sender_chain_worker_ttl: Option<Duration>, cross_chain_batch_size_limit: usize, options: Options, requests_scheduler_config: &RequestsSchedulerConfig, block_cache_size: usize, execution_state_cache_size: usize, ) -> Self

Creates a new Client with a new cache and notifiers.

Source

pub fn admin_chain_id(&self) -> ChainId

Returns the chain ID of the admin chain.

Source

pub fn subscribe( &self, chain_ids: Vec<ChainId>, ) -> UnboundedReceiver<Notification>

Subscribes to notifications for the given chain IDs.

Source

pub fn subscribe_extra( &self, chain_ids: Vec<ChainId>, sender: &UnboundedSender<Notification>, )

Adds additional chain IDs to an existing subscription.

Source

pub fn storage_client(&self) -> &Env::Storage

Returns the storage client used by this client’s local node.

Source

pub fn validator_node_provider(&self) -> &Env::Network

Returns the provider used to connect to validator nodes.

Source

pub async fn retry_pending_cross_chain_requests( &self, sender_chain: ChainId, ) -> Result<(), LocalNodeError>

Handles any pending local cross-chain requests, notifying subscribers.

Source

pub fn signer(&self) -> &Env::Signer

Returns a reference to the client’s Signer.

Source

pub async fn has_key_for(&self, owner: &AccountOwner) -> Result<bool, Error>

Returns whether the signer has a key for the given owner.

Source

pub fn wallet(&self) -> &Env::Wallet

Returns a reference to the client’s Wallet.

Source

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.

Source

pub fn chain_mode(&self, chain_id: ChainId) -> Option<ListeningMode>

Returns the listening mode for a chain, if it is tracked.

Source

pub fn is_tracked(&self, chain_id: ChainId) -> bool

Returns whether a chain is fully tracked by the local node.

Source

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.

Source

pub async fn admin_committee( &self, ) -> Result<(Epoch, Arc<Committee>), LocalNodeError>

Obtains the committee for the latest epoch on the admin chain.

See admin_committees for the fallback rationale (transitional).

Source

pub async fn get_chain_description_blob( &self, chain_id: ChainId, ) -> Result<Arc<Blob>, Error>

Ensures that the client has the ChainDescription blob corresponding to this client’s ChainId, and returns the chain description blob.

Source

pub async fn get_chain_description( &self, chain_id: ChainId, ) -> Result<ChainDescription, Error>

Ensures that the client has the ChainDescription blob corresponding to this client’s ChainId, and returns the chain description.

Source

pub async fn get_application_description_blob( &self, application_id: ApplicationId, ) -> Result<Arc<Blob>, Error>

Ensures that the client has the ApplicationDescription blob for the given application ID, fetching it from the current validators if it is not available locally, and returns the blob. The application need not be registered on this client’s chain: the description is content-addressed and downloaded by blob ID.

Source

pub async fn get_application_description( &self, application_id: ApplicationId, ) -> Result<ApplicationDescription, Error>

Returns the ApplicationDescription of the given application, fetching its description blob from the validators if it is not available locally.

Source

pub async fn synchronize_chain_state_from_committee( &self, chain_id: ChainId, committee: Arc<Committee>, ) -> Result<Box<ChainInfo>, Error>

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> !UnwindSafe 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,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<_INNER> AutoTraits for _INNER
where _INNER: Send + Sync + 'static,

Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<Choices> CoproductSubsetter<CNil, HNil> for Choices

Source§

type Remainder = Choices

Source§

fn subset( self, ) -> Result<CNil, <Choices as CoproductSubsetter<CNil, HNil>>::Remainder>

Extract a subset of the possible types in a coproduct (or get the remaining possibilities) Read more
Source§

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> FutureExt for T

Source§

fn with_context(self, otel_cx: Context) -> WithContext<Self>

Attaches the provided Context to this type, returning a WithContext wrapper. Read more
Source§

fn with_current_context(self) -> WithContext<Self>

Attaches the current Context to this type, returning a WithContext wrapper. Read more
Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

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> IntoRequest<T> for T

Source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
Source§

impl<L> LayerExt<L> for L

Source§

fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>
where L: Layer<S>,

Applies the layer to a service and wraps it in Layered.
Source§

impl<T, U, I> LiftInto<U, I> for T
where U: LiftFrom<T, I>,

Source§

fn lift_into(self) -> U

Performs the indexed conversion.
Source§

impl<T> MaybeSend for T
where T: Send,

Source§

impl<T> MaybeSync for T
where T: Sync,

Source§

impl<T> Post for T
where T: Send + 'static,

Source§

impl<M, I> RuntimeMemory<&mut I> for M
where M: RuntimeMemory<I>,

Source§

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>

Writes the bytes to memory at the provided location.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<Source> Sculptor<HNil, HNil> for Source

Source§

type Remainder = Source

Source§

fn sculpt(self) -> (HNil, <Source as Sculptor<HNil, HNil>>::Remainder)

Consumes the current HList and returns an HList with the requested shape. Read more
Source§

impl<AnyTail> Split<HNil> for AnyTail

Source§

type Remainder = AnyTail

The tail of remaining elements after splitting up the list.
Source§

fn split(self) -> (HNil, <AnyTail as Split<HNil>>::Remainder)

Splits the current heterogeneous list in two.
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

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> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more