#anchor #solana #pyth

pyth-min

Solana上与Pyth拉取预言机的最小SDK

2个版本

0.1.1 2024年6月11日
0.1.0 2024年6月11日

#5 in #pyth

Apache-2.0

29KB
342

这是一个绝对基础的SDK,使用零依赖项,用于消费由Pyth Solana接收器生成的PythV2价格。

用法

将Pyth价格馈送账户作为UncheckedAccount。以下是在主网上的此类账户的示例: https://solana.fm/address/7UVimffxr9ow1uXYxsr4LHAcV58mLzhmwaeKvJ1pjLiE

#[derive(Accounts)]
pub struct Some_Instruction<'info> {
    /// CHECK: You may also want to validate `owner = PYTH_PID`
    pub price_acc: UncheckedAccount<'info>,
}

然后简单地借用数据,减去8字节Anchor区分符

let data = &ctx.accounts.price_acc.try_borrow_data()?[8..];
let price_v2 = PriceUpdateV2::get_price_update_v2_from_bytes(data);

let price = price_v2.get_price_no_older_than(
    &Clock::get()?.unix_timestamp,
    MAXIMUM_AGE, // in seconds
    None, // Pass the feed ID in bytes if you want to validate it
)?;

或者如果你根本不在乎任何验证

price_v2.get_price_unchecked(None)

我们建议你验证区分符(参见DISCRIMINATOR_AS_HEX),除非你绝对确定这是正确的账户!

无运行时依赖