Opinion争议超时仍未派奖:核最终裁决和两种claim
链小知 · 进阶 · 核验 · 依官方文档整理
按已有脱敏记录匹配市场、裁决结果与持仓,区分争议奖励和预测份额赎回。
开始前准备
- 准备已有市场规则、Resolution/Positions结果、钱包对象、时间戳和交易记录;仅保留脱敏材料,不提交争议、质押或赎回。
1. 固定子市场、问题和持仓身份
Resolution的marketId属于二元或分类子市场,parentMarketId是父事件;questionId用于争议合约,conditionId用于条件份额。对原Position的marketId、rootMarketId、conditionId、tokenId和quoteToken,再读rules及parentRules;父事件标题相同不能替代子市场身份。
检查结果:子市场、父事件、question/condition/token与原持仓对应。
2. 先辨提案、争议和最终裁决
proposed是在disputeDeadline前的提案,disputed等待review,finalized才给最终resultTokenId。价格预言机自动裁决可只有finalized且disputeDeadline/dispute为null,不能把没有争议窗口写成缺数据或失败。尚未进入阶段时字符串可空、时间可null;旧索引的timeline时间/哈希也可能缺失,不自行补零或认定未发生。
检查结果:phase、结果和空字段按当前阶段解释,提案未当最终结果。
3. 超时时间与operator已处理分开
proposedAt/disputeDeadline/arbitrationDeadline/finalizedAt均按Unix秒核时区。用户争议说明写review超时自动成功,API字段进一步明确:到期是具备timeout裁定条件,仍须operator应用。用原phase、disputeOutcome和finalizedAt确认处理,不能仅因时间已过就写质押已返或市场已完成。通常两小时的争议窗口也有价格市场例外,按本市场记录核。
检查结果:原时间、资格到期与实际timeout/最终裁决分开。
4. 比较最终结果时先处理draw
resultTokenId在finalized前可为空,最终为yesTokenId/noTokenId或字面draw;draw不是可当整数使用的tokenId。proposedPayouts是提案向量,例如[1,0]、[0,1]或[1,1],不能用拟议向量替最终结果,也不在缺具体结算记录时自行计算本人实收。
检查结果:最终token与提案、draw和本人份额分列,未用提案补最终到账。
5. 两种claim各用自己的记录
Resolution.dispute.claimStatus的not_applicable/claimable/claimed描述争议者的质押与奖励,claimableAmount也是该对象的显示单位;claimTxHash是质押奖励领取记录。Position的claimStatus 0–4则为CanNotClaim、WaitClaim、Claiming、ClaimFailed、Claimed,sharesOwned/sharesFrozen和currentValueInQuoteToken不能当钱包已实收。对原记录分别归档争议奖励、预测持仓和钱包收款。
检查结果:质押奖励claim与Position claim各自核,估值/哈希未当实收。
6. 将业务错误、构建和赎回结果分开
Resolution规范的HTTP200仍需errno=0,11020表示无裁决记录;Positions另一套envelope使用code/msg,不能把两者混读。Resolution约十秒缓存与缺页也不当最新完整数据。SDK的build_redeem_tx仅构建用户Safe交易,不带amount,面向全部可赎回份额;还需用户签名及backend提交,Safe哈希不是到账。用既有结果核Safe/EOA、condition和collateral;默认partition=[1,2]是二元示例,不凭父事件套全部结果。费用或格式示例中的USDC不能替本人quoteToken。
检查结果:HTTP/业务结果、缓存、Safe构建/提交及实际收款分别保存或待核。
怎样确认完成
- 得到市场身份、裁决阶段、争议奖励及持仓赎回对照,保存缺项;方法按当前文档整理,未进行账户或链上业务操作。
常见错误与边界
- 争议说明与API对超时的表述不同,按实际裁定记录核。
- 相同claim字段在两个接口表示不同资金对象。
- 空结果、构建哈希和持仓估值均不能替代到账。