小编Kal*_*ale的帖子

在 Solana Anchor 框架内初始化 PDA 的正确方法

我正在尝试使用 Rust/Anchor 编写一个简单的 Solana 程序,该程序使用 PDA,但当我尝试调用它时,我收到 CPI 错误,即使没有发生 CPI(可能是 PDA 帐户初始化?)。

这是程序代码:

use anchor_lang::prelude::*;

declare_id!("51v31qHaEQniLoYuvvtXByZcfiyvog3R2EKC39EPD52p");

#[program]
pub mod solana_sandbox {
  use super::*;
  pub fn initialize(ctx: Context<Initialize>, bump: u8) -> ProgramResult {
    ctx.accounts.sandbox_account.bump = bump;
    Ok(())
  }
}

#[derive(Accounts)]
#[instruction(bump: u8)]
pub struct Initialize<'info> {
  #[account(mut)]
  pub signer: Signer<'info>,
  #[account(
    init,
    seeds = [b"seed".as_ref()],
    bump,
    payer = signer,
  )]
  pub sandbox_account: Account<'info, SandboxAccount>,
  pub system_program: Program<'info, System>,
}

#[account]
#[derive(Default)]
pub struct SandboxAccount {
  pub bump: u8,
}
Run Code Online (Sandbox Code Playgroud)

这是客户端代码:

  const [sandboxPda, …
Run Code Online (Sandbox Code Playgroud)

anchor rust typescript blockchain solana

9
推荐指数
1
解决办法
4002
查看次数

标签 统计

anchor ×1

blockchain ×1

rust ×1

solana ×1

typescript ×1