Struct ergo_node_interface::node_interface::NodeInterface
source · [−]Expand description
The NodeInterface struct which holds the relevant Ergo node data
and has methods implemented to interact with the node.
Fields
api_key: Stringip: Stringport: StringImplementations
sourceimpl NodeInterface
impl NodeInterface
sourcepub fn new(api_key: &str, ip: &str, port: &str) -> NodeInterface
pub fn new(api_key: &str, ip: &str, port: &str) -> NodeInterface
Create a new NodeInterface using details about the Node
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 select_wallet_address(&self) -> Result<P2PKAddressString>
pub fn select_wallet_address(&self) -> Result<P2PKAddressString>
A CLI interactive interface for prompting a user to select an address
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 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 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 current_block_height(&self) -> Result<BlockHeight>
pub fn current_block_height(&self) -> Result<BlockHeight>
Get the current block height of the blockchain
sourceimpl 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.
sourceimpl NodeInterface
impl NodeInterface
Scanning-related endpoints
sourcepub fn register_scan(&self, scan_json: &JsonValue) -> Result<ScanID>
pub fn register_scan(&self, scan_json: &JsonValue) -> Result<ScanID>
Registers a scan with the node and either returns the scan_id
or an error
sourcepub fn scan_boxes(&self, scan_id: &ScanID) -> Result<Vec<ErgoBox>>
pub fn scan_boxes(&self, scan_id: &ScanID) -> Result<Vec<ErgoBox>>
Using the scan_id of a registered scan, acquires unspent boxes which have been found by said scan
sourceimpl 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
) -> Result<Transaction>
pub fn sign_transaction(
&self,
unsigned_tx: &UnsignedTransaction
) -> Result<Transaction>
Sign an UnsignedTransaction
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.
Trait Implementations
sourceimpl Clone for NodeInterface
impl Clone for NodeInterface
sourcefn clone(&self) -> NodeInterface
fn clone(&self) -> NodeInterface
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source. Read more
Auto Trait Implementations
impl RefUnwindSafe for NodeInterface
impl Send for NodeInterface
impl Sync for NodeInterface
impl Unpin for NodeInterface
impl UnwindSafe for NodeInterface
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<T> FmtForward for T
impl<T> FmtForward for T
fn fmt_binary(self) -> FmtBinary<Self> where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self> where
Self: Binary,
Causes self to use its Binary implementation when Debug-formatted.
fn fmt_display(self) -> FmtDisplay<Self> where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self> where
Self: Display,
Causes self to use its Display implementation when
Debug-formatted. Read more
fn fmt_lower_exp(self) -> FmtLowerExp<Self> where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self> where
Self: LowerExp,
Causes self to use its LowerExp implementation when
Debug-formatted. Read more
fn fmt_lower_hex(self) -> FmtLowerHex<Self> where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self> where
Self: LowerHex,
Causes self to use its LowerHex implementation when
Debug-formatted. Read more
fn fmt_octal(self) -> FmtOctal<Self> where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self> where
Self: Octal,
Causes self to use its Octal implementation when Debug-formatted.
fn fmt_pointer(self) -> FmtPointer<Self> where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self> where
Self: Pointer,
Causes self to use its Pointer implementation when
Debug-formatted. Read more
fn fmt_upper_exp(self) -> FmtUpperExp<Self> where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self> where
Self: UpperExp,
Causes self to use its UpperExp implementation when
Debug-formatted. Read more
fn fmt_upper_hex(self) -> FmtUpperHex<Self> where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self> where
Self: UpperHex,
Causes self to use its UpperHex implementation when
Debug-formatted. Read more
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
impl<T> Pipe for T where
T: ?Sized,
impl<T> Pipe for T where
T: ?Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
Pipes by value. This is generally the method you want to use. Read more
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R where
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R where
R: 'a,
Borrows self and passes that borrow into the pipe function. Read more
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> R where
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> R where
R: 'a,
Mutably borrows self and passes that borrow into the pipe function. Read more
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R where
Self: Borrow<B>,
B: 'a + ?Sized,
R: 'a,
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R where
Self: Borrow<B>,
B: 'a + ?Sized,
R: 'a,
Borrows self, then passes self.borrow() into the pipe function. Read more
fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R
) -> R where
Self: BorrowMut<B>,
B: 'a + ?Sized,
R: 'a,
fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R
) -> R where
Self: BorrowMut<B>,
B: 'a + ?Sized,
R: 'a,
Mutably borrows self, then passes self.borrow_mut() into the pipe
function. Read more
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R where
Self: AsRef<U>,
U: 'a + ?Sized,
R: 'a,
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R where
Self: AsRef<U>,
U: 'a + ?Sized,
R: 'a,
Borrows self, then passes self.as_ref() into the pipe function.
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R where
Self: AsMut<U>,
U: 'a + ?Sized,
R: 'a,
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R where
Self: AsMut<U>,
U: 'a + ?Sized,
R: 'a,
Mutably borrows self, then passes self.as_mut() into the pipe
function. Read more
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R where
Self: Deref<Target = T>,
T: 'a + ?Sized,
R: 'a,
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R where
Self: Deref<Target = T>,
T: 'a + ?Sized,
R: 'a,
Borrows self, then passes self.deref() into the pipe function.
impl<T> Tap for T
impl<T> Tap for T
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self where
Self: Borrow<B>,
B: ?Sized,
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self where
Self: Borrow<B>,
B: ?Sized,
Immutable access to the Borrow<B> of a value. Read more
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self where
Self: BorrowMut<B>,
B: ?Sized,
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self where
Self: BorrowMut<B>,
B: ?Sized,
Mutable access to the BorrowMut<B> of a value. Read more
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self where
Self: AsRef<R>,
R: ?Sized,
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self where
Self: AsRef<R>,
R: ?Sized,
Immutable access to the AsRef<R> view of a value. Read more
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self where
Self: AsMut<R>,
R: ?Sized,
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self where
Self: AsMut<R>,
R: ?Sized,
Mutable access to the AsMut<R> view of a value. Read more
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self where
Self: Deref<Target = T>,
T: ?Sized,
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self where
Self: Deref<Target = T>,
T: ?Sized,
Immutable access to the Deref::Target of a value. Read more
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self where
Self: DerefMut<Target = T> + Deref,
T: ?Sized,
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self where
Self: DerefMut<Target = T> + Deref,
T: ?Sized,
Mutable access to the Deref::Target of a value. Read more
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
Calls .tap() only in debug builds, and is erased in release builds.
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
Calls .tap_mut() only in debug builds, and is erased in release
builds. Read more
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self where
Self: Borrow<B>,
B: ?Sized,
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self where
Self: Borrow<B>,
B: ?Sized,
Calls .tap_borrow() only in debug builds, and is erased in release
builds. Read more
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self where
Self: BorrowMut<B>,
B: ?Sized,
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self where
Self: BorrowMut<B>,
B: ?Sized,
Calls .tap_borrow_mut() only in debug builds, and is erased in release
builds. Read more
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self where
Self: AsRef<R>,
R: ?Sized,
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self where
Self: AsRef<R>,
R: ?Sized,
Calls .tap_ref() only in debug builds, and is erased in release
builds. Read more
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self where
Self: AsMut<R>,
R: ?Sized,
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self where
Self: AsMut<R>,
R: ?Sized,
Calls .tap_ref_mut() only in debug builds, and is erased in release
builds. Read more
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcefn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
toowned_clone_into)Uses borrowed data to replace owned data, usually by cloning. Read more
impl<F> TryExtractInto<F> for F
impl<F> TryExtractInto<F> for F
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>,
Extract value of the given type from any type (e.g. [‘Constant’], [super::value::Value])
on which [TryExtractFrom] is implemented Read more
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
fn vzip(self) -> V
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
Attaches the provided Subscriber to this type, returning a
WithDispatch wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber to this type, returning a
WithDispatch wrapper. Read more