Struct fedimint_dummy_client::DummyClientModule
source · pub struct DummyClientModule { /* private fields */ }
Implementations§
source§impl DummyClientModule
impl DummyClientModule
pub async fn print_using_account( &self, amount: Amount, account_kp: KeyPair ) -> Result<(OperationId, OutPoint)>
sourcepub async fn print_money(
&self,
amount: Amount
) -> Result<(OperationId, OutPoint)>
pub async fn print_money( &self, amount: Amount ) -> Result<(OperationId, OutPoint)>
Request the federation prints money for us
sourcepub async fn print_liability(
&self,
amount: Amount
) -> Result<(OperationId, OutPoint)>
pub async fn print_liability( &self, amount: Amount ) -> Result<(OperationId, OutPoint)>
Use a broken printer to print a liability instead of money If the federation is honest, should always fail
sourcepub async fn send_money(
&self,
account: PublicKey,
amount: Amount
) -> Result<OutPoint>
pub async fn send_money( &self, account: PublicKey, amount: Amount ) -> Result<OutPoint>
Send money to another user
sourcepub async fn receive_money(&self, outpoint: OutPoint) -> Result<()>
pub async fn receive_money(&self, outpoint: OutPoint) -> Result<()>
Wait to receive money at an outpoint
Trait Implementations§
source§impl ClientModule for DummyClientModule
impl ClientModule for DummyClientModule
type Init = DummyClientInit
§type Common = DummyModuleTypes
type Common = DummyModuleTypes
Common module types shared between client and server
§type Backup = NoModuleBackup
type Backup = NoModuleBackup
Data stored in regular backups so that restoring doesn’t have to start
from epoch 0
§type ModuleStateMachineContext = DummyClientContext
type ModuleStateMachineContext = DummyClientContext
Data and API clients available to state machine transitions of this
module
§type States = DummyStateMachine
type States = DummyStateMachine
All possible states this client can submit to the executor
fn context(&self) -> Self::ModuleStateMachineContext
source§fn input_amount(
&self,
input: &<Self::Common as ModuleCommon>::Input
) -> Option<TransactionItemAmount>
fn input_amount( &self, input: &<Self::Common as ModuleCommon>::Input ) -> Option<TransactionItemAmount>
Returns the amount represented by the input and the fee its processing
requires. Read more
source§fn output_amount(
&self,
output: &<Self::Common as ModuleCommon>::Output
) -> Option<TransactionItemAmount>
fn output_amount( &self, output: &<Self::Common as ModuleCommon>::Output ) -> Option<TransactionItemAmount>
Returns the amount represented by the output and the fee its processing
requires Read more
source§fn supports_being_primary(&self) -> bool
fn supports_being_primary(&self) -> bool
Does this module support being a primary module Read more
source§fn create_sufficient_input<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
dbtx: &'life1 mut DatabaseTransaction<'life2>,
id: OperationId,
amount: Amount
) -> Pin<Box<dyn Future<Output = Result<Vec<ClientInput<<Self::Common as ModuleCommon>::Input, Self::States>>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn create_sufficient_input<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
dbtx: &'life1 mut DatabaseTransaction<'life2>,
id: OperationId,
amount: Amount
) -> Pin<Box<dyn Future<Output = Result<Vec<ClientInput<<Self::Common as ModuleCommon>::Input, Self::States>>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Creates an input of at least a given
min_amount
from the holdings
managed by the module. Read moresource§fn create_exact_output<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_dbtx: &'life1 mut DatabaseTransaction<'life2>,
id: OperationId,
amount: Amount
) -> Pin<Box<dyn Future<Output = Vec<ClientOutput<<Self::Common as ModuleCommon>::Output, Self::States>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn create_exact_output<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_dbtx: &'life1 mut DatabaseTransaction<'life2>,
id: OperationId,
amount: Amount
) -> Pin<Box<dyn Future<Output = Vec<ClientOutput<<Self::Common as ModuleCommon>::Output, Self::States>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Creates an output of exactly
amount
that will pay into the
holdings managed by the module. Read moresource§fn await_primary_module_output<'life0, 'async_trait>(
&'life0 self,
operation_id: OperationId,
_out_point: OutPoint
) -> Pin<Box<dyn Future<Output = Result<Amount>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn await_primary_module_output<'life0, 'async_trait>(
&'life0 self,
operation_id: OperationId,
_out_point: OutPoint
) -> Pin<Box<dyn Future<Output = Result<Amount>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Waits for the funds from an output created by
Self::create_exact_output
to become available. This function
returning typically implies a change in the output of
Self::get_balance
.source§fn get_balance<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
dbtc: &'life1 mut DatabaseTransaction<'life2>
) -> Pin<Box<dyn Future<Output = Amount> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn get_balance<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
dbtc: &'life1 mut DatabaseTransaction<'life2>
) -> Pin<Box<dyn Future<Output = Amount> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Returns the balance held by this module and available for funding
transactions.
source§fn subscribe_balance_changes<'life0, 'async_trait>(
&'life0 self
) -> Pin<Box<dyn Future<Output = BoxStream<'static, ()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn subscribe_balance_changes<'life0, 'async_trait>(
&'life0 self
) -> Pin<Box<dyn Future<Output = BoxStream<'static, ()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Returns a stream that will output the updated module balance each time
it changes.
fn decoder() -> Decoder
fn kind() -> ModuleKind
fn handle_cli_command<'life0, 'life1, 'async_trait>(
&'life0 self,
_args: &'life1 [OsString]
) -> Pin<Box<dyn Future<Output = Result<Value, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: Sync + 'async_trait,
fn supports_backup(&self) -> bool
fn backup<'life0, 'async_trait>(
&'life0 self
) -> Pin<Box<dyn Future<Output = Result<Self::Backup, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: Sync + 'async_trait,
source§fn leave<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_dbtx: &'life1 mut DatabaseTransaction<'life2>
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: Sync + 'async_trait,
fn leave<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_dbtx: &'life1 mut DatabaseTransaction<'life2>
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: Sync + 'async_trait,
Leave the federation Read more
Auto Trait Implementations§
impl Freeze for DummyClientModule
impl !RefUnwindSafe for DummyClientModule
impl Send for DummyClientModule
impl Sync for DummyClientModule
impl Unpin for DummyClientModule
impl !UnwindSafe for DummyClientModule
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<T> FmtForward for T
impl<T> FmtForward for T
source§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.source§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.source§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.source§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.source§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.source§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.source§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.source§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.source§impl<T> IClientModule for Twhere
T: ClientModule,
impl<T> IClientModule for Twhere
T: ClientModule,
fn as_any(&self) -> &(dyn Any + Sync + Send + 'static)
fn decoder(&self) -> Decoder
fn context(&self, instance: u16) -> DynContext
fn handle_cli_command<'life0, 'life1, 'async_trait>(
&'life0 self,
args: &'life1 [OsString]
) -> Pin<Box<dyn Future<Output = Result<Value, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
T: 'async_trait,
fn input_amount(&self, input: &DynInput) -> Option<TransactionItemAmount>
fn output_amount(&self, output: &DynOutput) -> Option<TransactionItemAmount>
fn supports_backup(&self) -> bool
fn backup<'life0, 'async_trait>(
&'life0 self,
module_instance_id: u16
) -> Pin<Box<dyn Future<Output = Result<DynModuleBackup, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
T: 'async_trait,
fn supports_being_primary(&self) -> bool
fn create_sufficient_input<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
module_instance: u16,
dbtx: &'life1 mut DatabaseTransaction<'life2>,
operation_id: OperationId,
min_amount: Amount
) -> Pin<Box<dyn Future<Output = Result<Vec<ClientInput>, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
T: 'async_trait,
fn create_exact_output<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
module_instance: u16,
dbtx: &'life1 mut DatabaseTransaction<'life2>,
operation_id: OperationId,
amount: Amount
) -> Pin<Box<dyn Future<Output = Vec<ClientOutput>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
T: 'async_trait,
fn await_primary_module_output<'life0, 'async_trait>(
&'life0 self,
operation_id: OperationId,
out_point: OutPoint
) -> Pin<Box<dyn Future<Output = Result<Amount, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
T: 'async_trait,
fn get_balance<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
module_instance: u16,
dbtx: &'life1 mut DatabaseTransaction<'life2>
) -> Pin<Box<dyn Future<Output = Amount> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
T: 'async_trait,
fn subscribe_balance_changes<'life0, 'async_trait>(
&'life0 self
) -> Pin<Box<dyn Future<Output = Pin<Box<dyn Stream<Item = ()> + Send>>> + Send + 'async_trait>>where
'life0: 'async_trait,
T: 'async_trait,
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
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) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
Borrows
self
and passes that borrow into the pipe function. Read moresource§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
Mutably borrows
self
and passes that borrow into the pipe function. Read moresource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
source§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R ) -> R
source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
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
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
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
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
Borrows
self
, then passes self.deref()
into the pipe function.source§impl<T> Tap for T
impl<T> Tap for T
source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Immutable access to the
Borrow<B>
of a value. Read moresource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
Mutable access to the
BorrowMut<B>
of a value. Read moresource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
Immutable access to the
AsRef<R>
view of a value. Read moresource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
Mutable access to the
AsMut<R>
view of a value. Read moresource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Immutable access to the
Deref::Target
of a value. Read moresource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Mutable access to the
Deref::Target
of a value. Read moresource§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.source§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.source§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
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
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
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
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
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
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
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
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
Calls
.tap_deref()
only in debug builds, and is erased in release
builds.