pub struct AleoClient {
pub network: AleoHttpClient,
/* private fields */
}Expand description
High-level Aleo client that orchestrates the full lifecycle.
Fields§
§network: AleoHttpClientImplementations§
Source§impl AleoClient
impl AleoClient
Sourcepub fn new_with_rpc(rest_url: &str, rpc_url: &str) -> Result<Self>
pub fn new_with_rpc(rest_url: &str, rpc_url: &str) -> Result<Self>
Create a client with a custom RPC URL (for testing with wiremock).
Sourcepub fn set_account_from_private_key_str(&mut self, pk_str: &str) -> Result<()>
pub fn set_account_from_private_key_str(&mut self, pk_str: &str) -> Result<()>
Set the account from a private key string.
Sourcepub fn require_account(&self) -> Result<&AleoAccount>
pub fn require_account(&self) -> Result<&AleoAccount>
Get a reference to the current account, or error if not set.
Sourcepub fn load_program_from_source(&mut self, source: &str) -> Result<()>
pub fn load_program_from_source(&mut self, source: &str) -> Result<()>
Load a program from source string and store it.
Sourcepub fn set_program(&mut self, program: AleoProgram)
pub fn set_program(&mut self, program: AleoProgram)
Directly set a program (e.g. from AleoProgram::credits()).
Sourcepub fn require_program(&self) -> Result<&AleoProgram>
pub fn require_program(&self) -> Result<&AleoProgram>
Get a reference to the stored program, or error if not set.
Sourcepub fn execute_local(
&self,
program_id: &str,
function_name: &str,
inputs: &[String],
) -> Result<String>
pub fn execute_local( &self, program_id: &str, function_name: &str, inputs: &[String], ) -> Result<String>
Execute a function locally without proving or broadcasting.
This is a dry-run: it authorizes and executes the function call using a temporary process with the loaded program, but does NOT generate proofs or submit anything to the network.
If a program has been loaded via load_program_from_source(), it
will be registered automatically. For built-in programs (credits.aleo),
no pre-loading is needed.
Sourcepub async fn prove_execution(
&self,
private_key: &PrivateKey<TestnetV0>,
program_id: &ProgramID<TestnetV0>,
function_name: &str,
inputs: Vec<&str>,
base_fee: u64,
priority_fee: u64,
) -> Result<String>
pub async fn prove_execution( &self, private_key: &PrivateKey<TestnetV0>, program_id: &ProgramID<TestnetV0>, function_name: &str, inputs: Vec<&str>, base_fee: u64, priority_fee: u64, ) -> Result<String>
Full pipeline: authorize → execute → prove → return Transaction JSON (no broadcast).
Equivalent to JS SDK run(_, _, _, proveExecution=true) without the broadcast step.
Returns the serialized transaction as a JSON string.
Sourcepub async fn execute_and_broadcast(
&self,
private_key: &PrivateKey<TestnetV0>,
program_id: &ProgramID<TestnetV0>,
function_name: &str,
inputs: Vec<&str>,
base_fee: u64,
priority_fee: u64,
) -> Result<String>
pub async fn execute_and_broadcast( &self, private_key: &PrivateKey<TestnetV0>, program_id: &ProgramID<TestnetV0>, function_name: &str, inputs: Vec<&str>, base_fee: u64, priority_fee: u64, ) -> Result<String>
Full pipeline: authorize → execute → prove → broadcast.
Returns the transaction ID on success.
Sourcepub async fn execute_and_broadcast_with_values(
&self,
private_key: &PrivateKey<TestnetV0>,
program_id: &ProgramID<TestnetV0>,
function_name: &str,
values: Vec<Value<TestnetV0>>,
base_fee: u64,
priority_fee: u64,
) -> Result<String>
pub async fn execute_and_broadcast_with_values( &self, private_key: &PrivateKey<TestnetV0>, program_id: &ProgramID<TestnetV0>, function_name: &str, values: Vec<Value<TestnetV0>>, base_fee: u64, priority_fee: u64, ) -> Result<String>
Full pipeline with pre-parsed snarkVM Value inputs.
Use this when inputs include record ciphertexts — decrypt them first,
wrap as Value::Record, and pass here instead of raw strings.
Otherwise behaves identically to execute_and_broadcast.
Sourcepub async fn deploy_program(
&self,
program_source: &str,
priority_fee_in_microcredits: u64,
) -> Result<String>
pub async fn deploy_program( &self, program_source: &str, priority_fee_in_microcredits: u64, ) -> Result<String>
Full deployment pipeline: parse → prove → compute fee → fetch state root → build tx → broadcast.
This is the equivalent of JS SDK’s ProgramManager.deploy().
program_source is the raw .aleo program source code.
priority_fee_in_microcredits adds priority over the minimum deployment cost.
Returns the transaction ID on success.
Sourcepub async fn get_balance(&self) -> Result<Option<u64>>
pub async fn get_balance(&self) -> Result<Option<u64>>
Query the public balance of the current account from credits.aleo.
Returns None if the account has never received credits (no mapping entry).
Sourcepub async fn fetch_unspent_records(&self) -> Result<String>
pub async fn fetch_unspent_records(&self) -> Result<String>
Fetch unspent records for the current account’s view key.
Sourcepub async fn find_private_credits_records(&self) -> Result<Vec<(String, u64)>>
pub async fn find_private_credits_records(&self) -> Result<Vec<(String, u64)>>
Find unspent private credits records owned by the current account’s view key.
Sourcepub async fn get_block_height(&self) -> Result<u32>
pub async fn get_block_height(&self) -> Result<u32>
Fetch the current block height.
Sourcepub async fn get_state_root(&self) -> Result<<TestnetV0 as Network>::StateRoot>
pub async fn get_state_root(&self) -> Result<<TestnetV0 as Network>::StateRoot>
Fetch latest state root.
Sourcepub async fn verify_execution(&self, tx_id: &str) -> Result<String>
pub async fn verify_execution(&self, tx_id: &str) -> Result<String>
Fetch a transaction from the network and verify its proof.
Equivalent to JS SDK’s verifyExecution() — deserializes the on-chain
transaction and runs the snarkVM proof verifier locally.
- Execute transactions: verifies the execution proof.
- Deploy transactions: verifies the deployment proof.
Trait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for AleoClient
impl !UnwindSafe for AleoClient
impl Freeze for AleoClient
impl Send for AleoClient
impl Sync for AleoClient
impl Unpin for AleoClient
impl UnsafeUnpin for AleoClient
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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 more