Merge #958: database: convert CoinStatus to listcoins argument string

fa39e2ced460918d6c6c94c0e2b7dae19b612fa9 database: convert `CoinStatus` to `listcoins` argument string (jp1ac4)

Pull request description:

  This is a preliminary PR towards https://github.com/wizardsardine/liana/issues/677 and is the counterpart to the existing `CoinStatus::from_arg()` method.

  This is needed so that the GUI can pass the required string arguments to the `listcoins` RPC command when using an external Liana daemon.

ACKs for top commit:
  edouardparis:
    ACK fa39e2ced460918d6c6c94c0e2b7dae19b612fa9

Tree-SHA512: e555739e641e4be66ce4942e8294606ab001572395ed73a6c40fa2af38f076357a7c3acba4e4d756fb6d334a11107827a95c53d3f3aecfe32ceca80fc85af83a
This commit is contained in:
Antoine Poinsot 2024-03-09 19:05:42 +01:00
commit f19e872814
No known key found for this signature in database
GPG Key ID: E13FC145CD3F4304

View File

@ -398,6 +398,17 @@ impl CoinStatus {
_ => None,
}
}
/// Converts a `CoinStatus` to its equivalent argument name
/// as used in the `listcoins` RPC command.
pub fn to_arg(&self) -> &'static str {
match self {
CoinStatus::Unconfirmed => "unconfirmed",
CoinStatus::Confirmed => "confirmed",
CoinStatus::Spending => "spending",
CoinStatus::Spent => "spent",
}
}
}
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
@ -452,3 +463,28 @@ impl LabelItem {
}
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn coin_status_as_arg() {
assert_eq!(
CoinStatus::from_arg(CoinStatus::Unconfirmed.to_arg()),
Some(CoinStatus::Unconfirmed)
);
assert_eq!(
CoinStatus::from_arg(CoinStatus::Confirmed.to_arg()),
Some(CoinStatus::Confirmed)
);
assert_eq!(
CoinStatus::from_arg(CoinStatus::Spending.to_arg()),
Some(CoinStatus::Spending)
);
assert_eq!(
CoinStatus::from_arg(CoinStatus::Spent.to_arg()),
Some(CoinStatus::Spent)
);
}
}