Struct linera_service::cli_wrappers::ClientWrapper
source · pub struct ClientWrapper {
pub path_provider: PathProvider,
/* private fields */
}
Expand description
Wrapper to run a Linera client command.
Fields§
§path_provider: PathProvider
Implementations§
source§impl ClientWrapper
impl ClientWrapper
pub fn new( path_provider: PathProvider, network: Network, testing_prng_seed: Option<u64>, id: usize, on_drop: OnClientDrop, ) -> Self
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,
) -> Result<()>
pub async fn create_genesis_config( &self, num_other_initial_chains: u32, initial_funding: Amount, policy_config: ResourceControlPolicyConfig, ) -> Result<()>
Runs linera create-genesis-config
.
sourcepub async fn wallet_init(
&self,
chain_ids: &[ChainId],
faucet: FaucetOption<'_>,
) -> Result<Option<(ClaimOutcome, Owner)>>
pub async fn wallet_init( &self, chain_ids: &[ChainId], faucet: FaucetOption<'_>, ) -> Result<Option<(ClaimOutcome, Owner)>>
Runs linera wallet init
.
sourcepub async fn request_chain(
&self,
faucet: &Faucet,
set_default: bool,
) -> Result<(ClaimOutcome, Owner)>
pub async fn request_chain( &self, faucet: &Faucet, set_default: bool, ) -> Result<(ClaimOutcome, Owner)>
Runs linera wallet request-chain
.
sourcepub async fn publish_and_create<A: ContractAbi, Parameters: Serialize, InstantiationArgument: Serialize>(
&self,
contract: PathBuf,
service: PathBuf,
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, 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_bytecode<Abi, Parameters, InstantiationArgument>(
&self,
contract: PathBuf,
service: PathBuf,
publisher: impl Into<Option<ChainId>>,
) -> Result<BytecodeId<Abi, Parameters, InstantiationArgument>>
pub async fn publish_bytecode<Abi, Parameters, InstantiationArgument>( &self, contract: PathBuf, service: PathBuf, publisher: impl Into<Option<ChainId>>, ) -> Result<BytecodeId<Abi, Parameters, InstantiationArgument>>
Runs linera publish-bytecode
.
sourcepub async fn create_application<Abi: ContractAbi, Parameters: Serialize, InstantiationArgument: Serialize>(
&self,
bytecode_id: &BytecodeId<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, bytecode_id: &BytecodeId<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 request_application(
&self,
application_id: ApplicationId,
requester_chain_id: ChainId,
target_chain_id: Option<ChainId>,
) -> Result<BytecodeId>
pub async fn request_application( &self, application_id: ApplicationId, requester_chain_id: ChainId, target_chain_id: Option<ChainId>, ) -> Result<BytecodeId>
Runs linera request-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 query_validator(&self, address: &str) -> Result<CryptoHash>
pub async fn query_validator(&self, address: &str) -> Result<CryptoHash>
Runs linera query-validator
sourcepub async fn query_validators(&self, chain_id: Option<ChainId>) -> Result<()>
pub async fn query_validators(&self, chain_id: Option<ChainId>) -> Result<()>
Runs linera query-validators
.
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 sync-validator
.
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,
num_chains: usize,
transactions_per_block: usize,
fungible_application_id: Option<ApplicationId<FungibleTokenAbi>>,
) -> Result<()>
pub async fn benchmark( &self, num_chains: usize, transactions_per_block: usize, fungible_application_id: Option<ApplicationId<FungibleTokenAbi>>, ) -> Result<()>
Runs linera benchmark
.
sourcepub async fn open_chain(
&self,
from: ChainId,
owner: Option<Owner>,
initial_balance: Amount,
) -> Result<(MessageId, ChainId, Owner)>
pub async fn open_chain( &self, from: ChainId, owner: Option<Owner>, initial_balance: Amount, ) -> Result<(MessageId, ChainId, Owner)>
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
.
pub async fn open_multi_owner_chain( &self, from: ChainId, owners: Vec<Owner>, weights: Vec<u64>, multi_leader_rounds: u32, balance: Amount, base_timeout_ms: u64, ) -> Result<(MessageId, ChainId)>
pub async fn change_ownership( &self, chain_id: ChainId, super_owners: Vec<Owner>, owners: Vec<Owner>, ) -> Result<()>
sourcepub async fn follow_chain(&self, chain_id: ChainId) -> Result<()>
pub async fn follow_chain(&self, chain_id: ChainId) -> 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
.
pub async fn retry_pending_block( &self, chain_id: Option<ChainId>, ) -> Result<Option<CryptoHash>>
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
.
pub fn load_wallet(&self) -> Result<Wallet>
pub fn wallet_path(&self) -> PathBuf
pub fn storage_path(&self) -> &str
pub fn get_owner(&self) -> Option<Owner>
pub async fn is_chain_present_in_wallet(&self, chain: ChainId) -> bool
pub async fn set_validator( &self, validator_key: &(String, String), port: usize, votes: usize, ) -> Result<()>
pub async fn remove_validator(&self, validator_key: &str) -> Result<()>
pub async fn finalize_committee(&self) -> Result<()>
sourcepub fn default_chain(&self) -> Option<ChainId>
pub fn default_chain(&self) -> Option<ChainId>
Returns the default chain.
sourcepub async fn assign(
&self,
owner: Owner,
message_id: MessageId,
) -> Result<ChainId>
pub async fn assign( &self, owner: Owner, message_id: MessageId, ) -> Result<ChainId>
Runs linera assign
.
pub async fn build_application( &self, path: &Path, name: &str, is_workspace: bool, ) -> Result<(PathBuf, PathBuf)>
source§impl ClientWrapper
impl ClientWrapper
Trait Implementations§
Auto Trait Implementations§
impl !Freeze for ClientWrapper
impl RefUnwindSafe for ClientWrapper
impl Send for ClientWrapper
impl Sync for ClientWrapper
impl Unpin for ClientWrapper
impl UnwindSafe for ClientWrapper
Blanket Implementations§
source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
§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
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
source§impl<T> FmtForward for T
impl<T> FmtForward for T
source§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self
to use its Binary
implementation when Debug
-formatted.source§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self
to use its Display
implementation when
Debug
-formatted.source§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self
to use its LowerExp
implementation when
Debug
-formatted.source§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self
to use its LowerHex
implementation when
Debug
-formatted.source§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self
to use its Octal
implementation when Debug
-formatted.source§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self
to use its Pointer
implementation when
Debug
-formatted.source§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self
to use its UpperExp
implementation when
Debug
-formatted.source§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self
to use its UpperHex
implementation when
Debug
-formatted.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::Request
source§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>
source§impl<T> MockResults for T
impl<T> MockResults for T
§type Results = T
type Results = T
MockInstance
.source§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
source§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read moresource§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read moresource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
source§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self
, then passes self.as_ref()
into the pipe function.source§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self
, then passes self.as_mut()
into the pipe
function.source§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self
, then passes self.deref()
into the pipe function.source§impl<T> Pointable for T
impl<T> Pointable for T
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
.
source§impl<T> Tap for T
impl<T> Tap for T
source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B>
of a value. Read moresource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B>
of a value. Read moresource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R>
view of a value. Read moresource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R>
view of a value. Read moresource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target
of a value. Read moresource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target
of a value. Read moresource§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap()
only in debug builds, and is erased in release builds.source§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut()
only in debug builds, and is erased in release
builds.source§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow()
only in debug builds, and is erased in release
builds.source§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut()
only in debug builds, and is erased in release
builds.source§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref()
only in debug builds, and is erased in release
builds.source§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut()
only in debug builds, and is erased in release
builds.source§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref()
only in debug builds, and is erased in release
builds.