Struct sn_transfers::HotWallet

source ·
pub struct HotWallet { /* private fields */ }
Expand description

A hot-wallet.

Implementations§

source§

impl HotWallet

source

pub fn api(&self) -> &WalletApi

source

pub fn lock(&self) -> Result<File>

Locks the wallet and returns exclusive access to the wallet This lock prevents any other process from locking the wallet dir, effectively acts as a mutex for the wallet

source

pub fn store_cash_notes_to_disk<'a, T>(&self, cash_notes: T) -> Result<()>
where T: IntoIterator<Item = &'a CashNote>,

Stores the given cash_notes to the created cash_notes dir in the wallet dir. These can then be sent to the recipients out of band, over any channel preferred.

source

pub fn remove_cash_notes_from_disk<'a, T>(&self, cash_notes: T) -> Result<()>
where T: IntoIterator<Item = &'a UniquePubkey>,

Removes the given cash_notes from the created cash_notes dir in the wallet dir.

source

pub fn store_unconfirmed_spend_requests(&mut self) -> Result<()>

Store unconfirmed_spend_requests to disk.

source

pub fn mark_notes_as_spent<'a, T>(&mut self, unique_pubkeys: T)
where T: IntoIterator<Item = &'a UniquePubkey>,

Remove referenced CashNotes from available_cash_notes

source

pub fn unconfirmed_spend_requests_exist(&self) -> bool

source

pub fn try_load_cash_notes(&mut self) -> Result<()>

Try to load any new cash_notes from the cash_notes dir in the wallet dir.

source

pub fn load_from_main_key( root_dir: &Path, main_key: MainSecretKey ) -> Result<Self>

Loads a serialized wallet from a path and given main key.

source

pub fn create_from_key(root_dir: &Path, key: MainSecretKey) -> Result<Self>

Creates a serialized wallet for a path and main key. This will overwrite any existing wallet, unlike load_from_main_key

source

pub fn load_from(root_dir: &Path) -> Result<Self>

Loads a serialized wallet from a path.

source

pub fn try_load_from(root_dir: &Path) -> Result<Self>

Tries to loads a serialized wallet from a path, bailing out if it doesn’t exist.

source

pub fn load_from_path( wallet_dir: &Path, main_key: Option<MainSecretKey> ) -> Result<Self>

Loads a serialized wallet from a given path, no additional element will be added to the provided path and strictly taken as the wallet files location.

source

pub fn address(&self) -> MainPubkey

source

pub fn unconfirmed_spend_requests(&self) -> &BTreeSet<SignedSpend>

source

pub fn stash(root_dir: &Path) -> Result<PathBuf>

Moves all files for the current wallet, including keys and cashnotes to directory root_dir/wallet_ADDRESS

source

pub fn unstash(root_dir: &Path, addr_hex: &str) -> Result<()>

Moves a previously stashed wallet to the root wallet directory.

source

pub fn remove(root_dir: &Path) -> Result<()>

Removes all files for the current wallet, including keys and cashnotes

source

pub fn clear_specific_spend_request(&mut self, unique_pub_key: UniquePubkey)

To remove a specific spend from the requests, if eg, we see one spend is bad

source

pub fn clear_confirmed_spend_requests(&mut self)

Once spends are verified we can clear them and clean up

source

pub fn balance(&self) -> NanoTokens

source

pub fn sign( &self, spends: impl IntoIterator<Item = (Spend, DerivationIndex)> ) -> BTreeSet<SignedSpend>

source

pub fn available_cash_notes( &mut self ) -> Result<(Vec<(CashNote, Option<DerivedSecretKey>)>, File)>

Returns all available cash_notes and an exclusive access to the wallet so no concurrent processes can get available cash_notes while we’re modifying the wallet once the updated wallet is stored to disk it is safe to drop the WalletExclusiveAccess

source

pub fn remove_payment_for_xorname(&self, name: &XorName)

Remove the payment_details of the given XorName from disk.

source

pub fn build_unsigned_transaction( &mut self, to: Vec<(String, NanoTokens, MainPubkey)>, reason_hash: Option<Hash> ) -> Result<UnsignedTransfer>

source

pub fn local_send( &mut self, to: Vec<(String, NanoTokens, MainPubkey)>, reason_hash: Option<Hash> ) -> Result<Vec<CashNote>>

Make a transfer and return all created cash_notes

source

pub fn prepare_signed_transfer( &mut self, signed_spends: BTreeSet<SignedSpend>, tx: Transaction, change_id: UniquePubkey, output_details: BTreeMap<UniquePubkey, CashNoteOutputDetails> ) -> Result<Vec<CashNote>>

Prepare a signed transaction in local wallet and return all created cash_notes

source

pub fn local_send_storage_payment( &mut self, price_map: &BTreeMap<XorName, (MainPubkey, PaymentQuote, Vec<u8>)> ) -> Result<(NanoTokens, NanoTokens)>

Performs a payment for each content address. Includes payment of network royalties. Returns the amount paid for storage, including the network royalties fee paid.

source

pub fn deposit(&mut self, received_cash_notes: &Vec<CashNote>) -> Result<()>

Deposit the given cash_notes on the wallet (without storing them to disk).

source

pub fn deposit_and_store_to_disk( &mut self, received_cash_notes: &Vec<CashNote> ) -> Result<()>

Store the given cash_notes to the cash_notes dir in the wallet dir. Update and store the updated wallet to disk This function locks the wallet to prevent concurrent processes from writing to it

source

pub fn unwrap_transfer( &self, transfer: &Transfer ) -> Result<Vec<CashNoteRedemption>>

source

pub fn derive_key(&self, derivation_index: &DerivationIndex) -> DerivedSecretKey

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> Conv for T

source§

fn conv<T>(self) -> T
where Self: Into<T>,

Converts self into T using Into<T>. Read more
source§

impl<T> FmtForward for T

source§

fn fmt_binary(self) -> FmtBinary<Self>
where Self: Binary,

Causes self to use its Binary implementation when Debug-formatted.
source§

fn fmt_display(self) -> FmtDisplay<Self>
where Self: Display,

Causes self to use its Display implementation when Debug-formatted.
source§

fn fmt_lower_exp(self) -> FmtLowerExp<Self>
where Self: LowerExp,

Causes self to use its LowerExp implementation when Debug-formatted.
source§

fn fmt_lower_hex(self) -> FmtLowerHex<Self>
where Self: LowerHex,

Causes self to use its LowerHex implementation when Debug-formatted.
source§

fn fmt_octal(self) -> FmtOctal<Self>
where Self: Octal,

Causes self to use its Octal implementation when Debug-formatted.
source§

fn fmt_pointer(self) -> FmtPointer<Self>
where Self: Pointer,

Causes self to use its Pointer implementation when Debug-formatted.
source§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where Self: UpperExp,

Causes self to use its UpperExp implementation when Debug-formatted.
source§

fn fmt_upper_hex(self) -> FmtUpperHex<Self>
where Self: UpperHex,

Causes self to use its UpperHex implementation when Debug-formatted.
source§

fn fmt_list(self) -> FmtList<Self>
where &'a Self: for<'a> IntoIterator,

Formats each item in a sequence. 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> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

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

source§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where Self: Sized,

Pipes by value. This is generally the method you want to use. Read more
source§

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

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

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

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

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.
source§

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.
source§

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.
source§

fn pipe_deref_mut<'a, T, R>( &'a mut self, func: impl FnOnce(&'a mut T) -> R ) -> R
where Self: DerefMut<Target = T> + Deref, T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe function.
source§

impl<T> Pointable for T

source§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> Tap for T

source§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
source§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
source§

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

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

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

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

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

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

fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self

Calls .tap() only in debug builds, and is erased in release builds.
source§

fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self

Calls .tap_mut() only in debug builds, and is erased in release builds.
source§

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.
source§

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.
source§

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.
source§

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.
source§

fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release builds.
source§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release builds.
source§

impl<T> TryConv for T

source§

fn try_conv<T>(self) -> Result<T, Self::Error>
where Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

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

§

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>,

§

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