用途
该技能用于区块链与 Web3 开发,覆盖 Solidity 智能合约、Web3 开发、DeFi 协议、NFT、EVM 链、Hardhat/Foundry 工具链以及区块链安全。当需要编写智能合约、构建 dApp、审计合约安全或集成 Web3 钱包时使用。
主要能力
智能合约开发(Solidity)
提供合约结构示例,包含 SPDX 许可证声明、pragma 版本、OpenZeppelin 的 ERC20 与 Ownable 导入,以及构造函数中铸造代币的写法。
安全模式包括:
- Checks-Effects-Interactions:先验证、再更新状态、最后进行外部调用
- 重入防护:使用 OpenZeppelin 的 ReentrancyGuard 或 nonReentrant
- 访问控制:Ownable、AccessControl 或自定义修饰器
- 整数安全:Solidity 0.8+ 内置溢出检查
- Pull over push:让用户自行提取资金,而非主动发送
常见漏洞与防范对照:
- 重入:使用 nonReentrant 修饰器与 CEI 模式
- 抢跑:提交-揭示方案、flashbot 保护
- 预言机操纵:使用 Chainlink、TWAP 而非现货价格
- 未检查返回值:始终检查 transfer() 返回值或使用 safeTransfer
- delegatecall 注入:绝不 delegatecall 到用户提供的地址
开发工具链
Hardhat 常用命令:
npx hardhat init
npx hardhat compile
npx hardhat test
npx hardhat deploy --network sepolia
Foundry 常用命令:
forge init
forge build
forge test -vvv
forge script script/Deploy.s.sol --rpc-url $RPC --broadcast
前端集成(ethers.js v6 / viem)
提供 viem 示例(推荐用于新项目),包括 createPublicClient、http、mainnet 链配置以及 getBalance 调用;同时提供 wagmi 的 React hooks 示例,如 useAccount、useBalance、useContractWrite。
DeFi 模式
- AMM:恒定乘积公式(x * y = k)、集中流动性
- 借贷:超额抵押贷款、清算机制、利率模型
- 质押:使用 rewardPerToken 累加器模式进行奖励分配
- 治理:代币加权投票、时间锁控制器、提案生命周期
Gas 优化
- 只读参数使用 calldata 而非 memory
- 打包结构体(将较小类型放在一起以提升槽位效率)
- 对安全算术使用 unchecked 块
- 尽量减少存储读写(在内存中缓存)
- 对无需链上访问的数据使用事件而非存储
使用方式
资料未提供该技能的具体安装或调用步骤,仅提供上述开发命令与代码示例。
适用场景
编写智能合约、构建 dApp、审计合约安全、集成 Web3 钱包。
限制
资料未提供该技能的收费、价格、平台支持范围或效果说明。