Trait grin_wallet_libwallet::NodeClient
source · [−]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
fn set_node_url(&mut self, node_url: &str)
fn set_node_url(&mut self, node_url: &str)
Set the node URL
fn node_api_secret(&self) -> Option<String>
fn node_api_secret(&self) -> Option<String>
Return the node api secret
fn set_node_api_secret(&mut self, node_api_secret: Option<String>)
fn set_node_api_secret(&mut self, node_api_secret: Option<String>)
Change the API secret
Posts a transaction to a grin node
fn get_version_info(&mut self) -> Option<NodeVersionInfo>
fn get_version_info(&mut self) -> Option<NodeVersionInfo>
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))