-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
6880376
commit e989a5e
Showing
5 changed files
with
180 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
use crate::models::Request; | ||
|
||
/// Represents a request to fetch fee stats from the Stellar Horizon API. | ||
/// | ||
/// `FeeStatsRequest` is a struct used to construct queries for retrieving information about fee stats | ||
/// from the Horizon server. This request does not include any parameters. | ||
/// | ||
/// # Usage | ||
/// Instances of `FeeStatsRequest` are created and optionally configured using the builder pattern. | ||
/// Once the desired parameters are set, the request can be passed to the Horizon client to fetch | ||
/// fee stats. | ||
/// | ||
/// # Example | ||
/// ```rust | ||
/// use stellar_rs::fee_stats::fee_stats_request::FeeStatsRequest; | ||
/// use stellar_rs::models::*; | ||
/// | ||
/// let request = FeeStatsRequest::new(); | ||
/// | ||
/// // The request can now be used with a Horizon client to fetch fee stats. | ||
/// ``` | ||
/// | ||
#[derive(Default)] | ||
pub struct FeeStatsRequest {} | ||
|
||
impl FeeStatsRequest { | ||
/// Creates a new `FeeStatsRequest` with default parameters. | ||
pub fn new() -> FeeStatsRequest { | ||
FeeStatsRequest::default() | ||
} | ||
} | ||
|
||
impl Request for FeeStatsRequest { | ||
fn get_query_parameters(&self) -> String { | ||
"".to_string() | ||
} | ||
|
||
fn build_url(&self, base_url: &str) -> String { | ||
format!("{}/{}", base_url, super::FEE_STATS_PATH) | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,73 @@ | ||
use derive_getters::Getters; | ||
use serde::{Deserialize, Serialize}; | ||
|
||
use crate::models::Response; | ||
|
||
/// Represents the response from the Stellar Horizon API when requesting fee stats. | ||
/// | ||
/// This struct encapsulates detailed information about the fee stats, including the last ledger, | ||
/// last ledger base fee, ledger capacity usage, and the fee charged and max fee for transactions. | ||
/// | ||
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize, Getters)] | ||
#[serde(rename_all = "camelCase")] | ||
pub struct FeeStatsResponse { | ||
/// The last ledger number. | ||
#[serde(rename = "last_ledger")] | ||
pub last_ledger: String, | ||
/// The last ledger base fee. | ||
#[serde(rename = "last_ledger_base_fee")] | ||
pub last_ledger_base_fee: String, | ||
/// The ledger capacity usage. | ||
#[serde(rename = "ledger_capacity_usage")] | ||
pub ledger_capacity_usage: String, | ||
/// The fee charged for transactions. | ||
#[serde(rename = "fee_charged")] | ||
pub fee_charged: Fee, | ||
/// The maximum fee for transactions. | ||
#[serde(rename = "max_fee")] | ||
pub max_fee: Fee, | ||
} | ||
|
||
/// Represents the fee charged and max fee for transactions. | ||
/// | ||
/// This struct encapsulates detailed information about the fee charged and max fee for transactions, | ||
/// including the max, min, mode, and percentile values. | ||
/// | ||
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize, Getters)] | ||
#[serde(rename_all = "camelCase")] | ||
pub struct Fee { | ||
/// The maximum fee for transactions. | ||
pub max: String, | ||
/// The minimum fee for transactions. | ||
pub min: String, | ||
/// The mode fee for transactions. | ||
pub mode: String, | ||
/// The 10th percentile fee for transactions. | ||
pub p10: String, | ||
/// The 20th percentile fee for transactions. | ||
pub p20: String, | ||
/// The 30th percentile fee for transactions. | ||
pub p30: String, | ||
/// The 40th percentile fee for transactions. | ||
pub p40: String, | ||
/// The 50th percentile fee for transactions. | ||
pub p50: String, | ||
/// The 60th percentile fee for transactions. | ||
pub p60: String, | ||
/// The 70th percentile fee for transactions. | ||
pub p70: String, | ||
/// The 80th percentile fee for transactions. | ||
pub p80: String, | ||
/// The 90th percentile fee for transactions. | ||
pub p90: String, | ||
/// The 95th percentile fee for transactions. | ||
pub p95: String, | ||
/// The 99th percentile fee for transactions. | ||
pub p99: String, | ||
} | ||
|
||
impl Response for FeeStatsResponse { | ||
fn from_json(json: String) -> Result<Self, String> { | ||
serde_json::from_str(&json).map_err(|e| e.to_string()) | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
pub mod fee_stats_request; | ||
pub mod fee_stats_response; | ||
|
||
static FEE_STATS_PATH: &str = "fee_stats"; | ||
|
||
pub mod prelude { | ||
pub use super::fee_stats_request::*; | ||
pub use super::fee_stats_response::*; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters