Reclaim stalled dispute - #211
Conversation
…_dispute Cap refunds in reclaim_stalled_dispute against tracked AssertionEscrow balance deltas, preventing contract traps or overpaying from pooled balances. Co-authored-by: gloskull <189399494+gloskull@users.noreply.github.com>
…23233312752 fix(tholos): account for fee-on-transfer shortfall in reclaim_stalled_dispute
|
This PR's diff includes a large number of unrelated test snapshots across asserter-consumer, demo-consumer, and tholos-v2 that have nothing to do with this fix, plus a self-merge commit in the history. This looks like a branch mix-up on your end (possibly branched from a stale fork main). Please rebase this onto a fresh branch from drydocs/tholos's actual main so the diff only contains the reclaim_stalled_dispute fix and its own test, this is unreviewable as currently scoped. Separately: this issue explicitly depends on #180's AssertionEscrow mechanism, which is still open with requested changes, not yet merged. Once you've rebased cleanly, make sure your fix builds on top of #180's actual final version rather than reimplementing the escrow tracking separately. |
|
@gloskull Checking in, any progress on rebasing this? Let us know if you're still working it or need to hand it off. |
collinsezedike
left a comment
There was a problem hiding this comment.
@gloskull Three things need fixing before this can merge:
-
cargo fmt --checkfails on lib.rs (two spots aroundreclaim_stalled_disputewhere the multi-linetoken_client.transfer(...)calls should collapse to one line). Runcargo fmtand commit the result. -
packages/tholos-sdk/src/index.tsis out of date with the contract's new public interface. Regenerate it perpackages/tholos-sdk/README.mdand commit the result. -
This branch now conflicts with main: PR #214 (merged after this branch was opened) moved admin assignment from
initialize's first parameter into a__constructor(admin)call made at deploy time, soinitializeno longer takes anadminargument. Rebase onto main and updatetest.rs'sinitializecalls (including the newtest_reclaim_stalled_dispute_fee_on_transfertest) to register withenv.register(Tholos, (admin,))and dropadminfrom theinitialize/try_initializeargument lists, matching the rest of the suite.
|
@gloskull Checking in, any progress on the three items above? Let us know if you're still working it or need to hand it off. |
|
Hello @collinsezedike , I'd work on it now. |
fix: synchronize SDK bindings and formatting
Fixes issue where reclaim_stalled_dispute did not account for fee-on-transfer token shortfalls. Now tracks incoming token deposit balance deltas in AssertionEscrow and caps outgoing refunds in reclaim_stalled_dispute (as well as finalize and resolve) against the actual escrowed amounts. Includes unit test using a fee-on-transfer token mock.
Closes #207