evm-deployment
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseOverview
概述
End-to-end deployment workflow for Sablier EVM contracts. Supports Comptroller, Flow, Lockup, and Airdrops with
protocol-specific adaptations.
Sablier EVM合约的端到端部署工作流。支持Comptroller、Flow、Lockup和Airdrops,并针对各协议进行了适配。
Prerequisites
前提条件
Version Check
版本检查
Before proceeding, verify Foundry version:
bash
forge -VStop if version is below 1.3.6.
开始之前,请验证Foundry版本:
bash
forge -V如果版本低于1.3.6,请停止操作。
Protocol Detection
协议检测
Detect the current EVM protocol from :
package.json| Package Name | Protocol | SDK Path |
|---|---|---|
| Comptroller | |
| Flow | |
| Lockup | |
| Airdrops | |
Extract version from → → SDK version is
package.json"version": "x.y.z"v<x.y>从中检测当前的EVM协议:
package.json| 包名称 | 协议名称 | SDK路径 |
|---|---|---|
| Comptroller | |
| Flow | |
| Lockup | |
| Airdrops | |
从中提取版本 → → SDK版本为
package.json"version": "x.y.z"v<x.y>Workflow
工作流
Execute steps in order, tracking state between each:
按顺序执行以下步骤,并在各步骤之间跟踪状态:
Step 1: Deploy Contracts
步骤1:部署合约
Reference: | Examples:
./references/deploy.md./references/examples.mdDeploy protocol contracts using Foundry. Handles:
- RPC configuration
- Deterministic (CREATE2) vs non-deterministic (CREATE) deployment
- Contract verification on block explorer
参考文档: | 示例:
./references/deploy.md./references/examples.md使用Foundry部署协议合约。可处理以下内容:
- RPC配置
- 确定性(CREATE2)与非确定性(CREATE)部署
- 在区块链浏览器上验证合约
Step 2: Update SDK (optional)
步骤2:更新SDK(可选)
Reference:
./references/copy-to-sdk.mdCopy broadcast artifacts to SDK repository:
- Broadcast JSON file
- Update README.md with deployment info
- Update deployments.ts with contract addresses
参考文档:
./references/copy-to-sdk.md将广播工件复制到SDK仓库:
- 广播JSON文件
- 更新README.md中的部署信息
- 更新deployments.ts中的合约地址
Step 3: Create Test Data (optional)
步骤3:创建测试数据(可选)
Reference:
./references/deploy-streams.mdFor Flow and Lockup protocols only. Creates sample streams for testing:
- Mint or verify ERC20 token balance
- Run Init.s.sol script to create test streams
参考文档:
./references/deploy-streams.md仅适用于Flow和Lockup协议。创建用于测试的样本流:
- 铸造或验证ERC20代币余额
- 运行Init.s.sol脚本以创建测试流
State Tracking
状态跟踪
Track and carry forward between steps:
| State | Source |
|---|---|
| Protocol name | Detected from |
| Chain ID | From deployment or user input |
| Chain name | Lowercase (e.g., |
| Deployment type | |
| Contract addresses | From broadcast JSON |
| Block number | From deployment receipt (hex → decimal) |
| SDK version | From |
在各步骤之间跟踪并传递以下状态:
| 状态项 | 来源 |
|---|---|
| 协议名称 | 从 |
| 链ID | 来自部署或用户输入 |
| 链名称 | 小写格式(例如: |
| 部署类型 | |
| 合约地址 | 来自广播JSON的 |
| 区块编号 | 来自部署收据(十六进制转十进制) |
| SDK版本 | 来自 |
Protocol-Specific Scripts
协议专属脚本
| Protocol | Deterministic Script | Non-deterministic Script |
|---|---|---|
| Comptroller | | |
| Flow | | |
| Lockup | | |
| Airdrops | | |
| 协议名称 | 确定性部署脚本 | 非确定性部署脚本 |
|---|---|---|
| Comptroller | | |
| Flow | | |
| Lockup | | |
| Airdrops | | |
Output Summary
输出摘要
After completion, provide:
- Protocol deployed
- Chain and deployment type
- Contract addresses (factories + campaigns if applicable)
- Verification status
- SDK files updated (if applicable)
- Test data created (if applicable)
完成后,提供以下内容:
- 已部署的协议
- 链名称与部署类型
- 合约地址(工厂及适用的活动合约)
- 验证状态
- 已更新的SDK文件(如适用)
- 已创建的测试数据(如适用)
Airdrops Campaign Contracts
Airdrops活动合约
When deploying Airdrops test data, campaigns are created via factory:
| Factory | Campaign Contract |
|---|---|
| |
| |
| |
| |
Campaign addresses are returned in broadcast field, not .
returnscontractAddress部署Airdrops测试数据时,将通过工厂创建活动合约:
| 工厂合约 | 活动合约名称 |
|---|---|
| |
| |
| |
| |
活动合约地址将在广播的字段中返回,而非字段。
returnscontractAddress