#switchboard #solana #oracle

switchboard-program

一个用于与Switchboard数据源交互的Rust库

10个版本

0.2.1 2022年3月15日
0.1.63 2022年1月21日
0.1.59 2021年11月3日
0.1.49 2021年7月26日

#15 in #switchboard

Download history 313/week @ 2024-04-07 421/week @ 2024-04-14 341/week @ 2024-04-21 281/week @ 2024-04-28 178/week @ 2024-05-05 193/week @ 2024-05-12 256/week @ 2024-05-19 248/week @ 2024-05-26 253/week @ 2024-06-02 181/week @ 2024-06-09 245/week @ 2024-06-16 256/week @ 2024-06-23 164/week @ 2024-06-30 200/week @ 2024-07-07 325/week @ 2024-07-14 298/week @ 2024-07-21

1,005 每月下载量
3 个crate中使用 (2 个直接使用)

MIT 许可证

12KB
188

switchboard-program

一个用于与Switchboard托管数据源交互的Rust库。

描述

此包可用于管理Switchboard数据源账户解析。

具体来说,此包将从提供的数据源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,
// }

依赖关系

~18–26MB
~453K SLoC