LedgerSigner

Struct LedgerSigner 

Source
pub struct LedgerSigner<T: Exchange> { /* private fields */ }

Implementations§

Source§

impl<T> LedgerSigner<T>
where T: Exchange,

Source

pub fn new(transport: T) -> Self

Source

pub fn native() -> Result<LedgerSigner<TransportNativeHID>, Error>

§Errors

Returns an error if there is an issue with connecting with the device

Source

pub async fn get_app_configuration(&self) -> Result<Vec<u8>, Error>

Get the device app’s configuration

§Errors

Returns an error if there is an issue with connecting with the device or getting the config from the device

Source

pub async fn sign_transaction_hash( &self, hd_path: impl Into<HdPath>, transaction_hash: &[u8; 32], ) -> Result<Vec<u8>, Error>

Sign a Stellar transaction hash with the account on the Ledger device based on impl from https://github.com/LedgerHQ/ledger-live/blob/develop/libs/ledgerjs/packages/hw-app-str/src/Str.ts#L166

§Errors

Returns an error if there is an issue with connecting with the device or signing the given tx on the device. Or, if the device has not enabled hash signing

Source

pub async fn sign_transaction( &self, hd_path: impl Into<HdPath>, transaction: Transaction, network_id: Hash, ) -> Result<Vec<u8>, Error>

Sign a Stellar transaction with the account on the Ledger device

§Errors

Returns an error if there is an issue with connecting with the device or signing the given tx on the device

Trait Implementations§

Source§

impl<T> Blob for LedgerSigner<T>
where T: Exchange,

Source§

fn get_public_key<'life0, 'life1, 'async_trait>( &'life0 self, index: &'life1 Self::Key, ) -> Pin<Box<dyn Future<Output = Result<PublicKey, Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Get the public key from the device

§Errors

Returns an error if there is an issue with connecting with the device or getting the public key from the device

Source§

fn sign_blob<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, index: &'life1 Self::Key, blob: &'life2 [u8], ) -> Pin<Box<dyn Future<Output = Result<Vec<u8>, Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Sign a blob of data with the account on the Ledger device based on impl from https://github.com/LedgerHQ/ledger-live/blob/develop/libs/ledgerjs/packages/hw-app-str/src/Str.ts#L166

§Errors

Returns an error if there is an issue with connecting with the device or signing the given tx on the device. Or, if the device has not enabled hash signing

Source§

type Key = HdPath

Source§

type Error = Error

Source§

impl<T> Send for LedgerSigner<T>
where T: Exchange,

Source§

impl<T> Sync for LedgerSigner<T>
where T: Exchange,

Auto Trait Implementations§

§

impl<T> Freeze for LedgerSigner<T>
where T: Freeze,

§

impl<T> RefUnwindSafe for LedgerSigner<T>
where T: RefUnwindSafe,

§

impl<T> Unpin for LedgerSigner<T>
where T: Unpin,

§

impl<T> UnwindSafe for LedgerSigner<T>
where T: UnwindSafe,

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> 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> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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<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
Source§

impl<T> ErasedDestructor for T
where T: 'static,