gmsol/chainlink/pull_oracle/
mod.rs

1/// Client.
2pub mod client;
3
4/// Pull Oracle.
5pub mod pull_oracle_impl;
6
7mod access_controller_address;
8
9pub use client::{ApiReport, Client, Credential};
10pub use pull_oracle_impl::{filter_feed_ids, ChainlinkPullOracle, ChainlinkPullOracleFactory};
11
12pub type FeedId = [u8; 32];
13
14/// Parse Feed ID.
15pub fn parse_feed_id(feed_id: &str) -> crate::Result<FeedId> {
16    let feed_id = feed_id.strip_prefix("0x").unwrap_or(feed_id);
17
18    let mut bytes = [0; 32];
19    hex::decode_to_slice(feed_id, &mut bytes).map_err(crate::Error::invalid_argument)?;
20
21    Ok(bytes)
22}