pub struct NodeInterface {
pub api_key: String,
pub url: Url,
}
Expand description
The NodeInterface
struct which holds the relevant Ergo node data
and has methods implemented to interact with the node.
Fields§
§api_key: String
§url: Url
Implementations§
Source§impl NodeInterface
impl NodeInterface
Sourcepub fn new(api_key: &str, ip: &str, port: &str) -> Result<Self>
pub fn new(api_key: &str, ip: &str, port: &str) -> Result<Self>
Create a new NodeInterface
using details about the Node
Sets url to http://ip:port
using ip
and port
pub fn from_url(api_key: &str, url: Url) -> Self
pub fn from_url_str(api_key: &str, url: &str) -> Result<Self>
Sourcepub fn unspent_boxes_by_address(
&self,
address: &P2PKAddressString,
offset: u64,
limit: u64,
) -> Result<Vec<ErgoBox>>
pub fn unspent_boxes_by_address( &self, address: &P2PKAddressString, offset: u64, limit: u64, ) -> Result<Vec<ErgoBox>>
Acquires unspent boxes from the blockchain by specific address
Sourcepub fn unspent_boxes_by_token_id(
&self,
token_id: &TokenId,
offset: u64,
limit: u64,
) -> Result<Vec<ErgoBox>>
pub fn unspent_boxes_by_token_id( &self, token_id: &TokenId, offset: u64, limit: u64, ) -> Result<Vec<ErgoBox>>
Acquires unspent boxes from the blockchain by specific token_id
Sourcepub fn nano_ergs_balance(&self, address: &P2PKAddressString) -> Result<NanoErg>
pub fn nano_ergs_balance(&self, address: &P2PKAddressString) -> Result<NanoErg>
Get the current nanoErgs balance held in the address
Sourcepub fn p2s_to_tree(&self, address: &P2SAddressString) -> Result<String>
pub fn p2s_to_tree(&self, address: &P2SAddressString) -> Result<String>
Given a P2S Ergo address, extract the hex-encoded serialized ErgoTree (script)
Sourcepub fn p2s_to_bytes(&self, address: &P2SAddressString) -> Result<String>
pub fn p2s_to_bytes(&self, address: &P2SAddressString) -> Result<String>
Given a P2S Ergo address, convert it to a hex-encoded Sigma byte array constant
Sourcepub fn p2pk_to_raw(&self, address: &P2PKAddressString) -> Result<String>
pub fn p2pk_to_raw(&self, address: &P2PKAddressString) -> Result<String>
Given an Ergo P2PK Address, convert it to a raw hex-encoded EC point
Sourcepub fn p2pk_to_raw_for_register(
&self,
address: &P2PKAddressString,
) -> Result<String>
pub fn p2pk_to_raw_for_register( &self, address: &P2PKAddressString, ) -> Result<String>
Given an Ergo P2PK Address, convert it to a raw hex-encoded EC point and prepend the type bytes so it is encoded and ready to be used in a register.
Sourcepub fn raw_to_p2pk(&self, raw: &str) -> Result<P2PKAddressString>
pub fn raw_to_p2pk(&self, raw: &str) -> Result<P2PKAddressString>
Given a raw hex-encoded EC point, convert it to a P2PK address
Sourcepub fn raw_from_register_to_p2pk(
&self,
typed_raw: &str,
) -> Result<P2PKAddressString>
pub fn raw_from_register_to_p2pk( &self, typed_raw: &str, ) -> Result<P2PKAddressString>
Given a raw hex-encoded EC point from a register (thus with type encoded characters in front), convert it to a P2PK address
Sourcepub fn serialize_boxes(&self, b: &[ErgoBox]) -> Result<Vec<String>>
pub fn serialize_boxes(&self, b: &[ErgoBox]) -> Result<Vec<String>>
Given a Vec<ErgoBox>
return the given boxes (which must be part of the UTXO-set) as
a vec of serialized strings in Base16 encoding
Sourcepub fn serialize_box(&self, b: &ErgoBox) -> Result<String>
pub fn serialize_box(&self, b: &ErgoBox) -> Result<String>
Given an ErgoBox
return the given box (which must be part of the UTXO-set) as
a serialized string in Base16 encoding
Sourcepub fn serialized_box_from_id(&self, box_id: &String) -> Result<String>
pub fn serialized_box_from_id(&self, box_id: &String) -> Result<String>
Given a box id return the given box (which must be part of the UTXO-set) as a serialized string in Base16 encoding
Sourcepub fn box_from_id(&self, box_id: &String) -> Result<ErgoBox>
pub fn box_from_id(&self, box_id: &String) -> Result<ErgoBox>
Given a box id return the given box (which must be part of the UTXO-set) as a serialized string in Base16 encoding
Sourcepub fn current_block_height(&self) -> Result<BlockHeight>
pub fn current_block_height(&self) -> Result<BlockHeight>
Get the current block height of the blockchain
Sourcepub fn get_state_context(&self) -> Result<ErgoStateContext>
pub fn get_state_context(&self) -> Result<ErgoStateContext>
Get the current state context of the blockchain
Sourcepub fn get_last_block_headers(&self, number: u32) -> Result<Vec<Header>>
pub fn get_last_block_headers(&self, number: u32) -> Result<Vec<Header>>
Get the last number
of block headers from the blockchain
Sourcepub fn indexer_status(&self) -> Result<IndexerStatus>
pub fn indexer_status(&self) -> Result<IndexerStatus>
Checks if the blockchain indexer is active by querying the node.
Source§impl NodeInterface
impl NodeInterface
Sourcepub fn get_node_api_header(&self) -> HeaderValue
pub fn get_node_api_header(&self) -> HeaderValue
Builds a HeaderValue
to use for requests with the api key specified
Sourcepub fn set_req_headers(&self, rb: RequestBuilder) -> RequestBuilder
pub fn set_req_headers(&self, rb: RequestBuilder) -> RequestBuilder
Sets required headers for a request
Sourcepub fn send_get_req(&self, endpoint: &str) -> Result<Response>
pub fn send_get_req(&self, endpoint: &str) -> Result<Response>
Sends a GET request to the Ergo node
Sourcepub fn send_post_req(&self, endpoint: &str, body: String) -> Result<Response>
pub fn send_post_req(&self, endpoint: &str, body: String) -> Result<Response>
Sends a POST request to the Ergo node
Sourcepub fn parse_response_to_json(
&self,
resp: Result<Response>,
) -> Result<JsonValue>
pub fn parse_response_to_json( &self, resp: Result<Response>, ) -> Result<JsonValue>
Parses response from node into JSON
Sourcepub fn use_json_endpoint_and_check_errors(
&self,
endpoint: &str,
json_body: &JsonString,
) -> Result<JsonValue>
pub fn use_json_endpoint_and_check_errors( &self, endpoint: &str, json_body: &JsonString, ) -> Result<JsonValue>
General function for submitting a Json String body to an endpoint
which also returns a JsonValue
response.
Source§impl NodeInterface
Scanning-related endpoints
impl NodeInterface
Scanning-related endpoints
Sourcepub fn register_scan(&self, scan_json: Value) -> Result<ScanId>
pub fn register_scan(&self, scan_json: Value) -> Result<ScanId>
Registers a scan with the node and either returns the scan_id
or an error
pub fn deregister_scan(&self, scan_id: ScanId) -> Result<ScanId>
Source§impl NodeInterface
impl NodeInterface
Sourcepub fn submit_json_transaction(
&self,
signed_tx_json: &JsonString,
) -> Result<TxId>
pub fn submit_json_transaction( &self, signed_tx_json: &JsonString, ) -> Result<TxId>
Submits a Signed Transaction provided as input as JSON to the Ergo Blockchain mempool.
Sourcepub fn sign_json_transaction(
&self,
unsigned_tx_string: &JsonString,
) -> Result<JsonValue>
pub fn sign_json_transaction( &self, unsigned_tx_string: &JsonString, ) -> Result<JsonValue>
Sign an Unsigned Transaction which is formatted in JSON
Sourcepub fn sign_and_submit_json_transaction(
&self,
unsigned_tx_string: &JsonString,
) -> Result<TxId>
pub fn sign_and_submit_json_transaction( &self, unsigned_tx_string: &JsonString, ) -> Result<TxId>
Sign an Unsigned Transaction which is formatted in JSON and then submit it to the mempool.
Sourcepub fn submit_transaction(&self, signed_tx: &Transaction) -> Result<TxId>
pub fn submit_transaction(&self, signed_tx: &Transaction) -> Result<TxId>
Submits a Signed Transaction
provided as input
to the Ergo Blockchain mempool.
Sourcepub fn sign_transaction(
&self,
unsigned_tx: &UnsignedTransaction,
boxes_to_spend: Option<Vec<ErgoBox>>,
data_input_boxes: Option<Vec<ErgoBox>>,
) -> Result<Transaction>
pub fn sign_transaction( &self, unsigned_tx: &UnsignedTransaction, boxes_to_spend: Option<Vec<ErgoBox>>, data_input_boxes: Option<Vec<ErgoBox>>, ) -> Result<Transaction>
Sign an UnsignedTransaction
unsigned_tx - The unsigned transaction to sign.
boxes_to_spend - optional list of input boxes. If not provided, the node will search for the boxes in UTXO
data_input_boxes - optional list of data boxes. If not provided, the node will search for the data boxes in UTXO
Sourcepub fn sign_and_submit_transaction(
&self,
unsigned_tx: &UnsignedTransaction,
) -> Result<TxId>
pub fn sign_and_submit_transaction( &self, unsigned_tx: &UnsignedTransaction, ) -> Result<TxId>
Sign an UnsignedTransaction
and then submit it to the mempool.
Sourcepub fn generate_and_submit_transaction(
&self,
tx_request_json: &JsonString,
) -> Result<TxId>
pub fn generate_and_submit_transaction( &self, tx_request_json: &JsonString, ) -> Result<TxId>
Generates and submits a tx using the node endpoints. Input is
a json formatted request with rawInputs (and rawDataInputs)
manually selected or inputs will be automatically selected by wallet.
Returns the resulting TxId
.
Sourcepub fn generate_json_transaction(
&self,
tx_request_json: &JsonString,
) -> Result<JsonValue>
pub fn generate_json_transaction( &self, tx_request_json: &JsonString, ) -> Result<JsonValue>
Generates Json of an Unsigned Transaction. Input must be a json formatted request with rawInputs (and rawDataInputs) manually selected or will be automatically selected by wallet.
Source§impl NodeInterface
impl NodeInterface
Sourcepub fn wallet_addresses(&self) -> Result<Vec<P2PKAddressString>>
pub fn wallet_addresses(&self) -> Result<Vec<P2PKAddressString>>
Get all addresses from the node wallet
Sourcepub fn unspent_boxes(&self) -> Result<Vec<ErgoBox>>
pub fn unspent_boxes(&self) -> Result<Vec<ErgoBox>>
Acquires unspent boxes from the node wallet
Sourcepub fn unspent_boxes_sorted(&self) -> Result<Vec<ErgoBox>>
pub fn unspent_boxes_sorted(&self) -> Result<Vec<ErgoBox>>
Returns unspent boxes from the node wallet ordered from highest to lowest nanoErgs value.
Sourcepub fn unspent_boxes_with_min_total(
&self,
total: NanoErg,
) -> Result<Vec<ErgoBox>>
pub fn unspent_boxes_with_min_total( &self, total: NanoErg, ) -> Result<Vec<ErgoBox>>
Returns a sorted list of unspent boxes which cover at least the
provided value total
of nanoErgs.
Note: This box selection strategy simply uses the largest
value holding boxes from the user’s wallet first.
Sourcepub fn unspent_boxes_with_min_total_by_age(
&self,
total: NanoErg,
) -> Result<Vec<ErgoBox>>
pub fn unspent_boxes_with_min_total_by_age( &self, total: NanoErg, ) -> Result<Vec<ErgoBox>>
Returns a list of unspent boxes which cover at least the
provided value total
of nanoErgs.
Note: This box selection strategy simply uses the oldest unspent
boxes from the user’s full node wallet first.
Sourcepub fn highest_value_unspent_box(&self) -> Result<ErgoBox>
pub fn highest_value_unspent_box(&self) -> Result<ErgoBox>
Acquires the unspent box with the highest value of Ergs inside from the wallet
Sourcepub fn serialized_highest_value_unspent_box(&self) -> Result<String>
pub fn serialized_highest_value_unspent_box(&self) -> Result<String>
Acquires the unspent box with the highest value of Ergs inside from the wallet and serializes it
Sourcepub fn serialized_unspent_boxes_with_min_total(
&self,
total: NanoErg,
) -> Result<Vec<String>>
pub fn serialized_unspent_boxes_with_min_total( &self, total: NanoErg, ) -> Result<Vec<String>>
Acquires unspent boxes which cover total
amount of nanoErgs
from the wallet and serializes the boxes
Sourcepub fn wallet_nano_ergs_balance(&self) -> Result<NanoErg>
pub fn wallet_nano_ergs_balance(&self) -> Result<NanoErg>
Get the current nanoErgs balance held in the Ergo Node wallet
Sourcepub fn wallet_status(&self) -> Result<WalletStatus>
pub fn wallet_status(&self) -> Result<WalletStatus>
Get wallet status /wallet/status
Sourcepub fn wallet_unlock(&self, password: &str) -> Result<bool>
pub fn wallet_unlock(&self, password: &str) -> Result<bool>
Unlock wallet
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 moreAuto Trait Implementations§
impl Freeze for NodeInterface
impl RefUnwindSafe for NodeInterface
impl Send for NodeInterface
impl Sync for NodeInterface
impl Unpin for NodeInterface
impl UnwindSafe for NodeInterface
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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> 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> 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.Source§impl<F> TryExtractInto<F> for F
impl<F> TryExtractInto<F> for F
Source§fn try_extract_into<T>(self) -> Result<T, TryExtractFromError>where
T: TryExtractFrom<F>,
fn try_extract_into<T>(self) -> Result<T, TryExtractFromError>where
T: TryExtractFrom<F>,
super::value::Value
)
on which TryExtractFrom
is implemented