Skip to content

zkgm: settle call panics with failure acks#153

Open
notJoon wants to merge 6 commits into
mainfrom
fix/issue-151-zkgm-only-maker-ack
Open

zkgm: settle call panics with failure acks#153
notJoon wants to merge 6 commits into
mainfrom
fix/issue-151-zkgm-only-maker-ack

Conversation

@notJoon

@notJoon notJoon commented Jun 11, 2026

Copy link
Copy Markdown
Member

Description

Closes #151

Fixes ZKGM receive and acknowledgement edge cases around only-maker and malformed acknowledgements.

The proven receive path now guards bare ACK_ERR_ONLY_MAKER results the same way as IntentRecv: retry-required only-maker outcomes abort receive processing so the packet receipt and acknowledgement are not committed.

CALL receiver panics are handled differently: they now produce a normal failure acknowledgement instead of being converted into only-maker. This matches the expected settlement behavior and lets the source side refund immediately, including zero-timeout packets.

The source-side ack dispatcher was also hardened for token-order, batch, and forward packets. Bare only-maker or undecodable token-order acknowledgements are treated as failure acknowledgements so token-order handlers take their refund path instead of causing permanent ack processing panics.

The realcometbls scenarios were updated because the expected behavior changed. A panicking CALL receiver, either top-level or inside a batch, now commits a decodable failure acknowledgement; token-order-first batch coverage verifies that a valid earlier token child can still settle while the later CALL child records failure.

Added focused impl tests covering:

  • proven Recv aborting only on retry-required only-maker results
  • CALL receiver panics producing failure acknowledgements
  • OP_TOKEN_ORDER, OP_BATCH, and OP_FORWARD treating only-maker or malformed token-order acks as refund-triggering failures

@notJoon notJoon added this to the deploy rc1 milestone Jun 11, 2026
@github-actions github-actions Bot added A-ibc IBC core, light client, packet/channel/connection A-zkgm ZKGM realm, opcodes, forward, integration T-fix Bug fix labels Jun 11, 2026
@github-actions github-actions Bot added the A-doc Documentation: README, specs, godoc label Jun 12, 2026
@notJoon notJoon marked this pull request as ready for review June 12, 2026 00:49
@notJoon notJoon changed the title fix(zkgm): reject only-maker recv acks zkgm: settle call panics with failure acks Jun 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-doc Documentation: README, specs, godoc A-ibc IBC core, light client, packet/channel/connection A-zkgm ZKGM realm, opcodes, forward, integration T-fix Bug fix

Projects

None yet

Development

Successfully merging this pull request may close these issues.

zkgm: batch with a failing CALL child emits an undecodable acknowledgement

1 participant