electrum_jsonrpc/
btc.rs

1use rust_decimal::prelude::FromStr;
2use serde::{Deserialize, Serialize};
3use serde_json::{json, Value};
4
5/// Represents btc address
6#[derive(Serialize, Deserialize, Debug, Clone)]
7pub struct BtcAddress<'a> {
8    #[serde(borrow)]
9    pub address: &'a str,
10}
11
12// todo: address verification
13impl<'a> BtcAddress<'a> {
14    /// Create a new address from String
15    pub fn new(address: &'a str) -> Self {
16        Self { address }
17    }
18}
19
20impl<'a> From<&BtcAddress<'a>> for String {
21    fn from(address: &BtcAddress<'a>) -> Self {
22        address.address.to_string()
23    }
24}
25
26impl<'a> From<&BtcAddress<'a>> for Value {
27    fn from(address: &BtcAddress<'a>) -> Self {
28        json!(address.address)
29    }
30}