23 个版本
0.1.2 | 2024年2月12日 |
---|---|
0.1.1 | 2024年1月25日 |
0.0.25 | 2023年1月9日 |
0.0.23 | 2022年10月14日 |
0.0.8 | 2023年12月1日 |
#2070 在 魔法豆
每月 39 次下载
用于 juper_swap_api
93KB
2K SLoC
juper
juper API 客户端,通过 AnyIx
兼容链上代理 juper 交易。基于 rust-jup-ag
。
crates
juper_swap_api
juper_swap_api
是 mvine 的 rust-jup-ag
的一个重度修改分支,提供异步和阻塞客户端,以及简单的路由缓存。
juper_swap_cpi
警告:不恰当地使用此功能,包括以下示例,将导致可利用的程序。必须谨慎实现,开发人员不对任何使用此功能造成的财务损失承担责任
是 jupiter-cpi 的轻量级版本,旨在与 AnyIx
一起使用。它允许无缝集成 Jupiter 的交易 API 和您的程序,实现通过 Jupiter 路由的保险库复利等功能,以及链上访问控制等。
使用方法
1) 链上程序
在您的链上程序中定义一个函数和一个看起来像以下指令账户对象。
#[derive(Accounts)]
pub struct JupiterSwap<'info> {
/// CHECK: not needed
#[account(signer)]
pub authority: AccountInfo<'info>,
/// CHECK: not needed
///
/// an account that can be used to read various access control settings, etc..
/// this is intended to be used to restrict access to the `jupiter_swap` function
pub management: AccountInfo<'info>,
/// CHECK: not needed
///
/// an account that is used to read values related to ownership of the token accounts
/// etc.. this can be used to validate that the token account owners of the jupiter swap
/// accounts are owned by specific pdas, etc..
pub vault: AccountInfo<'info>,
/// CHECK: not needed
///
/// the actual jupiter program itself
pub jupiter_program: AccountInfo<'info>,
}
/// all accounts required by this instruction except thos listed in `JupiterSwap`
/// are provided via remaining_accounts, use with caution.
pub fn jupiter_swap<'a, 'b, 'c, 'info>(
mut ctx: Context<'a, 'b, 'c, 'info, JupiterSwap<'info>>,
// this must be encoded in the AnyIx format
input_data: Vec<u8>
) -> Result<()> {
juper_swap_cpi::process_instructions(
pda,
&ctx.accounts.jupiter_program,
&mut ctx.remaining_accounts.to_owned(),
&input_data[..],
None,
)?;
Ok(())
}
2) 链下调用
例如,链下指令生成的示例请参见 crates/juper_swap_api
依赖项
~20–32MB
~540K SLoC