用途:为 Sablier EVM 合约提供端到端部署工作流,支持 Utils、Flow、Lockup、Airdrops 和 Bob,并针对各协议做适配。
前置条件:先检查 Foundry 版本,运行 forge -V,若低于 1.3.6 则停止。随后从 package.json 检测当前 EVM 协议:@sablier/evm-utils 对应 Utils,@sablier/flow 对应 Flow,@sablier/lockup 对应 Lockup,@sablier/airdrops 对应 Airdrops,@sablier/bob 对应 Bob;SDK 路径分别为 ../sdk/deployments/comptroller、flow、lockup、airdrops、bob。从 package.json 的 version 字段提取版本,SDK 版本取 v<x.y>。
工作流按顺序执行并跟踪状态。第一步部署合约,参考 ./references/deploy.md,示例见 ./references/examples.md,使用 Foundry 处理 RPC 配置、确定性(CREATE2)与非确定性(CREATE)部署、区块浏览器合约验证。第二步可选更新 SDK,参考 ./references/copy-to-sdk.md,复制 broadcast 产物到 SDK 仓库,更新 README.md 与 deployments.ts。第三步可选初始设置,参考 ./references/init-setup.md,铸造或校验 ERC20 余额,运行 Init.s.sol 创建测试流。
需在步骤间传递的状态包括:协议名、链 ID、链名(小写,如 ethereum、arbitrum)、部署类型、合约地址(来自 broadcast JSON 的 returns 字段)、区块号(十六进制转十进制)、SDK 版本。
各协议脚本:Utils 用 DeployDeterministicComptrollerProxy.s.sol / DeployComptrollerProxy.s.sol 及 DeployDeterministicERC20Faucet.s.sol / DeployERC20Faucet.s.sol;Flow 与 Lockup 用 DeployDeterministicProtocol.s.sol / DeployProtocol.s.sol;Airdrops 用 DeployDeterministicFactories.s.sol / DeployFactories.s.sol;Bob 用 DeployDeterministicBob.s.sol / DeployBob.s.sol 及 DeployDeterministicEscrow.s.sol / DeployEscrow.s.sol。
完成后输出:部署的协议、链与部署类型、合约地址(工厂及活动)、验证状态、更新的 SDK 文件、创建的测试数据。Airdrops 测试数据通过工厂创建活动,活动地址在 broadcast 的 returns 字段而非 contractAddress。限制:资料未提供更多错误处理、费用或平台细节。