stable_bridge_package/
response_types.rs1use serde::{Deserialize, Serialize};
2
3use crate::db_types::DepositRecord;
4
5#[allow(non_snake_case)]
6#[derive(Debug, Deserialize, Serialize, Clone, Default)]
7pub struct AttestationInfo {
8 pub src_chain_id: String,
9 pub src_chain_domain_id: u32,
10 pub dest_chain_id: String,
11 pub dest_chain_domain_id: u32,
12 pub src_txn_hash: String,
13
14 pub depositor: String,
15 pub recipient: String,
16 pub event_nonce: u64,
17 pub src_amount: String,
18 pub dest_amount: String,
19 pub partner_id: String,
20
21 pub version: u64,
22 pub is_executed: bool,
23 pub dest_txn_hash: String,
24 pub relay_record_id: u64,
25 pub attestation_expiry: u64,
26
27 pub message_hash: String,
28 pub attestations: Vec<String>,
29 pub confirmed: bool,
30}
31
32#[allow(non_snake_case)]
33#[derive(Debug, Deserialize, Serialize, Clone, Default)]
34pub struct AttestationQueryResponse {
35 pub attestations: Vec<AttestationInfo>,
36}
37
38impl AttestationInfo {
39 pub fn new(deposit_record: &DepositRecord) -> Self {
40 let values: Vec<String> = deposit_record
41 .attestations
42 .values()
43 .map(|x| x.to_string())
44 .collect();
45 AttestationInfo {
46 src_chain_id: deposit_record.src_chain_id.clone(),
47 src_chain_domain_id: deposit_record.src_chain_domain_id,
48 dest_chain_id: deposit_record.dest_chain_id.clone(),
49 dest_chain_domain_id: deposit_record.dest_chain_domain_id,
50 src_txn_hash: deposit_record.src_txn_hash.clone(),
51
52 depositor: deposit_record.depositor.clone(),
53 recipient: deposit_record.recipient.clone(),
54 event_nonce: deposit_record.event_nonce,
55 src_amount: deposit_record.src_amount.clone(),
56 dest_amount: deposit_record.dest_amount.clone(),
57 partner_id: deposit_record.partner_id.clone(),
58
59 version: deposit_record.version,
60 is_executed: deposit_record.is_executed,
61 dest_txn_hash: deposit_record.dest_txn_hash.clone(),
62 relay_record_id: deposit_record.relay_record_id,
63 attestation_expiry: deposit_record.attestation_expiry,
64 message_hash: deposit_record.message_hash.clone(),
65 attestations: values,
66 confirmed: deposit_record.is_executed,
67 }
68 }
69}