1个不稳定版本
0.1.59 | 2021年11月3日 |
---|
#33 in #switchboard
12KB
187 行
switchboard-program
一个用于与交换机托管数据源交互的Rust库。
描述
此包可用于管理交换机数据源账户解析。
具体来说,此包将从一个提供的数据源AccountInfo中返回最近的已确认轮次结果。
用法
use switchboard_program;
use switchboard_program::{
AggregatorState,
RoundResult,
FastRoundResultAccountData,
fast_parse_switchboard_result
};
...
let aggregator: AggregatorState = switchboard_program::get_aggregator(
switchboard_feed_account // &AccountInfo
)?;
let round_result: RoundResult = switchboard_program::get_aggregator_result(
&aggregator)?;
// pub struct RoundResult {
// pub num_success: Option<i32>,
// pub num_error: Option<i32>,
// pub result: Option<f64>,
// pub round_open_slot: Option<u64>,
// pub round_open_timestamp: Option<i64>,
// pub min_response: Option<f64>,
// pub max_response: Option<f64>,
// pub medians: Vec<f64>,
// }
...
// Compute conservative? Use the parse optimized result account instead:
let fast_parse_feed_round = FastRoundResultAccountData::deserialize(
&switchboard_parse_optimized_account.try_borrow_data()?).unwrap();
// pub struct FastRoundResultAccountData {
// pub parent: [u8;32],
// pub result: FastRoundResult,
// }
// // A precisioned decimal representation of the current aggregator result
// // where `result is represented as ${mantissa} / (10^${scale})`
// pub struct SwitchboardDecimal {
// pub mantissa: i128,
// pub scale: u64
// }
// pub struct FastRoundResult {
// pub num_success: i32,
// pub num_error: i32,
// pub result: f64,
// pub round_open_slot: u64,
// pub round_open_timestamp: i64,
// pub min_response: f64,
// pub max_response: f64,
// pub decimal: SwitchboardDecimal,
// }
依赖项
~17–26MB
~436K SLoC