pub struct ClientWrapper {
pub path_provider: PathProvider,
/* private fields */
}Expand description
Wrapper to run a Linera client command.
Fields§
§path_provider: PathProviderProvides the working directory for the client and its files.
Implementations§
Source§impl ClientWrapper
impl ClientWrapper
Sourcepub fn new(
path_provider: PathProvider,
network: Network,
testing_prng_seed: Option<u64>,
id: usize,
on_drop: OnClientDrop,
) -> Self
pub fn new( path_provider: PathProvider, network: Network, testing_prng_seed: Option<u64>, id: usize, on_drop: OnClientDrop, ) -> Self
Creates a new ClientWrapper, waiting for outgoing messages by default.
Sourcepub fn new_with_extra_args(
path_provider: PathProvider,
network: Network,
testing_prng_seed: Option<u64>,
id: usize,
on_drop: OnClientDrop,
extra_args: Vec<String>,
) -> Self
pub fn new_with_extra_args( path_provider: PathProvider, network: Network, testing_prng_seed: Option<u64>, id: usize, on_drop: OnClientDrop, extra_args: Vec<String>, ) -> Self
Creates a new ClientWrapper with the given extra arguments passed to every command.
Sourcepub async fn project_new(
&self,
project_name: &str,
linera_root: &Path,
) -> Result<TempDir>
pub async fn project_new( &self, project_name: &str, linera_root: &Path, ) -> Result<TempDir>
Runs linera project new.
Sourcepub async fn project_publish<T: Serialize>(
&self,
path: PathBuf,
required_application_ids: Vec<String>,
publisher: impl Into<Option<ChainId>>,
argument: &T,
) -> Result<String>
pub async fn project_publish<T: Serialize>( &self, path: PathBuf, required_application_ids: Vec<String>, publisher: impl Into<Option<ChainId>>, argument: &T, ) -> Result<String>
Runs linera project publish.
Sourcepub async fn project_test(&self, path: &Path) -> Result<()>
pub async fn project_test(&self, path: &Path) -> Result<()>
Runs linera project test.
Sourcepub async fn create_genesis_config(
&self,
num_other_initial_chains: u32,
initial_funding: Amount,
policy_config: ResourceControlPolicyConfig,
http_allow_list: Option<Vec<String>>,
) -> Result<()>
pub async fn create_genesis_config( &self, num_other_initial_chains: u32, initial_funding: Amount, policy_config: ResourceControlPolicyConfig, http_allow_list: Option<Vec<String>>, ) -> Result<()>
Runs linera create-genesis-config.
Sourcepub async fn wallet_init(&self, faucet: Option<&Faucet>) -> Result<()>
pub async fn wallet_init(&self, faucet: Option<&Faucet>) -> Result<()>
Runs linera wallet init. The genesis config is read from genesis.json, or from the
faucet if provided.
Sourcepub async fn request_chain(
&self,
faucet: &Faucet,
set_default: bool,
) -> Result<(ChainId, AccountOwner)>
pub async fn request_chain( &self, faucet: &Faucet, set_default: bool, ) -> Result<(ChainId, AccountOwner)>
Runs linera wallet request-chain.
Sourcepub async fn publish_and_create<A: ContractAbi, Parameters: Serialize, InstantiationArgument: Serialize>(
&self,
contract: PathBuf,
service: PathBuf,
vm_runtime: VmRuntime,
parameters: &Parameters,
argument: &InstantiationArgument,
required_application_ids: &[ApplicationId],
publisher: impl Into<Option<ChainId>>,
) -> Result<ApplicationId<A>>
pub async fn publish_and_create<A: ContractAbi, Parameters: Serialize, InstantiationArgument: Serialize>( &self, contract: PathBuf, service: PathBuf, vm_runtime: VmRuntime, parameters: &Parameters, argument: &InstantiationArgument, required_application_ids: &[ApplicationId], publisher: impl Into<Option<ChainId>>, ) -> Result<ApplicationId<A>>
Runs linera wallet publish-and-create.
Sourcepub async fn publish_module<Abi, Parameters, InstantiationArgument>(
&self,
contract: PathBuf,
service: PathBuf,
vm_runtime: VmRuntime,
publisher: impl Into<Option<ChainId>>,
) -> Result<ModuleId<Abi, Parameters, InstantiationArgument>>
pub async fn publish_module<Abi, Parameters, InstantiationArgument>( &self, contract: PathBuf, service: PathBuf, vm_runtime: VmRuntime, publisher: impl Into<Option<ChainId>>, ) -> Result<ModuleId<Abi, Parameters, InstantiationArgument>>
Runs linera publish-module.
Sourcepub async fn publish_module_with_formats<Abi, Parameters, InstantiationArgument>(
&self,
contract: PathBuf,
service: PathBuf,
formats: PathBuf,
registry_application_id: ApplicationId,
vm_runtime: VmRuntime,
publisher: impl Into<Option<ChainId>>,
) -> Result<ModuleId<Abi, Parameters, InstantiationArgument>>
pub async fn publish_module_with_formats<Abi, Parameters, InstantiationArgument>( &self, contract: PathBuf, service: PathBuf, formats: PathBuf, registry_application_id: ApplicationId, vm_runtime: VmRuntime, publisher: impl Into<Option<ChainId>>, ) -> Result<ModuleId<Abi, Parameters, InstantiationArgument>>
Runs linera publish-module-with-formats.
Sourcepub async fn create_application<Abi: ContractAbi, Parameters: Serialize, InstantiationArgument: Serialize>(
&self,
module_id: &ModuleId<Abi, Parameters, InstantiationArgument>,
parameters: &Parameters,
argument: &InstantiationArgument,
required_application_ids: &[ApplicationId],
creator: impl Into<Option<ChainId>>,
) -> Result<ApplicationId<Abi>>
pub async fn create_application<Abi: ContractAbi, Parameters: Serialize, InstantiationArgument: Serialize>( &self, module_id: &ModuleId<Abi, Parameters, InstantiationArgument>, parameters: &Parameters, argument: &InstantiationArgument, required_application_ids: &[ApplicationId], creator: impl Into<Option<ChainId>>, ) -> Result<ApplicationId<Abi>>
Runs linera create-application.
Sourcepub async fn run_node_service(
&self,
port: impl Into<Option<u16>>,
process_inbox: ProcessInbox,
) -> Result<NodeService>
pub async fn run_node_service( &self, port: impl Into<Option<u16>>, process_inbox: ProcessInbox, ) -> Result<NodeService>
Runs linera service.
Sourcepub async fn run_node_service_with_options(
&self,
port: impl Into<Option<u16>>,
process_inbox: ProcessInbox,
operator_application_ids: &[ApplicationId],
operators: &[(String, PathBuf)],
read_only: bool,
) -> Result<NodeService>
pub async fn run_node_service_with_options( &self, port: impl Into<Option<u16>>, process_inbox: ProcessInbox, operator_application_ids: &[ApplicationId], operators: &[(String, PathBuf)], read_only: bool, ) -> Result<NodeService>
Runs linera service with optional task processor configuration.
Sourcepub async fn run_node_service_with_all_options(
&self,
port: impl Into<Option<u16>>,
process_inbox: ProcessInbox,
operator_application_ids: &[ApplicationId],
operators: &[(String, PathBuf)],
read_only: bool,
allowed_subscriptions: &[String],
subscription_ttls: &[(String, u64)],
) -> Result<NodeService>
pub async fn run_node_service_with_all_options( &self, port: impl Into<Option<u16>>, process_inbox: ProcessInbox, operator_application_ids: &[ApplicationId], operators: &[(String, PathBuf)], read_only: bool, allowed_subscriptions: &[String], subscription_ttls: &[(String, u64)], ) -> Result<NodeService>
Runs linera service with all available options.
Sourcepub async fn run_node_service_with_controller(
&self,
port: impl Into<Option<u16>>,
process_inbox: ProcessInbox,
controller_id: &ApplicationId,
operators: &[(String, PathBuf)],
) -> Result<NodeService>
pub async fn run_node_service_with_controller( &self, port: impl Into<Option<u16>>, process_inbox: ProcessInbox, controller_id: &ApplicationId, operators: &[(String, PathBuf)], ) -> Result<NodeService>
Runs linera service with a controller application.
Sourcepub async fn query_validator(&self, address: &str) -> Result<CryptoHash>
pub async fn query_validator(&self, address: &str) -> Result<CryptoHash>
Runs linera validator query
Sourcepub async fn query_validators(&self, chain_id: Option<ChainId>) -> Result<()>
pub async fn query_validators(&self, chain_id: Option<ChainId>) -> Result<()>
Runs linera validator list.
Sourcepub async fn sync_validator(
&self,
chain_ids: impl IntoIterator<Item = &ChainId>,
validator_address: impl Into<String>,
) -> Result<()>
pub async fn sync_validator( &self, chain_ids: impl IntoIterator<Item = &ChainId>, validator_address: impl Into<String>, ) -> Result<()>
Runs linera validator sync.
Sourcepub async fn validator_benchmark(
&self,
address: impl Into<String>,
chains: impl IntoIterator<Item = &ChainId>,
extra_args: &[&str],
) -> Result<String>
pub async fn validator_benchmark( &self, address: impl Into<String>, chains: impl IntoIterator<Item = &ChainId>, extra_args: &[&str], ) -> Result<String>
Runs linera validator benchmark and returns its stdout.
Sourcepub async fn run_faucet(
&self,
port: impl Into<Option<u16>>,
chain_id: ChainId,
amount: Amount,
) -> Result<FaucetService>
pub async fn run_faucet( &self, port: impl Into<Option<u16>>, chain_id: ChainId, amount: Amount, ) -> Result<FaucetService>
Runs linera faucet.
Sourcepub async fn local_balance(&self, account: Account) -> Result<Amount>
pub async fn local_balance(&self, account: Account) -> Result<Amount>
Runs linera local-balance.
Sourcepub async fn query_balance(&self, account: Account) -> Result<Amount>
pub async fn query_balance(&self, account: Account) -> Result<Amount>
Runs linera query-balance.
Sourcepub async fn process_inbox(&self, chain_id: ChainId) -> Result<()>
pub async fn process_inbox(&self, chain_id: ChainId) -> Result<()>
Runs linera process-inbox.
Sourcepub async fn transfer(
&self,
amount: Amount,
from: ChainId,
to: ChainId,
) -> Result<()>
pub async fn transfer( &self, amount: Amount, from: ChainId, to: ChainId, ) -> Result<()>
Runs linera transfer.
Sourcepub async fn transfer_with_silent_logs(
&self,
amount: Amount,
from: ChainId,
to: ChainId,
) -> Result<()>
pub async fn transfer_with_silent_logs( &self, amount: Amount, from: ChainId, to: ChainId, ) -> Result<()>
Runs linera transfer with no logging.
Sourcepub async fn transfer_with_accounts(
&self,
amount: Amount,
from: Account,
to: Account,
) -> Result<()>
pub async fn transfer_with_accounts( &self, amount: Amount, from: Account, to: Account, ) -> Result<()>
Runs linera transfer with owner accounts.
Sourcepub async fn benchmark(&self, args: BenchmarkCommand) -> Result<()>
pub async fn benchmark(&self, args: BenchmarkCommand) -> Result<()>
Runs linera benchmark.
Sourcepub async fn benchmark_detached(
&self,
args: BenchmarkCommand,
tx: Sender<()>,
) -> Result<(Child, JoinHandle<()>, JoinHandle<()>)>
pub async fn benchmark_detached( &self, args: BenchmarkCommand, tx: Sender<()>, ) -> Result<(Child, JoinHandle<()>, JoinHandle<()>)>
Runs linera benchmark, but detached: don’t wait for the command to finish, just spawn it
and return the child process, and the handles to the stdout and stderr.
Sourcepub async fn open_chain_super_owner(
&self,
from: ChainId,
owner: Option<AccountOwner>,
initial_balance: Amount,
) -> Result<(ChainId, AccountOwner)>
pub async fn open_chain_super_owner( &self, from: ChainId, owner: Option<AccountOwner>, initial_balance: Amount, ) -> Result<(ChainId, AccountOwner)>
Runs linera open-chain --super-owner.
Sourcepub async fn open_chain(
&self,
from: ChainId,
owner: Option<AccountOwner>,
initial_balance: Amount,
) -> Result<(ChainId, AccountOwner)>
pub async fn open_chain( &self, from: ChainId, owner: Option<AccountOwner>, initial_balance: Amount, ) -> Result<(ChainId, AccountOwner)>
Runs linera open-chain.
Sourcepub async fn open_and_assign(
&self,
client: &ClientWrapper,
initial_balance: Amount,
) -> Result<ChainId>
pub async fn open_and_assign( &self, client: &ClientWrapper, initial_balance: Amount, ) -> Result<ChainId>
Runs linera open-chain then linera assign.
Sourcepub async fn open_multi_owner_chain(
&self,
from: ChainId,
owners: BTreeMap<AccountOwner, u64>,
multi_leader_rounds: u32,
balance: Amount,
base_timeout_ms: u64,
) -> Result<ChainId>
pub async fn open_multi_owner_chain( &self, from: ChainId, owners: BTreeMap<AccountOwner, u64>, multi_leader_rounds: u32, balance: Amount, base_timeout_ms: u64, ) -> Result<ChainId>
Runs linera open-multi-owner-chain and returns the new chain’s ID.
Sourcepub async fn change_ownership(
&self,
chain_id: ChainId,
super_owners: Vec<AccountOwner>,
owners: Vec<AccountOwner>,
) -> Result<()>
pub async fn change_ownership( &self, chain_id: ChainId, super_owners: Vec<AccountOwner>, owners: Vec<AccountOwner>, ) -> Result<()>
Runs linera change-ownership.
Sourcepub async fn follow_chain(&self, chain_id: ChainId, sync: bool) -> Result<()>
pub async fn follow_chain(&self, chain_id: ChainId, sync: bool) -> Result<()>
Runs linera wallet follow-chain CHAIN_ID.
Sourcepub async fn forget_chain(&self, chain_id: ChainId) -> Result<()>
pub async fn forget_chain(&self, chain_id: ChainId) -> Result<()>
Runs linera wallet forget-chain CHAIN_ID.
Sourcepub async fn set_default_chain(&self, chain_id: ChainId) -> Result<()>
pub async fn set_default_chain(&self, chain_id: ChainId) -> Result<()>
Runs linera wallet set-default CHAIN_ID.
Sourcepub async fn retry_pending_block(
&self,
chain_id: Option<ChainId>,
) -> Result<Option<CryptoHash>>
pub async fn retry_pending_block( &self, chain_id: Option<ChainId>, ) -> Result<Option<CryptoHash>>
Runs linera retry-pending-block and returns the hash of the produced block, if any.
Sourcepub async fn publish_data_blob(
&self,
path: &Path,
chain_id: Option<ChainId>,
) -> Result<CryptoHash>
pub async fn publish_data_blob( &self, path: &Path, chain_id: Option<ChainId>, ) -> Result<CryptoHash>
Runs linera publish-data-blob.
Sourcepub async fn read_data_blob(
&self,
hash: CryptoHash,
chain_id: Option<ChainId>,
) -> Result<()>
pub async fn read_data_blob( &self, hash: CryptoHash, chain_id: Option<ChainId>, ) -> Result<()>
Runs linera read-data-blob.
Sourcepub fn load_wallet(&self) -> Result<Wallet>
pub fn load_wallet(&self) -> Result<Wallet>
Loads the wallet from this client’s wallet file.
Sourcepub fn load_keystore(&self) -> Result<InMemorySigner>
pub fn load_keystore(&self) -> Result<InMemorySigner>
Loads the in-memory signer from this client’s keystore file.
Sourcepub fn wallet_path(&self) -> PathBuf
pub fn wallet_path(&self) -> PathBuf
Returns the path to this client’s wallet file.
Sourcepub fn keystore_path(&self) -> PathBuf
pub fn keystore_path(&self) -> PathBuf
Returns the path to this client’s keystore file.
Sourcepub fn storage_path(&self) -> &str
pub fn storage_path(&self) -> &str
Returns the storage specification string used by this client.
Sourcepub fn get_owner(&self) -> Option<AccountOwner>
pub fn get_owner(&self) -> Option<AccountOwner>
Returns the owner of the wallet’s default chain, if any.
Sourcepub fn is_chain_present_in_wallet(&self, chain: ChainId) -> bool
pub fn is_chain_present_in_wallet(&self, chain: ChainId) -> bool
Returns whether the given chain is present in the wallet.
Sourcepub async fn set_validator(
&self,
validator_key: &(String, String),
port: usize,
votes: usize,
) -> Result<()>
pub async fn set_validator( &self, validator_key: &(String, String), port: usize, votes: usize, ) -> Result<()>
Runs linera validator add.
Sourcepub async fn remove_validator(&self, validator_key: &str) -> Result<()>
pub async fn remove_validator(&self, validator_key: &str) -> Result<()>
Runs linera validator remove.
Sourcepub async fn change_validators(
&self,
add_validators: &[(String, String, usize, usize)],
modify_validators: &[(String, String, usize, usize)],
remove_validators: &[String],
) -> Result<()>
pub async fn change_validators( &self, add_validators: &[(String, String, usize, usize)], modify_validators: &[(String, String, usize, usize)], remove_validators: &[String], ) -> Result<()>
Runs linera validator update to add, modify, and remove validators in one call.
Sourcepub async fn revoke_epochs(&self, epoch: Epoch) -> Result<()>
pub async fn revoke_epochs(&self, epoch: Epoch) -> Result<()>
Runs linera revoke-epochs.
Sourcepub async fn change_http_whitelist(&self, list: &[&str]) -> Result<()>
pub async fn change_http_whitelist(&self, list: &[&str]) -> Result<()>
Runs linera resource-control-policy --http-request-allow-list.
Sourcepub async fn keygen(&self) -> Result<AccountOwner>
pub async fn keygen(&self) -> Result<AccountOwner>
Runs linera keygen.
Sourcepub fn default_chain(&self) -> Option<ChainId>
pub fn default_chain(&self) -> Option<ChainId>
Returns the default chain.
Sourcepub async fn assign(&self, owner: AccountOwner, chain_id: ChainId) -> Result<()>
pub async fn assign(&self, owner: AccountOwner, chain_id: ChainId) -> Result<()>
Runs linera assign.
Sourcepub async fn set_preferred_owner(
&self,
chain_id: ChainId,
owner: Option<AccountOwner>,
) -> Result<()>
pub async fn set_preferred_owner( &self, chain_id: ChainId, owner: Option<AccountOwner>, ) -> Result<()>
Runs linera set-preferred-owner for chain_id.
Trait Implementations§
Source§impl Drop for ClientWrapper
impl Drop for ClientWrapper
Auto Trait Implementations§
impl !Freeze for ClientWrapper
impl RefUnwindSafe for ClientWrapper
impl Send for ClientWrapper
impl Sync for ClientWrapper
impl Unpin for ClientWrapper
impl UnsafeUnpin for ClientWrapper
impl UnwindSafe for ClientWrapper
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
impl<_INNER> AutoTraits for _INNER
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<F, W, T, D> Deserialize<With<T, W>, D> for F
impl<F, W, T, D> Deserialize<With<T, W>, D> for F
impl<T> ErasedDestructor for Twhere
T: 'static,
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
Source§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
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<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
impl<T> MaybeSend for Twhere
T: Send,
impl<T> MaybeSync for Twhere
T: Sync,
Source§impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Post for Twhere
T: Send + 'static,
Source§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.