unc_jsonrpc_client/methods/
tx.rs1use super::*;
29
30pub use unc_jsonrpc_primitives::types::transactions::RpcTransactionError;
31pub use unc_jsonrpc_primitives::types::transactions::TransactionInfo;
32
33pub type RpcTransactionStatusResponse = unc_primitives::views::FinalExecutionOutcomeView;
34
35#[derive(Debug)]
36pub struct RpcTransactionStatusRequest {
37 pub transaction_info: TransactionInfo,
38}
39
40impl From<RpcTransactionStatusRequest>
41 for unc_jsonrpc_primitives::types::transactions::RpcTransactionStatusRequest
42{
43 fn from(this: RpcTransactionStatusRequest) -> Self {
44 Self {
45 transaction_info: this.transaction_info,
46 wait_until: unc_primitives::views::TxExecutionStatus::None,
47 }
48 }
49}
50
51impl RpcMethod for RpcTransactionStatusRequest {
52 type Response = RpcTransactionStatusResponse;
53 type Error = RpcTransactionError;
54
55 fn method_name(&self) -> &str {
56 "tx"
57 }
58
59 fn params(&self) -> Result<serde_json::Value, io::Error> {
60 Ok(match &self.transaction_info {
61 TransactionInfo::Transaction(signed_transaction) => {
62 match signed_transaction {
63 unc_jsonrpc_primitives::types::transactions::SignedTransaction::SignedTransaction(tx) => {
64 json!([common::serialize_signed_transaction(tx)?])
65 }
66 }
67 }
68 TransactionInfo::TransactionId { tx_hash,sender_account_id, ..} => {
69 json!([tx_hash, sender_account_id])
70 }
71 })
72 }
73}
74
75impl private::Sealed for RpcTransactionStatusRequest {}