pub struct NodeInterface {
node_sender: UnboundedSender<NodeNotification>,
}Expand description
A struct representing the interface to the node.
This struct will be used by consumers to interact with the node. You may have as many of it as you need, and you can use it to send requests to the node and get responses back.
Fields§
§node_sender: UnboundedSender<NodeNotification>Implementations§
Source§impl NodeInterface
impl NodeInterface
pub fn new(node_sender: UnboundedSender<NodeNotification>) -> Self
Sourceasync fn send_request(
&self,
request: UserRequest,
) -> Result<NodeResponse, RecvError>
async fn send_request( &self, request: UserRequest, ) -> Result<NodeResponse, RecvError>
Sends a request to the node.
This is an internal utility function that will be used to send requests to the node. It will send the request to the node and return a oneshot receiver that will be used to get the response back.
Sourcepub async fn get_config(&self) -> Result<UtreexoNodeConfig, RecvError>
pub async fn get_config(&self) -> Result<UtreexoNodeConfig, RecvError>
Get the current UtreexoNodeConfig from the running node.
pub async fn broadcast_transaction( &self, transaction: Transaction, ) -> Result<Result<Txid, AcceptToMempoolError>, RecvError>
Sourcepub async fn add_peer(
&self,
addr: IpAddr,
port: u16,
v2transport: bool,
) -> Result<bool, RecvError>
pub async fn add_peer( &self, addr: IpAddr, port: u16, v2transport: bool, ) -> Result<bool, RecvError>
Connects to a specified address and port. This function will return a boolean indicating whether the connection was successful. It may be called multiple times, and may use hostnames or IP addresses.
Sourcepub async fn remove_peer(
&self,
addr: IpAddr,
port: u16,
) -> Result<bool, RecvError>
pub async fn remove_peer( &self, addr: IpAddr, port: u16, ) -> Result<bool, RecvError>
Removes a peer from the node’s peer list. This function will return a boolean indicating whether the peer was successfully removed. It may be called multiple times, and may use hostnames or IP addresses.
Sourcepub async fn disconnect_peer(
&self,
addr: IpAddr,
port: u16,
) -> Result<bool, RecvError>
pub async fn disconnect_peer( &self, addr: IpAddr, port: u16, ) -> Result<bool, RecvError>
Immediately disconnect from a peer.
Returns a bool indicating whether the disconnection was successful.
Sourcepub async fn onetry_peer(
&self,
addr: IpAddr,
port: u16,
v2transport: bool,
) -> Result<bool, RecvError>
pub async fn onetry_peer( &self, addr: IpAddr, port: u16, v2transport: bool, ) -> Result<bool, RecvError>
Attempts to connect to a peer once.
This function will try to connect to the peer once, but will not add it to the node’s peer list. It will return a boolean indicating whether the connection was successful. It may be called multiple times, and may use hostnames or IP addresses.
Sourcepub async fn get_block(
&self,
block: BlockHash,
) -> Result<Option<Block>, RecvError>
pub async fn get_block( &self, block: BlockHash, ) -> Result<Option<Block>, RecvError>
Gets a block by its hash.
This function will try to get a block from the network and return it. Note that we don’t keep a local copy of the blockchain, so this function will always make a network request.
Sourcepub async fn get_mempool_transaction(
&self,
txid: Txid,
) -> Result<Option<Transaction>, RecvError>
pub async fn get_mempool_transaction( &self, txid: Txid, ) -> Result<Option<Transaction>, RecvError>
Gets a transaction from the mempool by its ID.
This function will return a transaction from the mempool if it exists. If the transaction
is not in the mempool (because it doesn’t exist or because it’s already been mined), this
function will return None.
Sourcepub async fn get_peer_info(&self) -> Result<Vec<PeerInfo>, RecvError>
pub async fn get_peer_info(&self) -> Result<Vec<PeerInfo>, RecvError>
Gets information about all connected peers.
This function will return a list of PeerInfo structs, each of which contains information
about a single peer.
Sourcepub async fn get_connection_count(&self) -> Result<usize, RecvError>
pub async fn get_connection_count(&self) -> Result<usize, RecvError>
Returns the number of peers currently connected to the node
Trait Implementations§
Source§impl Clone for NodeInterface
impl Clone for NodeInterface
Source§fn clone(&self) -> NodeInterface
fn clone(&self) -> NodeInterface
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more