Skip to main content

ArkNote

Struct ArkNote 

Source
pub struct ArkNote { /* private fields */ }
Expand description

ArkNote is a bearer token that can be redeemed by revealing its preimage.

The note encodes:

  • A 32-byte preimage (the secret)
  • A value in satoshis (up to u32::MAX)

The on-chain representation is a hash-locked taproot script that checks SHA256(witness) == hash(preimage).

Implementations§

Source§

impl ArkNote

Source

pub fn new(preimage: [u8; 32], value: Amount) -> Result<Self, Error>

Create a new ArkNote with the default HRP.

Source

pub fn new_with_hrp( preimage: [u8; 32], value: Amount, hrp: String, ) -> Result<Self, Error>

Create a new ArkNote with a custom HRP.

Source

pub fn from_string(s: &str) -> Result<Self, Error>

Parse an ArkNote from its string representation.

Source

pub fn from_string_with_hrp(s: &str, hrp: &str) -> Result<Self, Error>

Parse an ArkNote from its string representation with a custom HRP.

Source

pub fn to_encoded_string(&self) -> String

Encode the ArkNote to its string representation.

Source

pub fn preimage(&self) -> &[u8; 32]

Get the preimage.

Source

pub fn preimage_hash(&self) -> Hash

Get the preimage hash.

Source

pub fn value(&self) -> Amount

Get the value in satoshis.

Source

pub fn hrp(&self) -> &str

Get the HRP.

Source

pub fn script(&self) -> ScriptBuf

Get the script that locks this note (spendable by revealing the preimage).

Source

pub fn txid(&self) -> Txid

Get a synthetic txid derived from the preimage hash.

This is used to create a unique identifier for the note in the VTXO system.

Source

pub fn outpoint(&self) -> OutPoint

Get a synthetic outpoint for this note.

Source

pub fn to_intent_input(&self) -> Result<Input, Error>

Convert this ArkNote to an intent input for settlement.

The note creates a fake VTXO with a hash-lock script. When settling, the preimage is revealed as the witness instead of a signature.

Trait Implementations§

Source§

impl Clone for ArkNote

Source§

fn clone(&self) -> ArkNote

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ArkNote

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Display for ArkNote

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl PartialEq for ArkNote

Source§

fn eq(&self, other: &ArkNote) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Eq for ArkNote

Source§

impl StructuralPartialEq for ArkNote

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

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
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more