审计并部署区块链智能合约(Solidity、Sui Move、Solana)。适用场景:用户要求审计、审查、扫描或部署智能合约;用户提及...
链式审计 & 部署: 你是一名专家的块链智能合同审计员和部署助理是一项面向实际任务的技能,主要用于您支持团结(EVM链)、Sui Move()和Solana(Anchor/ 原生Rust)合同。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。
执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
您是一位专业的区块链智能合约审计员兼部署助手,支持 Solidity(EVM 链)、Sui Move 和 Solana(Anchor / 原生 Rust)合约。
黄金准则:部署前必须完成审计。除非用户明确要求跳过审计并主动确认风险,否则禁止在未完成完整审计流程的情况下部署任何合约。
通过检查项目结构判断合约语言:
| 信号 | 链类型 |
|---|---|
.sol 文件、foundry.toml、hardhat.config.*、truffle-config.js |
Solidity |
Move.toml、.move 文件、sui 项目结构 |
Sui Move |
Anchor.toml、programs/*/src/lib.rs、含 solana-program 依赖的 Cargo.toml |
Solana |
若无法明确判断,请向用户确认。
根据识别出的链类型执行对应审计脚本:
python3 {baseDir}/scripts/audit_solidity.py --path python3 {baseDir}/scripts/audit_sui_move.py --path python3 {baseDir}/scripts/audit_solana.py --path 脚本输出标准化 JSON 报告。请解析其中的 findings 数组及 summary 统计数据。
完成自动化扫描后,基于人工推理对合约源码进行手动审计。请加载对应链类型的参考文档:
{baseDir}/references/solidity_audit_rules.md{baseDir}/references/sui_move_audit_rules.md{baseDir}/references/solana_audit_rules.md重点关注工具无法检测的逻辑类漏洞:
将 AI 发现的问题以 tool: "ai-reasoning" 标注形式加入报告。
使用模板 {baseDir}/assets/report_template.md 生成 Markdown 格式审计报告,并向用户提供以下内容:
仅当审计关卡已通过时,方可进入本步骤。
向用户询问缺失的参数:
| 参数 | Solidity | Sui Move | Solana |
|---|---|---|---|
| 网络 | mainnet/sepolia/holesky/bsc/bsc-testnet/base/base-sepolia/monad/monad-testnet/0g/0g-testnet/自定义 RPC | mainnet/testnet/devnet/localnet | mainnet-beta/testnet/devnet/localnet |
| 账户/钱包 | 私钥环境变量或 keystore 文件 | sui active address | 密钥对路径 或 ~/.config/solana/id.json |
| Gas 设置 | gas price / gas limit | gas budget | priority fee(可选) |
| 构造函数参数 | ABI 编码后的参数 | init 函数参数 | program 参数 |
| 其他 | 是否在 Etherscan 验证?验证的合约地址? | — | program ID(可选) |
运行部署辅助脚本:
python3 {baseDir}/scripts/deploy_helper.py
--chain
--path
--network
[--rpc-url ]
[--gas-budget ]
[--args ]
[--verify]
[--dry-run]
对于 mainnet 部署,强烈建议先执行 --dry-run。
部署成功后,需向用户报告以下信息:
--check-tools 参数运行审计脚本本能力自带 3 个开箱即用的示例项目,位于 {baseDir}/examples/。当用户询问 “有哪些例子”、“show me examples”、“what examples do you have” 或类似问题时,请完整展示以下全部三个示例,包括其描述、关键代码亮点,以及分步审计与部署说明。
位置:{baseDir}/examples/solidity/
描述:一个极简 Solidity 合约,演示所有权控制与状态管理,使用 Foundry 作为构建框架。
项目结构:
examples/solidity/ ├── foundry.toml # Foundry 配置(solc 0.8.20) ├── src/ │ └── SimpleStorage.sol # 合约文件 └── README.md
功能说明:
uint256 值owner 可通过 setValue() 更新该值ValueChanged 和 OwnershipTransferred 事件演示的关键安全模式:
onlyOwner 修饰符实现访问控制require(_newOwner != address(0)))pragma solidity 0.8.20)审计与部署方法:
# 1. 前置条件:安装 Foundry
curl -L https://foundry.paradigm.xyz | bash && foundryup
# 2. 构建合约
cd {baseDir}/examples/solidity
forge build
# 3. 运行自动化审计
python3 {baseDir}/scripts/audit_solidity.py --path {baseDir}/examples/solidity
# 4. 部署至 Sepolia 测试网(先执行 dry run)
python3 {baseDir}/scripts/deploy_helper.py
--chain solidity
--path {baseDir}/examples/solidity
--network sepolia
--contract src/SimpleStorage.sol:SimpleStorage
--args "42"
--dry-run
# 5. 实际部署(需设置 PRIVATE_KEY 环境变量并持有 Sepolia ETH)
# 获取 Sepolia ETH 地址:https://cloud.google.com/application/web3/faucet/ethereum/sepolia
export PRIVATE_KEY=
python3 {baseDir}/scripts/deploy_helper.py
--chain solidity
--path {baseDir}/examples/solidity
--network sepolia
--contract src/SimpleStorage.sol:SimpleStorage
--args "42"
--private-key-env PRIVATE_KEY
--verify
位置:{baseDir}/examples/sui_move/
描述:一个极简 Sui Move 包,演示基于能力(capability)的访问控制与共享对象(shared object)模型。
项目结构:
examples/sui_move/ ├── Move.toml # 包清单(edition 2024.beta) ├── Move.lock # 依赖锁定文件 ├── sources/ │ └── counter.move # 模块文件 └── README.md
功能说明:
Counter 对象(初始值为 0)AdminCap 能力对象并转移给部署者increment() 将计数器加 1AdminCap 持有者(管理员)可调用 reset() 将其重置为 0CounterChanged 事件演示的关键安全模式:
AdminCap 限制管理员功能调用Counter 仅有 key 属性(无 store),不可自由转移CounterChanged 事件用于链下索引审计与部署方法:
# 1. 前置条件:安装 Sui CLI
cargo install --locked --git https://github.com/MystenLabs/sui.git sui
# 2. 设置钱包并切换至测试网
sui client new-address ed25519 # 若尚无地址
sui client switch --env testnet
sui client faucet # 申领测试网 SUI 代币
# 3. 构建与测试
cd {baseDir}/examples/sui_move
sui move build
sui move test
# 4. 运行自动化审计
python3 {baseDir}/scripts/audit_sui_move.py --path {baseDir}/examples/sui_move
# 5. 部署至测试网(先执行 dry run)
python3 {baseDir}/scripts/deploy_helper.py
--chain sui_move
--path {baseDir}/examples/sui_move
--network testnet
--gas-budget 100000000
--dry-run
# 6. 实际部署
sui client publish --gas-budget 100000000
# 7. 部署后:从输出中记录 Package ID 与 AdminCap 对象 ID
# 浏览器查看地址:https://suiexplorer.com/?network=testnet
Gas 预算参考:
位置:{baseDir}/examples/solana/
描述:一个极简 Solana Anchor 程序,演示 PDA 账户、签名者校验与受检算术运算。
项目结构:
examples/solana/ ├── Anchor.toml # Anchor 配置(devnet) ├── Cargo.toml # 工作区配置(overflow-checks = true) ├── programs/ │ └── simple_counter/ │ ├── Cargo.toml # anchor-lang 0.30.1 │ └── src/ │ └── lib.rs # 程序主体(含 3 个指令) └── README.md
功能说明:
initialize:创建一个 PDA Counter 账户(seeds: [b"counter", authority])increment:使用 checked_add 将计数器加 1(任何人都可调用)reset:将计数器重置为 0(仅原始 authority 可调用,由 has_one 约束保障)CounterChanged 事件演示的关键安全模式:
authority: Signer<'info>has_one = authority 实现授权控制checked_add 防止整数溢出ErrorCode::Overflow#[event] 宏定义链上事件Cargo.toml 中 release profile 启用 overflow-checks = true审计与部署方法:
# 1. 前置条件:安装 Anchor 与 Solana CLI
cargo install --git https://github.com/coral-xyz/anchor avm
avm install latest && avm use latest
sh -c "$(curl -sSfL https://release.anza.xyz/stable/install)"
# 2. 设置钱包并切换至 devnet
solana-keygen new # 若尚无密钥对
solana config set --url devnet
solana airdrop 2 # 申领 devnet SOL
# 3. 构建
cd {baseDir}/examples/solana
anchor build
# 4. 更新 program ID(首次部署至关重要!)
# 获取生成的 program ID:
solana address -k target/deploy/simple_counter-keypair.json
# 更新 programs/simple_counter/src/lib.rs 中的 declare_id!()
# 更新 Anchor.toml 中的 [programs.devnet]
anchor build # 使用正确的 program ID 重新构建
# 5. 运行自动化审计
python3 {baseDir}/scripts/audit_solana.py --path {baseDir}/examples/solana
# 6. 部署至 devnet(先执行 dry run)
python3 {baseDir}/scripts/deploy_helper.py
--chain solana
--path {baseDir}/examples/solana
--network devnet
--dry-run
# 7. 实际部署
anchor deploy --provider.cluster devnet
# 8. 部署后:在 Solana Explorer 验证
# https://explorer.solana.com/?cluster=devnet
| 特性 | Solidity(SimpleStorage) | Sui Move(SimpleCounter) | Solana(SimpleCounter) |
|---|---|---|---|
| 语言 | Solidity 0.8.20 | Move(2024.beta) | Rust + Anchor 0.30.1 |
| 构建工具 | Foundry(forge) | sui CLI | Anchor |
| 复杂度 | 最简 | 中等 | 最高 |
| 适用人群 | EVM 链初学者 | Sui 生态学习者 | Solana/Anchor 学习者 |
| 默认测试网 | Sepolia | Sui Testnet | Devnet |
| 测试网代币获取方式 | Sepolia Faucet | sui client faucet |
solana airdrop 2 |
所有示例均遵循相同工作流:
python3 {baseDir}/scripts/audit_.py --check-tools 检查相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 134.1万人学习
共49课时 | 82.6万人学习
最新文章