Skip to content

Commit

Permalink
change type to broadcast
Browse files Browse the repository at this point in the history
  • Loading branch information
SWvheerden committed Sep 18, 2024
1 parent 1dd7d8c commit 1688464
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 6 deletions.
5 changes: 5 additions & 0 deletions base_layer/common_types/src/transaction.rs
Original file line number Diff line number Diff line change
Expand Up @@ -166,6 +166,8 @@ impl Display for TransactionStatus {

#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub enum ImportStatus {
/// Special case where we import a tx received from broadcast
Broadcast,
/// This transaction import status is used when importing a spendable UTXO
Imported,
/// This transaction import status is used when a one-sided transaction has been scanned but is unconfirmed
Expand All @@ -183,6 +185,7 @@ impl TryFrom<ImportStatus> for TransactionStatus {

fn try_from(value: ImportStatus) -> Result<Self, Self::Error> {
match value {
ImportStatus::Broadcast => Ok(TransactionStatus::Broadcast),
ImportStatus::Imported => Ok(TransactionStatus::Imported),
ImportStatus::OneSidedUnconfirmed => Ok(TransactionStatus::OneSidedUnconfirmed),
ImportStatus::OneSidedConfirmed => Ok(TransactionStatus::OneSidedConfirmed),
Expand All @@ -197,6 +200,7 @@ impl TryFrom<TransactionStatus> for ImportStatus {

fn try_from(value: TransactionStatus) -> Result<Self, Self::Error> {
match value {
TransactionStatus::Broadcast => Ok(ImportStatus::Broadcast),
TransactionStatus::Imported => Ok(ImportStatus::Imported),
TransactionStatus::OneSidedUnconfirmed => Ok(ImportStatus::OneSidedUnconfirmed),
TransactionStatus::OneSidedConfirmed => Ok(ImportStatus::OneSidedConfirmed),
Expand All @@ -210,6 +214,7 @@ impl TryFrom<TransactionStatus> for ImportStatus {
impl fmt::Display for ImportStatus {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> Result<(), fmt::Error> {
match self {
ImportStatus::Broadcast => write!(f, "Broadcast"),
ImportStatus::Imported => write!(f, "Imported"),
ImportStatus::OneSidedUnconfirmed => write!(f, "OneSidedUnconfirmed"),
ImportStatus::OneSidedConfirmed => write!(f, "OneSidedConfirmed"),
Expand Down
13 changes: 7 additions & 6 deletions base_layer/wallet/src/transaction_service/service.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3014,11 +3014,10 @@ where
.await?
.into_iter()
.map(|ro| -> Result<_, TransactionServiceError> {
let status = ImportStatus::Imported;
let output = outputs.iter().find(|o| o.hash() == ro.hash).ok_or_else(|| {
TransactionServiceError::ServiceError(format!("Output '{}' not found", ro.hash))
})?;
Ok((ro, status, output.clone()))
Ok((ro, output.clone()))
})
.collect::<Result<Vec<_>, _>>()?;
recovered.append(
Expand All @@ -3031,11 +3030,10 @@ where
.await?
.into_iter()
.map(|ro| -> Result<_, TransactionServiceError> {
let status = ImportStatus::OneSidedUnconfirmed;
let output = outputs.iter().find(|o| o.hash() == ro.hash).ok_or_else(|| {
TransactionServiceError::ServiceError(format!("Output '{}' not found", ro.hash))
})?;
Ok((ro, status, output.clone()))
Ok((ro, output.clone()))
})
.collect::<Result<Vec<_>, _>>()?,
);
Expand All @@ -3044,7 +3042,7 @@ where
};
// we should only be able to recover 1 output per tx, but we use the vec here to be safe
let mut source_address = None;
for (ro, status, output) in recovered {
for (ro, output) in recovered {
match &ro.output.payment_id {
PaymentId::AddressAndData(address, _) | PaymentId::Address(address) => {
if source_address.is_none() {
Expand All @@ -3057,7 +3055,7 @@ where
ro.output.value,
source_address.clone().unwrap_or_default(),
format!("finalized_transaction received from {}", source_pubkey),
status,
ImportStatus::Broadcast,
Some(tx_id),
None,
None,
Expand Down Expand Up @@ -3521,6 +3519,9 @@ where
payment_id,
)?;
let transaction_event = match import_status {
ImportStatus::Broadcast => TransactionEvent::TransactionBroadcast (
tx_id
),
ImportStatus::Imported => TransactionEvent::DetectedTransactionUnconfirmed {
tx_id,
num_confirmations: 0,
Expand Down

0 comments on commit 1688464

Please sign in to comment.