murray_rs/blockchain/types/
transaction.rs1use serde::{Deserialize, Serialize};
2
3#[derive(Deserialize, Serialize, Debug)]
4pub struct PreviousOutput {
5 pub scriptpubkey: String,
6 pub scriptpubkey_asm: String,
7 pub scriptpubkey_type: String,
8 pub scriptpubkey_address: String,
9 pub value: u64,
10}
11
12#[derive(Deserialize, Serialize, Debug)]
13pub struct TransactionInput {
14 pub txid: String,
15 pub vout: u32,
16 pub prevout: PreviousOutput,
17 pub scriptsig: String,
18 pub scriptsig_asm: String,
19 pub witness: Option<Vec<String>>,
20 pub is_coinbase: bool,
21 pub sequence: u32,
22}
23
24#[derive(Deserialize, Serialize, Debug)]
25pub struct TransactionStatus {
26 pub confirmed: bool,
27 pub block_height: Option<u32>, pub block_hash: Option<String>,
29 pub block_time: Option<u64>,
30}
31
32#[derive(Deserialize, Serialize, Debug)]
33pub struct TransactionOutput {
34 pub scriptpubkey: String,
35 pub scriptpubkey_asm: String,
36 pub scriptpubkey_type: String,
37 pub scriptpubkey_address: String,
38 pub value: u64,
39}
40
41#[derive(Deserialize, Serialize, Debug)]
42pub struct Transaction {
43 pub txid: String,
44 pub version: u32,
45 pub locktime: u32,
46 pub vin: Vec<TransactionInput>,
47 pub vout: Vec<TransactionOutput>,
48 pub size: u32,
49 pub weight: u32,
50 pub sigops: u32,
51 pub fee: u32,
52 pub status: TransactionStatus,
53}