我正在用锚框架开发solana的链上程序
但我因堆栈错误而崩溃。
#[derive(Accounts)]
pub struct ClaimNftContext<'info> {
#[account(mut)]
pool: Account<'info, Pool>,
pool_signer: AccountInfo<'info>,
vault: AccountInfo<'info>,
user: Signer<'info>,
mint: Account<'info, Mint>,
#[account(mut)]
nft_from: Account<'info, TokenAccount>,
#[account(mut)]
nft_to: Box<Account<'info, TokenAccount>>,
#[account(mut)]
token_from: Account<'info, TokenAccount>,
#[account(mut)]
token_to: Account<'info, TokenAccount>,
token_program: Program<'info, Token>
}
正如你所看到的,ClaimNftContext中有10个帐户,但如果我删除一个,就不会出错
我认为锚中的堆栈大小是有限的
我该怎么办?
Anchor的堆栈大小有限
那么,是否不可能从上下文中获取超过9个帐户
幸运的是,有一种方法可以减少堆栈
那是盒子
我们可以这样使用:
token_from:Box<AccountInfo<'信息>gt;然后我们可以获得更多的帐户。