> For the complete documentation index, see [llms.txt](https://docs.goassay.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.goassay.ai/developers/zh/shang-jia-ni-de-api-jin-jie/dispute-a-stake-penalty.md).

# 在链上申诉质押处罚

用钱包冻结待处理质押罚没，并跟进仲裁人的链上裁决。

如果认为待处理质押罚没有误，请用拥有质押的钱包提出争议。链上争议确认后，该项罚没会冻结，等待仲裁人审核。仲裁人通过指定钱包签署裁决。

这是针对质押扣款的争议。罚没计算方式见[链上质押与处罚](/developers/zh/shang-jia-ni-de-api-jin-jie/staking-and-penalties.md)。

## 先检查时间窗口

争议交易必须在记录的 `executableAt` 之前上链。到达该时刻，争议窗口就关闭了。打开对话框或准备钱包交易都不会冻结罚没。

| 规则        | 值                              |
| --------- | ------------------------------ |
| 默认链上提议延迟  | 72 小时                          |
| 可配置延迟     | 10 分钟至 22 天                    |
| 已有记录的截止时间 | 保存的 `executableAt`；之后修改延迟不会改变它 |
| 允许的争议次数   | 每条链上记录一次                       |
| 谁能提出争议    | 记录中指定的提供方钱包                    |
| 审核超时      | 从链上争议时间起 30 天                  |

请使用该项罚没显示的截止时间，为钱包批准和交易确认留足时间。

## 提交争议

1. 登录并打开 **Penalties**。打开 **Why this penalty?**，查看调用、金额和截止时间。
2. 在 Robinhood Chain 上连接拥有质押的钱包。钱包需要足够的原生币支付交易费。
3. 对要提出争议的记录，点击 **Dispute** 或 **Dispute on chain**。
4. 阅读审核面板，确认你知道只能提出一次争议，且之后不能补充内容。争议不携带消息或证据附件。
5. 点击 **Dispute on chain**，批准钱包交易，并等待确认。

## 确认是否成功

查看是否出现 **Disputed on chain**，以及罚没状态是否更新。合约记录必须为 `Disputed`；仅准备未签名调用不会改变任何状态。争议期间，该记录无法执行，但质押预留仍保留。

一个案件可能包含多条链上记录，每位受损客户一条。争议只冻结所选记录。请在各自截止时间前检查所有想提出争议的记录；其他待处理记录仍可能执行。

## 谁来决定，之后会怎样

指定仲裁人审核记录并在链上签署裁决。仲裁人可以维持罚没，使其返回待执行状态，也可以支持你并取消罚没。合约还允许管理员取消待处理或争议中的罚没。

| 结果              | 对质押的影响                                                                         |
| --------------- | ------------------------------------------------------------------------------ |
| 裁决支持你并取消罚没      | 释放全部预留；该记录不会转账。                                                                |
| 维持罚没            | 保留预留，记录返回 `Pending`。从原 `executableAt` 和裁决时间中较晚者起可执行，但仍需通过常规执行检查。不能再次对同一记录提出争议。 |
| 30 天内没有裁决       | 维持罚没的窗口关闭。任何人均可调用 `expireSlash` 取消记录并释放预留。时间流逝本身不会提交该交易。                       |
| 提出罚没的验证方密钥变为不可用 | 任何人均可将待处理或争议中的记录作过期处理，并释放预留。                                                   |

维持罚没后仍需单独的执行交易。必须在调整后的 `executableAt` 起七天内执行；之后任何人都能使其过期。请检查最终链上状态和已执行金额，确认资金是否转移。

<details>

<summary>可选：合约调用和事件</summary>

应用准备 `disputeSlashBatch([requestId])`，检查目标是否为预期质押合约和钱包，再请求钱包提交。也可使用已部署合约的 ABI 和配置的部署，集成单条记录调用 `AssayStake.disputeSlash(bytes32 requestId)`。

提交前，读取 `slashRecordOf(requestId)`。要求状态为 `Pending`、提供方等于签名钱包、`disputedAt == 0`，且链上时间严格小于 `executableAt`。成功提交会发出 `SlashDisputed`。即使合约暂停或账户被阻止，也允许提出争议，因为它只用于保护质押。

仲裁人使用 `upholdSlash` 或 `upholdSlashBatch` 维持罚没。取消使用 `cancelSlash` 或 `cancelSlashBatch`。跟踪结果时，请结合记录状态读取 `SlashUpheld`、`SlashCancelled` 和 `SlashExecuted`。

批量调用接受 1–64 个记录 ID，且为原子操作：一个无效或重复 ID 就会回滚整批。请预先检查每条记录。仲裁人维持罚没不会改变记录的罚没金额或受益人。修改金额需要其他流程；它不是 `upholdSlash` 的参数。

</details>

## 错误

| 合约原因                           | 含义和处理方式                                     |
| ------------------------------ | ------------------------------------------- |
| `NotSlashedProvider`           | 使用记录中指定为提供方的钱包。                             |
| `SlashNotPending`              | 读取当前状态；已执行、已取消或已进入争议的记录不能进入此流程。             |
| `SlashAlreadyDisputed`         | 记录已用过唯一一次争议机会，即使裁决后又返回待处理状态也一样。             |
| `DisputeWindowClosed`          | 交易在 `executableAt` 时刻或之后到达。此记录已无法通过此调用提出争议。 |
| `EmptyBatch` / `BatchTooLarge` | 提交 1 至 64 个符合条件的 ID。                        |

## 延伸阅读

* [链上质押与处罚](/developers/zh/shang-jia-ni-de-api-jin-jie/staking-and-penalties.md)。
* 上架你的 API（可选）：[对质押罚没提出争议](https://docs.goassay.ai/list-your-api/zh/penalties)。

## 下一步

* [架构](/developers/zh/di-ceng-yuan-li/architecture.md)。


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.goassay.ai/developers/zh/shang-jia-ni-de-api-jin-jie/dispute-a-stake-penalty.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
