feat: Add swap enhancements (#355-#358) - #394
Merged
fejilaup-cloud merged 4 commits intoApr 27, 2026
Merged
Conversation
- Implement request_arbitration() for buyer/seller to request arbitration - Implement set_arbitrator() to designate arbitrator for a swap - Implement arbitrate_swap() for arbitrator to decide refund or completion - Add ArbitratorSetEvent, ArbitrationRequestedEvent, and ArbitratedEvent - Add SwapArbitrator storage key for tracking arbitrator per swap - Arbitrator can refund buyer or complete swap with payment release
- Implement verify_and_complete_swap() for seller to verify key atomically - If decryption key is invalid, automatically refund buyer and cancel swap - If key is valid, complete swap and release payment to seller - Refund includes both payment and collateral if present - Add AtomicRefundEvent to notify of automatic refunds - Add AtomicRefundProcessed storage key to track refund status
- Implement batch_accept_swaps() for buyer to accept multiple swaps at once - Implement batch_reveal_keys() for seller to reveal keys for multiple swaps - Batch operations reduce gas costs by processing multiple swaps in single tx - Add BatchAcceptedEvent and BatchKeysRevealedEvent for batch operations - Validates all swaps before processing to ensure atomicity - Handles collateral deposits and payment transfers for all swaps
- Implement escalate_swap_timeout() for buyer to extend swap deadline - Buyer can only escalate when timeout is imminent (within 1 hour) - New expiry must be strictly greater than current expiry - Seller is notified via TimeoutEscalationRequestedEvent - Allows deadline extension without cancelling swap - Add TimeoutExtension storage key to track extended deadlines
|
@chukwudiikeh Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits. You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR implements four critical swap enhancement features to improve the atomic swap protocol:
#355: Swap Arbitration by Third Party
#356: Atomic Refund on Key Invalidity
#357: Swap Batch Processing
#358: Swap Timeout Escalation
Changes
Testing
Each feature includes:
Commits
Closes #355
Closes #356
Closes #357
Closes #358