Skip to content

Commit 33293a5

Browse files
committed
Merge #250: Derive serde::Serialize for GetTransactionResultDetail et al
d85da1d Derive Serialize and Deserialize for as many API types as possible (Casey Rodarmor) Pull request description: We're implementing `get_transaction` for our [dummy Bitcoin RPC server](https://crates.io/crates/test-bitcoincore-rpc), and we need to construct and return a `GetTransactionResultDetail`, but `GetTransactionResultDetail` doesn't implement `Serialize`. This PR derives `Serialize` for `GetTransactionResultDetail`, as well as the types it contains. ACKs for top commit: tcharding: ACK d85da1d Tree-SHA512: 40e1074deab674d309d9288742ce6f59eef448217ab9cf83ae229df4d91feed6e9a678e0b7814dcb0da760a38210809f4797795bf2565d8bac5f2ff3e2a04c55
2 parents 05f5b82 + d85da1d commit 33293a5

File tree

1 file changed

+12
-12
lines changed

1 file changed

+12
-12
lines changed

json/src/lib.rs

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -667,7 +667,7 @@ pub enum GetTransactionResultDetailCategory {
667667
Orphan,
668668
}
669669

670-
#[derive(Clone, PartialEq, Eq, Debug, Deserialize)]
670+
#[derive(Clone, PartialEq, Eq, Debug, Deserialize, Serialize)]
671671
pub struct GetTransactionResultDetail {
672672
pub address: Option<Address<NetworkUnchecked>>,
673673
pub category: GetTransactionResultDetailCategory,
@@ -680,7 +680,7 @@ pub struct GetTransactionResultDetail {
680680
pub abandoned: Option<bool>,
681681
}
682682

683-
#[derive(Clone, PartialEq, Eq, Debug, Deserialize)]
683+
#[derive(Clone, PartialEq, Eq, Debug, Deserialize, Serialize)]
684684
pub struct WalletTxInfo {
685685
pub confirmations: i32,
686686
pub blockhash: Option<bitcoin::BlockHash>,
@@ -697,7 +697,7 @@ pub struct WalletTxInfo {
697697
pub wallet_conflicts: Vec<bitcoin::Txid>,
698698
}
699699

700-
#[derive(Clone, PartialEq, Eq, Debug, Deserialize)]
700+
#[derive(Clone, PartialEq, Eq, Debug, Deserialize, Serialize)]
701701
pub struct GetTransactionResult {
702702
#[serde(flatten)]
703703
pub info: WalletTxInfo,
@@ -716,7 +716,7 @@ impl GetTransactionResult {
716716
}
717717
}
718718

719-
#[derive(Clone, PartialEq, Eq, Debug, Deserialize)]
719+
#[derive(Clone, PartialEq, Eq, Debug, Deserialize, Serialize)]
720720
pub struct ListTransactionResult {
721721
#[serde(flatten)]
722722
pub info: WalletTxInfo,
@@ -727,7 +727,7 @@ pub struct ListTransactionResult {
727727
pub comment: Option<String>,
728728
}
729729

730-
#[derive(Clone, PartialEq, Eq, Debug, Deserialize)]
730+
#[derive(Clone, PartialEq, Eq, Debug, Deserialize, Serialize)]
731731
pub struct ListSinceBlockResult {
732732
pub transactions: Vec<ListTransactionResult>,
733733
#[serde(default)]
@@ -1851,7 +1851,7 @@ impl serde::Serialize for SigHashType {
18511851
}
18521852

18531853
// Used for createrawtransaction argument.
1854-
#[derive(Serialize, Clone, PartialEq, Eq, Debug)]
1854+
#[derive(Serialize, Clone, PartialEq, Eq, Debug, Deserialize)]
18551855
#[serde(rename_all = "camelCase")]
18561856
pub struct CreateRawTransactionInput {
18571857
pub txid: bitcoin::Txid,
@@ -1895,7 +1895,7 @@ pub struct FundRawTransactionOptions {
18951895
pub estimate_mode: Option<EstimateMode>,
18961896
}
18971897

1898-
#[derive(Deserialize, Clone, PartialEq, Eq, Debug)]
1898+
#[derive(Deserialize, Clone, PartialEq, Eq, Debug, Serialize)]
18991899
#[serde(rename_all = "camelCase")]
19001900
pub struct FundRawTransactionResult {
19011901
#[serde(with = "crate::serde_hex")]
@@ -1906,7 +1906,7 @@ pub struct FundRawTransactionResult {
19061906
pub change_position: i32,
19071907
}
19081908

1909-
#[derive(Deserialize, Clone, PartialEq, Eq, Debug)]
1909+
#[derive(Deserialize, Clone, PartialEq, Eq, Debug, Serialize)]
19101910
pub struct GetBalancesResultEntry {
19111911
#[serde(with = "bitcoin::amount::serde::as_btc")]
19121912
pub trusted: Amount,
@@ -1916,7 +1916,7 @@ pub struct GetBalancesResultEntry {
19161916
pub immature: Amount,
19171917
}
19181918

1919-
#[derive(Deserialize, Clone, PartialEq, Eq, Debug)]
1919+
#[derive(Deserialize, Clone, PartialEq, Eq, Debug, Serialize)]
19201920
#[serde(rename_all = "camelCase")]
19211921
pub struct GetBalancesResult {
19221922
pub mine: GetBalancesResultEntry,
@@ -1930,7 +1930,7 @@ impl FundRawTransactionResult {
19301930
}
19311931

19321932
// Used for signrawtransaction argument.
1933-
#[derive(Serialize, Clone, PartialEq, Debug)]
1933+
#[derive(Serialize, Clone, PartialEq, Debug, Deserialize)]
19341934
#[serde(rename_all = "camelCase")]
19351935
pub struct SignRawTransactionInput {
19361936
pub txid: bitcoin::Txid,
@@ -1947,7 +1947,7 @@ pub struct SignRawTransactionInput {
19471947
}
19481948

19491949
/// Used to represent UTXO set hash type
1950-
#[derive(Clone, Serialize, PartialEq, Eq, Debug)]
1950+
#[derive(Clone, Serialize, PartialEq, Eq, Debug, Deserialize)]
19511951
#[serde(rename_all = "snake_case")]
19521952
pub enum TxOutSetHashType {
19531953
HashSerialized2,
@@ -1956,7 +1956,7 @@ pub enum TxOutSetHashType {
19561956
}
19571957

19581958
/// Used to specify a block hash or a height
1959-
#[derive(Clone, Serialize, PartialEq, Eq, Debug)]
1959+
#[derive(Clone, Serialize, PartialEq, Eq, Debug, Deserialize)]
19601960
#[serde(untagged)]
19611961
pub enum HashOrHeight {
19621962
BlockHash(bitcoin::BlockHash),

0 commit comments

Comments
 (0)