xrpl_api/api/
transaction_entry.rs1use crate::{types::Meta, types::Transaction, LedgerIndex, Request};
9use serde::{Deserialize, Serialize};
10
11#[derive(Default, Debug, Clone, Serialize)]
12pub struct TransactionEntryRequest {
13 #[serde(skip_serializing_if = "Option::is_none")]
14 ledger_hash: Option<String>,
15 #[serde(skip_serializing_if = "Option::is_none")]
16 ledger_index: Option<LedgerIndex>,
17 tx_hash: String,
19}
20
21impl Request for TransactionEntryRequest {
22 type Response = TransactionEntryResponse;
23
24 fn method(&self) -> String {
25 "transaction_entry".to_owned()
26 }
27}
28
29impl TransactionEntryRequest {
30 pub fn new(tx_hash: impl Into<String>) -> Self {
31 Self {
32 tx_hash: tx_hash.into(),
33 ..Default::default()
34 }
35 }
36
37 pub fn ledger_index(self, ledger_index: LedgerIndex) -> Self {
38 Self {
39 ledger_index: Some(ledger_index),
40 ..self
41 }
42 }
43}
44
45#[derive(Debug, Deserialize)]
46pub struct TransactionEntryResponse {
47 pub ledger_index: u32,
49 pub ledger_hash: Option<String>,
51 pub metadata: Meta,
52 pub tx_json: Transaction,
53}