|
| 1 | +//! The subscribe method requests periodic notifications from the server when |
| 2 | +//! certain events happen. |
| 3 | +//! |
| 4 | +//! - https://xrpl.org/subscribe.html |
| 5 | +
|
1 | 6 | use crate::Request;
|
2 | 7 | use serde::{Deserialize, Serialize};
|
3 | 8 |
|
4 |
| -/// https://xrpl.org/subscribe.html |
5 | 9 | #[derive(Default, Clone, Serialize)]
|
6 | 10 | pub struct SubscribeRequest {
|
7 | 11 | #[serde(skip_serializing_if = "Option::is_none")]
|
@@ -46,14 +50,43 @@ impl SubscribeRequest {
|
46 | 50 | }
|
47 | 51 | }
|
48 | 52 |
|
| 53 | +#[derive(Debug, Deserialize)] |
| 54 | +pub struct SubscribeResponse {} |
| 55 | + |
| 56 | +// Streaming Events |
| 57 | + |
49 | 58 | #[derive(Debug, Serialize, Deserialize)]
|
50 | 59 | pub struct LedgerClosedEvent {
|
51 | 60 | #[serde(rename = "type")]
|
52 | 61 | pub event_type: String,
|
53 | 62 | pub fee_base: u32,
|
54 | 63 | pub fee_ref: u32,
|
| 64 | + pub ledger_hash: String, |
| 65 | + pub ledger_index: u64, |
| 66 | + pub ledger_time: i64, |
| 67 | + pub reserve_base: u32, |
| 68 | + pub reserve_inc: u32, |
55 | 69 | pub txn_count: u32,
|
| 70 | + pub validated_ledgers: String, |
56 | 71 | }
|
57 | 72 |
|
58 |
| -#[derive(Debug, Deserialize)] |
59 |
| -pub struct SubscribeResponse {} |
| 73 | +#[derive(Debug, Serialize, Deserialize)] |
| 74 | +pub struct ValidationReceivedEvent { |
| 75 | + #[serde(rename = "type")] |
| 76 | + pub event_type: String, |
| 77 | + pub base_fee: u32, |
| 78 | + pub cookie: Option<String>, |
| 79 | + pub flags: u32, |
| 80 | + pub ledger_hash: String, |
| 81 | + pub ledger_index: String, |
| 82 | + pub signature: String, |
| 83 | + // #TODO add missing fields |
| 84 | +} |
| 85 | + |
| 86 | +#[derive(Debug, Serialize, Deserialize)] |
| 87 | +pub struct TransactionEvent { |
| 88 | + #[serde(rename = "type")] |
| 89 | + pub event_type: String, |
| 90 | + pub engine_result: String, |
| 91 | + // #TODO add missing fields |
| 92 | +} |
0 commit comments