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: String
ip: String
port: String
Implementations
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