Skip to main content

HostApi

Struct HostApi 

Source
pub struct HostApi { /* private fields */ }
Expand description

Shared host implementation. Handles decoded requests, returns encoded responses.

Implementations§

Source§

impl HostApi

Source

pub fn new() -> Self

Source

pub fn set_accounts(&mut self, accounts: Vec<Account>)

Set the accounts that will be returned by host_get_non_product_accounts.

SECURITY: This exposes account identifiers to any product that requests them. Will be replaced by scoped per-product identities via host-sso.

Source

pub fn set_supported_chains( &mut self, chains: impl IntoIterator<Item = [u8; 32]>, )

Set the chain genesis hashes that this host supports. Each hash is 32 bytes (raw, not hex-encoded).

Source

pub fn handle_message(&mut self, raw: &[u8], app_id: &str) -> HostApiOutcome

Process a raw binary message from the app.

Returns HostApiOutcome::Response for immediate replies, HostApiOutcome::NeedsSign for sign requests that need wallet approval, or HostApiOutcome::Silent for fire-and-forget messages.

app_id identifies the product — the host must use this value to scope storage when acting on NeedsStorageRead, NeedsStorageWrite, and NeedsStorageClear outcomes. It is not embedded in the outcome itself.

Trait Implementations§

Source§

impl Default for HostApi

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

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

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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, 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.