Skip to content

Commit a4d3184

Browse files
committed
Add withdraw_dispute_sink to drain accumulated sink balance to treasury
Mirrors withdraw_protocol_fees: permissionless call that routes the full dispute_sink_balance to protocol_treasury and emits WithdrawDisputeSink(uint64). Fixes the permanent fund lock reported in this PR.
1 parent 51cb273 commit a4d3184

1 file changed

Lines changed: 10 additions & 0 deletions

File tree

smart_contracts/market_app/contract.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,7 @@
147147
# arc4.emit("Cancel()")
148148
# arc4.emit("Refund(uint64)")
149149
# arc4.emit("WithdrawPendingPayouts(uint64)")
150+
# arc4.emit("WithdrawDisputeSink(uint64)")
150151
# arc4.emit("CommentPosted(string)")
151152

152153

@@ -1367,6 +1368,15 @@ def withdraw_protocol_fees(self) -> None:
13671368
self._send_currency(Account(self.protocol_treasury.value), amount)
13681369
arc4.emit("WithdrawFees(uint64)", arc4.UInt64(amount))
13691370

1371+
@arc4.abimethod()
1372+
def withdraw_dispute_sink(self) -> None:
1373+
"""Withdraw accumulated dispute-sink balance to the configured protocol treasury."""
1374+
amount = self.dispute_sink_balance.value
1375+
self._require(amount > UInt64(0))
1376+
self.dispute_sink_balance.value = UInt64(0)
1377+
self._send_currency(Account(self.protocol_treasury.value), amount)
1378+
arc4.emit("WithdrawDisputeSink(uint64)", arc4.UInt64(amount))
1379+
13701380
@arc4.abimethod()
13711381
def refund(self, outcome_index: arc4.UInt64, shares: arc4.UInt64) -> None:
13721382
self._require_status(UInt64(STATUS_CANCELLED))

0 commit comments

Comments
 (0)