在本地运行项目
各目录有独立依赖。使用仓库锁文件,保持合约、ABI、清单和客户端版本一致。
以下命令在本地构建或验证组件,不构成生产发布流程。
前置要求
项目使用近期 Node.js,dapp 和服务使用 pnpm,Solidity 使用 Foundry,本 GitBook 使用 npm。服务要求 Node 22 或以上;GitBook 使用 Node 24 准备。
合约固定 Solidity 0.8.26、Cancun EVM、via IR、优化器 10 runs,无 CBOR 元数据。这些参数属于待核查字节码身份的一部分。
克隆后,须具备仓库 Solidity 依赖:
git submodule update --init --recursive
编译与测试合约
在 contracts/ 中:
forge build --sizes
forge test
配置包含多个模糊测试与不变量级别:
FOUNDRY_PROFILE=ci forge test
FOUNDRY_PROFILE=gate forge test
Gate 配置有意运行很久。测试结果应附精确修订、参数与编译源码。新多买墙实现仍在验证;旧日志不是此版本运行这些命令的结果。
启动 dapp
在 dapp/ 中:
pnpm install --frozen-lockfile
pnpm typecheck
pnpm test
pnpm build
pnpm dev
Vite 显示开发 URL。配置区分模拟模式与配置部署的数据。依仓库示例和说明本地设置 RPC,不要把访问凭证写入源码或公开包。
前端编译成功不证明其清单与网络合约一致。
维护 ABI
在 contracts/ 中,编译后导出:
bash scripts/export-abi.sh
python3 scripts/check-abi.py
Dapp 提供 pnpm gen-abi,服务提供 pnpm gen:abi。检查生成的接口、事件及类型更改。发布同步必须包括新买墙库及 ID 视图。
Dapp 的 pnpm sync-deployment 重读部署清单,只应针对真正验证版本的元数据执行。
检查服务
在 services/ 中:
pnpm install --frozen-lockfile
pnpm gen:abi
pnpm typecheck
pnpm test
Keeper 的 dry-run 按 README 所述本地参数配置。运维与交易恢复见专页。
启动本 GitBook
在 gitbook/ 中:
npm ci
npm run dev
网站在 http://localhost:4000 提供并重建页面。生成静态 _book/ 并检查链接:
npm run build
npm run preview
本地预览使用 http://localhost:4001。字体内嵌,搜索在浏览器使用书籍索引执行。
验证文档浏览器流程:
npm run test:install
npm run test:browser
gitbook/ README介绍 HonKit 选择、目录结构、检查与编辑维护。
来源: contracts/foundry.toml、仓库脚本、 dapp/package.json, services/package.json 以及 gitbook/package.json。构建本文档不需要密钥或带认证的 RPC URL。