JavaScript 不可用。

我们检测到浏览器禁用了 JavaScript。请启用 JavaScript 或改用支持的浏览器来继续访问

Solana 程序相关的教程

作者:Anban Chu

发表日期:2024年12月03日

所属目录:Soalna 网络的应用开发

标签:
Solana 

常见账户类型

  • Account<T>: 用于存储单一类型数据的账户。适用于存储结构化的数据,如用户信息、配置信息等。
      #[account]
      pub struct MyAccount {
          pub data: u64,
          pub owner: Pubkey,
      }
    
  • Signer: 表示一个必须签署交易的账户。用于验证用户身份和权限,如支付账户、权限控制等。
      #[derive(Accounts)]
      pub struct MyContext<'info> {
          #[account(mut)]
          pub user: Signer<'info>,
          // 其他账户...
      }
    
  • Program: 表示一个程序账户。用于引用系统程序或其他依赖的程序。
    #[derive(Accounts)]
    pub struct MyContext<'info> {
        pub system_program: Program<'info, System>,
        // 其他账户...
    }
    

#[derive(Accounts)] 说明:账户属性约束需要注意

#[derive(Accounts)]
pub struct InitializeAccounts<'info> {
    #[account(
        init,                                  // 表示要创建新账户
        seeds = [b"my_seed", user.key().as_ref(),instruction_data.as_ref()],  // 如果是 PDA 则必需
        bump,                                  // 如果是 PDA 则必需
        payer = user,                          // 必需,指定支付账户创建费用
        space = 8 + 8,                         // 必需,指定账户空间大小
    )]
    pub pda_counter: Account<'info, Counter>,
    #[account(mut)]
    pub user: Signer<'info>,
    pub system_program: Program<'info, System>,
}




以上就是本篇文章的全部内容了,希望对你有帮助。

>> 本站不提供评论服务,技术交流请在 Twitter 上找我