Splits 分账配置不符:核对版本、比例、激励和控制者
链小知 · 进阶 · 核验 · 依官方文档整理
从已有 Split 创建/更新记录核对分配规则,定位 owner、暂停和数据读取范围,而不将预测地址或应用角色当合约权限。
开始前准备
- 准备已有去敏 Split 配置、链编号、地址、创建或更新回执、SDK/ABI 版本及记录时间。
- 只整理已有资料;缺值向原集成方补证,不连接钱包、申请 key、部署或运行合约方法。
1. 先区分协议与财务应用
以 splits.org/protocol/docs 的 SplitV2 为入口,对照原记录的网络、splitAddress 和合约版本。当前 splits.org/docs 讲工作区和账户,是另一产品范围。
V1 的 SplitMain 与 V2 的 Warehouse 分开记录;同品牌 App 成员身份不能代替合约 owner。
检查结果:确认原记录属于哪版协议,而非仅有一个 Splits 页面截图。
2. 核对地址是否已有部署依据
保留原创建回执中的 splitAddress、SplitCreated、工厂及 Pull/Push 类型。若只有 predictDeterministicAddress 返回地址,没有部署证明,不标已建分账。
SDK 另有 isDeployed 结果;只看已有结果的 deployed 与取得时刻,未知版本或链不能沿用其它地址的证明。
检查结果:预测地址、部署状态和创建事件分列,缺事件不补成功。
3. 逐收款人检查分配配置
在原 recipients 中逐项核对 address 和 percentAllocation,并保留 totalAllocationPercent 及数据来源。不要把 ENS 名、应用联系人或钱包账户替代实际地址。
将创建和后来更新的配置按时间排列;SDK 显示字段与链上原整数分配参数保留各自单位,不擅自按同一百分比换算。
检查结果:参与者和比例对应同一有效配置,历史版本未混入当前结果。
4. 把分配激励与平台费分开
SDK 的 distributorFeePercent 按百分数表示,文档限定小于10且最多四位小数;它支付给分配者。例示1表示1%,不是1bps,也不是所有记录默认收费。
另外保留原 Gas 与金额单位。协议介绍的无协议费不能免除链上成本;Warehouse 提现激励是另一个字段,缺证据不套同费率。
检查结果:费用字段带来源和单位,分配者、平台、网络成本没有合并。
5. 核对 owner 与暂停的权限层
对照已有 owner(splitAddress) 返回 ownerAddress 和 paused 返回值。可变 Split 的控制者能更新规则、暂停并执行任意调用;收款人身份不自动有这些权限。
原 owner 为零地址的不可变配置不能当作遗失钱包可直接恢复。若原调用拒绝,先核调用者、版本和当时状态,不尝试修改权限。
检查结果:分配权、配置控制权和不可变状态分别有原始依据。
6. 保留索引和方法版本缺口
已有 GraphQL 结果需注明索引范围;SDK 提供 getSplitMetadataViaProvider 作为未索引链的 RPC 读取方式,但本任务不运行它。缺索引不是不存在部署。
SDK 的部分标题和示例调用名不同,记录实际版本与返回,不把示例拼成可执行修复脚本。输出配置差异、权限差异和待补证项。
检查结果:报告可定位原规则和失败层,没有声称修复或完整链上验收。
怎样确认完成
- 形成链/版本/地址、收款人/比例、分配激励与 owner/暂停对照。
- 未确认的部署、索引、原始单位和调用版本明确保留;没有执行更改。
常见错误与边界
- 把 App 工作区成员当 Split owner。
- 预测地址当已部署,旧更新规则当当前配置。
- 百分数、bps 与原整数比例混用;无协议费写成零 Gas。