stable_bridge_package/
response_types.rs

1use 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}