Solana 文档开发程序
Solana 程序示例 GitHub 仓库提供了多个子文件夹,每个文件夹包含代码示例,帮助开发者学习和尝试 Solana 区块链开发。
你可以在 solana-developers/program-examples
中找到示例,并配有 README 文件,说明如何运行不同的示例。大多数示例都是自包含的,并且同时提供原生 Rust(即无框架)和 Anchor 版本。
在该仓库中,您将找到以下子文件夹,每个文件夹中包含各种示例程序:
还有生态系统程序示例
基础
包含一系列示例,演示使用原生 Rust 库构建 Solana 程序的基础步骤。这些示例旨在帮助开发者理解 Solana 编程的核心概念。
| 示例名称 | 描述 | 语言 |
|---|---|---|
| Account Data | 在账户中保存包含姓名、门牌号、街道和城市的地址。 | Native, Anchor |
| Checking Accounts | 演示如何进行账户检查的安全课程。 | Native, Anchor |
| Close Account | 演示如何关闭账户以取回其 rent。 | Native, Anchor |
| Counter | 在所有不同架构中实现的简单计数器程序。 | Native, Anchor, mpl-stack |
| Create Account | 如何在程序内创建系统账户。 | Native, Anchor |
| Cross Program Invocation | 通过手与杠杆的类比,演示如何在程序内调用另一个程序。 | Native, Anchor |
| hello solana | Hello world 示例,在交易日志中打印 hello world。 | Native, Anchor |
| Pda Rent payer | 演示如何使用 PDA 中的 lamport 为新账户支付费用。 | Native, Anchor |
| Processing Instructions | 演示如何处理 instruction data 字符串和 u32。 | Native, Anchor |
| Program Derived Addresses | 演示如何使用种子引用 PDA 并在其中保存数据。 | Native, Anchor |
| Realloc | 演示如何增加或减少现有账户的大小。 | Native, Anchor |
| Rent | 学习如何在程序中计算 rent 要求。 | Native, Anchor |
| Repository Layout | 关于如何组织程序布局的建议。 | Native, Anchor |
| Transfer SOL | 针对系统账户和 PDA 转账 SOL 的不同方法。 | Native, Anchor, Seahorse |
代币
Solana 上的大多数代币使用 Solana Program Library (SPL) 代币标准。在这里,您可以找到许多关于如何铸造、转移、销毁代币,以及如何在程序中与其交互的示例。
| 示例名称 | 描述 | 语言 |
|---|---|---|
| 创建代币 | 如何创建代币并为其添加 metaplex 元数据。 | Anchor, Native |
| NFT 铸造器 | 仅铸造一定数量的代币,然后移除铸造权限。 | Anchor, Native |
| PDA 铸造权限 | 展示如何更改铸造的铸造权限,以便在程序内部铸造代币。 | Anchor, Native |
| SPL 代币铸造器 | 解释如何使用 Associated Token Accounts 来追踪 token account。 | Anchor, Native |
| 代币兑换 | 详细示例,展示如何为 SPL 代币构建 AMM(自动做市商)资金池。 | Anchor |
| 转移代币 | 展示如何通过 CPI 调用 token program 来转移 SPL 代币。 | Anchor, Native |
| Token-2022 | 参见 Token 2022(Token extensions)。 | Anchor, Native |
Token Extensions(Token 2022)
Token 2022 是 Solana 上代币的新标准。它更加灵活,允许您为代币铸造添加多达 16 种不同的 Token Extensions,从而扩展其功能。完整的扩展列表可在 入门指南中找到。
| 示例名称 | 描述 | 语言 |
|---|---|---|
| 基础 | 如何创建代币、铸造并转移它。 | Anchor |
| 默认账户状态 | 此扩展允许您以特定状态创建 token account,例如冻结状态。 | Anchor, Native |
| 铸造关闭权限 | 使用旧版 Token Program 无法关闭铸造,现在可以了。 | Anchor, Native |
| 多重扩展 | 展示如何为单个铸造添加多个 Token Extensions。 | Native |
| NFT 元数据指针 | 可以使用元数据扩展来创建 NFT 并添加动态链上元数据。 | Anchor |
| 不可转移 | 适用于成就系统、推荐计划或任何灵魂绑定代币等场景。 | Anchor, Native |
| 转账费 | 每次代币转账时,会在 token account 中保留一部分代币,随后可进行归集。 | Anchor, Native |
| 转账钩子 | 四个示例,展示如何通过从 Token Program 向您的程序发起 CPI 来为代币添加额外功能。 | Anchor |
生态系统 Solana 程序示例
第三方通常维护自己的 Solana 示例程序库。这些库由提供商维护,而非由 Solana Foundation 维护。
- Quicknode 的 Solana 程序示例 提供了更多程序,特别适用于金融软件,支持较新的 Anchor 版本和 Quasar 框架。
Is this page helpful?