pub struct PfBondingCurve {
pub virtual_sol_reserves: u64,
pub virtual_token_reserves: u64,
pub complete: bool,
pub token_address: Pubkey,
pub bonding_curve_address: Pubkey,
pub bonding_curve_associated_token_account_address: Pubkey,
pub creator_vault_address: Pubkey,
}Expand description
Struct to hold data and PoolTrait implementation for Pumpfun Bonding Curve pools/markets.
Fields§
§virtual_sol_reserves: u64§virtual_token_reserves: u64§complete: bool§token_address: Pubkey§bonding_curve_address: Pubkey§bonding_curve_associated_token_account_address: Pubkey§creator_vault_address: PubkeyImplementations§
Source§impl PfBondingCurve
impl PfBondingCurve
Sourcepub fn from_account_info(token_address: Pubkey, account_buffer: &[u8]) -> Self
pub fn from_account_info(token_address: Pubkey, account_buffer: &[u8]) -> Self
This function takes in the TOKEN ADDRESS that the bonding curve is for, as well as the raw bonding curve data. When you call the this function, fetch the data for the derived bonding curve address from the token address using derive_bonding_curve.
USAGE:
let token_address = Pubkey::from_str_const("ERHiB4WJQX1WQXc88hXXcie3uCStYH5Uzz3MPJW4rwKe");
let bonding_curve_address = derive_bonding_curve(&token_address);
let pf_bonding_curve = PfBondingCurve::from_account_info(
token_address,
&context
.json_rpc_client
.get_account(&bonding_curve_address)
.unwrap()
.data,
);
println!("{:?}", pf_bonding_curve);Trait Implementations§
Source§impl Debug for PfBondingCurve
impl Debug for PfBondingCurve
Source§impl PoolTrait for PfBondingCurve
impl PoolTrait for PfBondingCurve
Source§fn token_a_amount_units(&self) -> u64
fn token_a_amount_units(&self) -> u64
This will get real token reserves metric
Source§fn token_b_amount_units(&self) -> u64
fn token_b_amount_units(&self) -> u64
This will get real sol reserves metric
Source§fn pool_address(&self) -> &Pubkey
fn pool_address(&self) -> &Pubkey
Get the pool’s on-chain address
Source§fn token_a_address(&self) -> &Pubkey
fn token_a_address(&self) -> &Pubkey
Get the address of token A
Source§fn token_b_address(&self) -> &Pubkey
fn token_b_address(&self) -> &Pubkey
Get the address of token B
Source§fn token_a_vault_address(&self) -> &Pubkey
fn token_a_vault_address(&self) -> &Pubkey
Get the vault address for token A
Source§fn token_b_vault_address(&self) -> &Pubkey
fn token_b_vault_address(&self) -> &Pubkey
Get the vault address for token B
Source§fn total_swap_fee_lp(&self, _: &Arc<CentralContext>) -> u64
fn total_swap_fee_lp(&self, _: &Arc<CentralContext>) -> u64
Get the total swap fee in lamports (10^9 lamports = 1 SOL)
Source§fn as_any_mut(&mut self) -> &mut dyn Any
fn as_any_mut(&mut self) -> &mut dyn Any
Get a mutable reference to the pool as
Any for type downcastingSource§fn price_a_over_b_lp(&self) -> u128
fn price_a_over_b_lp(&self) -> u128
Calculate the price of token A in terms of token B. Fx ticker equivalent: B/A. Returns how
many units of token A are needed to buy 1 unit of token B, in lamports. For AMMs, typically
calculated as: (A reserves * LAMPORTS_PER_SOL) / B reserves
Source§fn price_b_over_a_lp(&self) -> u128
fn price_b_over_a_lp(&self) -> u128
Calculate the price of token B in terms of token A. Fx ticker equivalent: A/B. Returns how
many units of token A are needed to buy 1 unit of token B, in lamports. For AMMs, typically
calculated as: (B reserves * LAMPORTS_PER_SOL) / A reserves. Inverse of
price_a_over_b_lp.Source§fn fetch_market_state_from_rpc(&mut self, central_context: &Arc<CentralContext>)
fn fetch_market_state_from_rpc(&mut self, central_context: &Arc<CentralContext>)
Fetch and update pool state from JSON RPC and immediately overrides the in-memory pool state.
Should not be used in production in favor of using gRPC streams.
Source§fn directional_fees(
&self,
_: SwapDirection,
__: &Arc<CentralContext>,
) -> (f64, f64)
fn directional_fees( &self, _: SwapDirection, __: &Arc<CentralContext>, ) -> (f64, f64)
Get directional swap fees as fractions for a given swap direction Read more
Auto Trait Implementations§
impl Freeze for PfBondingCurve
impl RefUnwindSafe for PfBondingCurve
impl Send for PfBondingCurve
impl Sync for PfBondingCurve
impl Unpin for PfBondingCurve
impl UnwindSafe for PfBondingCurve
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more