[FEAT] Soroban: Implement cancel_stream Logic #199#205
Merged
ogazboiz merged 1 commit intoLabsCrypt:mainfrom Feb 26, 2026
Merged
Conversation
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.
Description
Fix
cancel_streamsettlement semantics so cancellation proactively pays the recipient's final claimable amount, refunds remaining balance to sender, and deactivates the stream consistently.Closes #199
Changes proposed
What were you told to do?
I was asked to implement
cancel_streamso it:What did I do?
Updated cancel_stream token settlement logic
In
contracts/stream_contract/src/lib.rs:withdrawn_amountto include the recipient settlement,is_active = falseand persists stream state.Updated tests for new cancellation behavior
In
contracts/stream_contract/src/test.rs:test_cancel_stream_refunds_sendernow asserts recipient receives accrued amount on cancel and contract balance goes to zero,test_cancel_stream_after_partial_withdrawalnow asserts recipient final balance includes cancel-time settlement and contract drains to zero,withdrawn_amountassertions updated to match proactive recipient payout.Check List (Check all the applicable boxes)
Screenshots / Testing Evidence
Attempted validation:
Test build currently fails due existing upstream test compile issues unrelated to this PR (
stream_id1/stream_id2/token_addressunresolved in pre-existing tests).