名称: 构建智能合约 描述: 使用 Algorand TypeScript (PuyaTs) 或 Algorand Python (PuyaPy) 构建 Algorand 智能合约。适用于从头创建新的智能合约、为现有合约添加功能或方法、理解 Algorand 合约开发模式,或获取合约架构指导。强触发词包括“创建智能合约”、“编写一个合约…”、“构建投票合约”、“实现 NFT 合约”、“为合约添加方法”。
构建智能合约
使用 Algorand TypeScript 或 Algorand Python 创建现代化的 Algorand 智能合约——这些是静态类型的子集,通过 Puya 编译器编译为 TEAL 字节码。
概述 / 核心工作流
- 在 Algorand 文档中搜索概念和最佳实践
- 从优先代码库中检索规范示例
- 生成代码,将示例适配到需求
- 包含使用生成客户端的集成测试
- 使用 AlgoKit 命令进行构建和测试
如何操作
-
首先搜索文档:
- 使用
kapa_search_algorand_knowledge_sourcesMCP 工具获取概念指导 - 如果 MCP 不可用,使用网络搜索:“site:dev.algorand.co {概念}”
- 如果没有结果,请谨慎使用已知模式
- 使用
-
检索规范示例:
- 优先级 1:
algorandfoundation/devportal-code-examples - 优先级 2:
algorandfoundation/puya-ts(examples/) - 优先级 3:
algorandfoundation/algokit-typescript-template - 始终包含相应的测试文件
- 优先级 1:
-
生成代码:
- 除非用户明确要求 Python,否则默认使用 TypeScript
- 仔细适配示例,保留安全检查
- 遵循
algorand-typescript技能中的语法规则
-
包含测试:
- 始终包含或建议集成测试
- 使用生成的客户端测试合约
- 查看
test-smart-contracts技能了解模式
-
构建和测试:
algokit project run build # 编译合约 algokit project run test # 运行测试
重要规则 / 指南
- 绝不使用 PyTEAL 或 Beaker —— 这些是遗留技术,已被 Puya 取代
- 绝不编写原始 TEAL —— 始终使用 Algorand TypeScript/Python
- 绝不将外部库导入 合约代码
- 默认使用 TypeScript,除非用户明确要求 Python
- 在编写代码前始终先搜索文档
- 始终从优先代码库检索示例
常见变体 / 边缘情况
| 场景 | 方法 |
|---|---|
| Box 存储模式 | 查看 devportal-code-examples/contracts/BoxStorage/ |
| 内部交易 | 在 puya-ts 示例中搜索 “itxn” 模式 |
| ARC-4 方法 | 参见 puya-ts/examples/hello_world_arc4/ |
| 状态管理 | 在示例中查看 GlobalState、LocalState 模式 |
| Python 合约 | 使用 algorandfoundation/puya 而非 puya-ts |
| Python 语法帮助 | 查阅 references/python/ 子文件夹获取 Python 特定模式 |