该技能基于 Anchor(Solana 程序框架)整理,用于辅助实现或审查 Anchor 程序。Anchor 是 Solana 程序框架,提供带宏的 Rust eDSL(declare_id、#[program]、#[derive(Accounts)]、#[account])、IDL 生成、TypeScript/Rust 客户端以及用于构建、测试和部署的 CLI。
用途:在编写或审查 Anchor 程序、CPI、账户校验和客户端集成时参考。
主要内容按主题组织。核心参考包括:程序结构(declare_id、#[program]、#[derive(Accounts)]、#[account]、Context、discriminators)、CPI(跨程序调用、CpiContext、PDA 签名者、invoke/invoke_signed)、IDL(指令/账户/discriminators 及客户端使用)、PDA(种子、bump、seeds::program、init、IDL 解析)、工作区(init、new、程序布局、构建/测试/部署流程)、Realloc(调整账户大小、realloc::payer、realloc::zero)、关闭账户(close = target、租金回收)、剩余账户(ctx.remaining_accounts、可变参指令、CPI)。
程序与配置参考包括:账户类型(Account、Signer、Program、AccountLoader、UncheckedAccount 等)、账户约束(init、mut、seeds/bump、has_one、close、realloc、SPL、#[instruction])、Anchor.toml(provider、scripts、workspace、programs、test、toolchain、hooks)、CLI(build、deploy、test、idl、keys、migrate、upgrade、verify)、Space(账户大小计算、InitSpace、类型大小)、类型转换(Rust 与 TypeScript 类型映射)。
特性包括:事件(emit!、emit_cpi!、addEventListener、解码)、错误(#[error_code]、err!、require! 及变体)、零拷贝(AccountLoader、load_init/load_mut/load、init 与 zero)、declare_program!(基于 IDL 的 CPI 与 Rust 客户端生成)、SPL 代币(anchor-spl、mints、代币账户、ATA、Token 2022、InterfaceAccount)、Token 2022 扩展、示例程序、测试(Mollusk、LiteSVM)、升级与迁移(anchor upgrade、migrate 脚本、升级权限)。客户端包含 TypeScript 与 Rust。最佳实践涵盖安全与约束校验;高级主题包括可验证构建(anchor build --verifiable、verify、Docker)与 AVM(Anchor 版本管理器,含 install、use、list)。
使用方式:按上述主题检索对应参考文档,在实际编写或审查时应用。
限制:资料为基于文档的整理,具体版本行为、平台支持与价格等信息暂未提供;所有命令与代码应保持原样使用。