# 链上ETF研发日志 #4:合约部署完成 **Published by:** [Keegan小钢](https://paragraph.com/@keeganlee/) **Published on:** 2025-08-01 **URL:** https://paragraph.com/@keeganlee/etf-4 ## Content 这是我正在开发的链上 ETF 项目「BlockETF」的第四篇研发日志。 前三篇分别是:链上ETF重启Day 1:重新出发,我终于开始写代码了链上ETF研发日志 #2:智能合约开发完毕,测试准备中链上ETF研发日志 #3:合约测试完成我是从 7 月 27 日开始启动这个项目的,今天是第六天。截止撰文之时,合约已经部署到了测试网,意味着整个 DApp 项目的合约部分可以先告一段落了。部署系统:AI 帮我打下了底层这次的部署脚本、配置系统,基本是我把需求扔给了 Claude Code,由它生成一整套脚本,我再按需修改了几处。 现在这套部署系统包括了:一键部署脚本(./scripts/deploy.sh)自动地址管理(JSON + .env)合约验证脚本(Verify.s.sol)网络配置统一管理(NetworkConfig.s.sol)补了一份部署说明文档,主要写给未来的自己看这部分没太花时间,Claude 给出的结构已经很接近我之前习惯的方式了。合约模块小结目前整个 BlockETF 合约系统一共拆成了 6 个模块,各自职责分明。BlockETFCore 主要负责 ETF 的铸造、赎回、总资产估值等核心逻辑。BlockETFRouter 提供给用户操作的入口,封装了使用单一代币投资赎回接口,使用更方便。RebalanceManager 实现了资产再平衡逻辑,支持触发时动态计算目标权重。DEXIntegrator 集成了 PancakeSwap V3,用于资产兑换。PriceOracle 基于 Chainlink PriceFeed 做价格计算,保证估值合理。FeeManager 统一管理赎回费和管理费,可配置上限,防止误设或恶意提取。整体上,我希望每个模块都能独立工作、独立测试,不耦合太多。测试覆盖情况这次测试部分完成得出奇地快,所有测试代码全是 Claude Code 写的,写了 220 多个测试用例,而且覆盖率非常高,包括:核心逻辑流程验证各种边界输入和异常路径跨模块调用的状态一致性检查模拟用户视角的端到端操作流程包括了单测、集成测试和 e2e 模拟用户操作流程,算是把合约部分该测的都测了。安全性方面做的事虽然并没有引入专业审计,但我在开发阶段就加了一些基础安全措施:使用 nonReentrant 防止重入攻击所有敏感操作都加了权限控制铸造/赎回都带滑点限制,防止交易价格被操控所有 fee 参数都设置了 max cap,防止超额提取下一步计划合约部分已经完成,并部署在测试网上。接下来我会开始搭前端,把用户交互的那一部分补上。 不知道 Claude Code 对前端这块能帮我提效多少呢,拭目以待吧。 ## Publication Information - [Keegan小钢](https://paragraph.com/@keeganlee/): Publication homepage - [All Posts](https://paragraph.com/@keeganlee/): More posts from this publication - [RSS Feed](https://api.paragraph.com/blogs/rss/@keeganlee): Subscribe to updates - [Twitter](https://twitter.com/KKeeganLee): Follow on Twitter