pub trait NodeClient: Send + Sync + Clone {
    fn node_url(&self) -> &str;
fn set_node_url(&mut self, node_url: &str);
fn node_api_secret(&self) -> Option<String>;
fn set_node_api_secret(&mut self, node_api_secret: Option<String>);
fn post_tx(&self, tx: &Transaction, fluff: bool) -> Result<(), Error>;
fn get_version_info(&mut self) -> Option<NodeVersionInfo>;
fn get_chain_tip(&self) -> Result<(u64, String), Error>;
fn get_kernel(
        &mut self,
        excess: &Commitment,
        min_height: Option<u64>,
        max_height: Option<u64>
    ) -> Result<Option<(TxKernel, u64, u64)>, Error>;
fn get_outputs_from_node(
        &self,
        wallet_outputs: Vec<Commitment>
    ) -> Result<HashMap<Commitment, (String, u64, u64)>, Error>;
fn get_outputs_by_pmmr_index(
        &self,
        start_height: u64,
        end_height: Option<u64>,
        max_outputs: u64
    ) -> Result<(u64, u64, Vec<(Commitment, RangeProof, bool, u64, u64)>), Error>;
fn height_range_to_pmmr_indices(
        &self,
        start_height: u64,
        end_height: Option<u64>
    ) -> Result<(u64, u64), Error>; }
Expand description

Encapsulate all wallet-node communication functions. No functions within libwallet should care about communication details

Required methods

Return the URL of the check node

Set the node URL

Return the node api secret

Change the API secret

Posts a transaction to a grin node

Returns the api version string and block header version as reported by the node. Result can be cached for later use

retrieves the current tip (height, hash) from the specified grin node

Get a kernel and the height of the block it’s included in. Returns (tx_kernel, height, mmr_index)

retrieve a list of outputs from the specified grin node need “by_height” and “by_id” variants

Get a list of outputs from the node by traversing the UTXO set in PMMR index order. Returns (last available output index, last insertion index retrieved, outputs(commit, proof, is_coinbase, height, mmr_index))

Return the pmmr indices representing the outputs between a given set of block heights (start pmmr index, end pmmr index)

Implementors