fedimint_walletv2_client/
events.rs1use bitcoin::address::NetworkUnchecked;
2use bitcoin::{Address, Txid};
3use fedimint_core::core::{ModuleKind, OperationId};
4use fedimint_eventlog::{Event, EventKind, EventPersistence};
5use serde::{Deserialize, Serialize};
6
7#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq)]
9pub struct SendPaymentEvent {
10 pub operation_id: OperationId,
11 pub address: Address<NetworkUnchecked>,
12 pub value: bitcoin::Amount,
13 pub fee: bitcoin::Amount,
14}
15
16impl Event for SendPaymentEvent {
17 const MODULE: Option<ModuleKind> = Some(fedimint_walletv2_common::KIND);
18 const KIND: EventKind = EventKind::from_static("payment-send");
19 const PERSISTENCE: EventPersistence = EventPersistence::Persistent;
20}
21
22#[derive(Serialize, Deserialize, Debug, Clone, Eq, PartialEq)]
24pub enum SendPaymentStatus {
25 Success(Txid),
27 Aborted,
29}
30
31#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq)]
33pub struct SendPaymentUpdateEvent {
34 pub operation_id: OperationId,
35 pub status: SendPaymentStatus,
36}
37
38impl Event for SendPaymentUpdateEvent {
39 const MODULE: Option<ModuleKind> = Some(fedimint_walletv2_common::KIND);
40 const KIND: EventKind = EventKind::from_static("payment-send-update");
41 const PERSISTENCE: EventPersistence = EventPersistence::Persistent;
42}
43
44#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq)]
46pub struct ReceivePaymentEvent {
47 pub operation_id: OperationId,
48 pub address: Address<NetworkUnchecked>,
49 pub value: bitcoin::Amount,
50 pub fee: bitcoin::Amount,
51}
52
53impl Event for ReceivePaymentEvent {
54 const MODULE: Option<ModuleKind> = Some(fedimint_walletv2_common::KIND);
55 const KIND: EventKind = EventKind::from_static("payment-receive");
56 const PERSISTENCE: EventPersistence = EventPersistence::Persistent;
57}
58
59#[derive(Serialize, Deserialize, Debug, Clone, Eq, PartialEq)]
61pub enum ReceivePaymentStatus {
62 Success,
64 Aborted,
66}
67
68#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq)]
70pub struct ReceivePaymentUpdateEvent {
71 pub operation_id: OperationId,
72 pub status: ReceivePaymentStatus,
73}
74
75impl Event for ReceivePaymentUpdateEvent {
76 const MODULE: Option<ModuleKind> = Some(fedimint_walletv2_common::KIND);
77 const KIND: EventKind = EventKind::from_static("payment-receive-update");
78 const PERSISTENCE: EventPersistence = EventPersistence::Persistent;
79}