pub struct LpTokenPriceTask {
pub price_feed_addresses: Vec<String>,
pub price_feed_jobs: Vec<OracleJob>,
pub use_fair_price: Option<bool>,
pub pool_address: Option<PoolAddress>,
}
Expand description
Fetch LP token price info from a number of supported exchanges.
See our blog post on Fair LP Token Oracles
NOTE*: This is not the swap price but the price of the underlying LP token.
Input: None
Returns: The price of an LP token for a given AMM pool.
Example: Fetch the Orca LP token price of the SOL/USDC pool
{ "lpTokenPriceTask": { "orcaPoolAddress": "APDFRM3HMr8CAGXwKHiu2f5ePSpaiEJhaURwhsRrUUt9" } }
Example: Fetch the fair price Orca LP token price of the SOL/USDC pool
{ "lpTokenPriceTask": { "orcaPoolAddress": "APDFRM3HMr8CAGXwKHiu2f5ePSpaiEJhaURwhsRrUUt9", "useFairPrice": true, "priceFeedAddresses": [ "GvDMxPzN1sCj7L26YDK2HnMRXEQmQ2aemov8YBtPS7vR", "BjUgj6YCnFBZ49wF54ddBVA9qu8TeqkFtkbqmZcee8uW" ] } }
Example: Fetch the fair price Raydium LP token price of the SOL/USDC pool
{ "lpTokenPriceTask": { "raydiumPoolAddress": "58oQChx4yWmvKdwLLZzBi4ChoCc2fqCUWBkwMihLYQo2", "useFairPrice": true,"priceFeedAddresses": ["GvDMxPzN1sCj7L26YDK2HnMRXEQmQ2aemov8YBtPS7vR","BjUgj6YCnFBZ49wF54ddBVA9qu8TeqkFtkbqmZcee8uW" ] } }
Fields§
§price_feed_addresses: Vec<String>
/ A list of Switchboard aggregator accounts used to calculate the fair LP price. This ensures the price is based on the previous round to mitigate flash loan price manipulation.
price_feed_jobs: Vec<OracleJob>
/ A list of OracleJobs to execute in order to yield the price feed jobs to use for the fair price formula.
use_fair_price: Option<bool>
/ If enabled and price_feed_addresses provided, the oracle will calculate the fair LP price based on the liquidity pool reserves. See our blog post for more information: https://switchboardxyz.medium.com/fair-lp-token-oracles-94a457c50239
pool_address: Option<PoolAddress>
Implementations§
Source§impl LpTokenPriceTask
impl LpTokenPriceTask
Sourcepub fn use_fair_price(&self) -> bool
pub fn use_fair_price(&self) -> bool
Returns the value of use_fair_price
, or the default value if use_fair_price
is unset.
Trait Implementations§
Source§impl Clone for LpTokenPriceTask
impl Clone for LpTokenPriceTask
Source§fn clone(&self) -> LpTokenPriceTask
fn clone(&self) -> LpTokenPriceTask
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for LpTokenPriceTask
impl Debug for LpTokenPriceTask
Source§impl Default for LpTokenPriceTask
impl Default for LpTokenPriceTask
Source§impl Message for LpTokenPriceTask
impl Message for LpTokenPriceTask
Source§fn encoded_len(&self) -> usize
fn encoded_len(&self) -> usize
Source§fn encode<B>(&self, buf: &mut B) -> Result<(), EncodeError>
fn encode<B>(&self, buf: &mut B) -> Result<(), EncodeError>
Source§fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Source§fn encode_length_delimited<B>(&self, buf: &mut B) -> Result<(), EncodeError>
fn encode_length_delimited<B>(&self, buf: &mut B) -> Result<(), EncodeError>
Source§fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Source§fn decode<B>(buf: B) -> Result<Self, DecodeError>
fn decode<B>(buf: B) -> Result<Self, DecodeError>
Source§fn decode_length_delimited<B>(buf: B) -> Result<Self, DecodeError>
fn decode_length_delimited<B>(buf: B) -> Result<Self, DecodeError>
Source§fn merge<B>(&mut self, buf: B) -> Result<(), DecodeError>
fn merge<B>(&mut self, buf: B) -> Result<(), DecodeError>
self
. Read moreSource§fn merge_length_delimited<B>(&mut self, buf: B) -> Result<(), DecodeError>
fn merge_length_delimited<B>(&mut self, buf: B) -> Result<(), DecodeError>
self
.