Skip to content

cancel_stream on an already-cancelled stream rewrites storage and resets last_update #250

Closed

Description

@Ashborne267

Summary

top_up, modify_rate and rescue_stream return StreamCancelled for a
cancelled stream, but a second cancel_stream succeeds with a zero refund,
rewrites the stream, bumps its TTL and resets last_update. The test
cancel_stream_twice_is_harmless locks in the inconsistency.

Acceptance criteria

  • Return early without writing, or return StreamCancelled, and make the choice consistent across entry points.
  • Update cancel_stream_twice_is_harmless to match.

Getting started

Fork this repository, clone your fork, and add this repo as upstream:

git clone https://github.com/<your-username>/streamgive-contracts.git
cd streamgive-contracts
git remote add upstream https://github.com/StreamGive/streamgive-contracts.git

Create a branch for this issue:

git checkout -b fix/cancel-twice-no-write

Suggested commit message:

fix(donation-vault): don't rewrite a cancelled stream on cancel

Run cargo fmt --check, cargo clippy, and cargo test before pushing, then
open a pull request from your fork against main and link this issue. See
the contributing guide for the full contribution guide.

Activity

  1. VeronicDev commented on Oct 16, 2026

    @VeronicDev

    @VeronicDev has applied to work on this issue as part of the Stellar Wave Program's 10th wave.

    Hello Maintainer, I can fix this please assign.

    ℹ️ Repo Maintainers: To accept this application, review their application or assign @VeronicDev to this issue.

  2. innocentharuna commented on Oct 16, 2026

    @innocentharuna

    @innocentharuna has applied to work on this issue as part of the Stellar Wave Program's 10th wave.

    hey maintainer, please kindly assign this to me, i can surely fix it

    ℹ️ Repo Maintainers: To accept this application, review their application or assign @innocentharuna to this issue.

  3. CollinsKRO commented on Oct 16, 2026

    @CollinsKRO

    @CollinsKRO has applied to work on this issue as part of the Stellar Wave Program's 10th wave.

    Hi Maintainer, I can fix this pls assign. ETA 5hrs

    ℹ️ Repo Maintainers: To accept this application, review their application or assign @CollinsKRO to this issue.

  4. itoro2 commented on Oct 16, 2026

    @itoro2
    Contributor

    @itoro2 has applied to work on this issue as part of the Stellar Wave Program's 10th wave.

    I’m interested in contributing to this issue. I’ll begin by reviewing the existing architecture and related code, then implement the requested changes while following the project’s existing conventions. I’ll include appropriate tests and keep the PR focused, documented, and easy to review.

    ℹ️ Repo Maintainers: To accept this application, review their application or assign @itoro2 to this issue.

  5. drips-wave commented on Oct 16, 2026

    @drips-wave

    Congratulations, @itoro2! 🎉 Your application was accepted by the repo's maintainers, and the issue is due on October 22, 2026.

    🧑‍💻 @itoro2: Please resolve the issue such that the repo's maintainers have enough time to review your contribution before the due date. You'll earn Points for completing the issue on-time, which will make you eligible for a share of the Stellar Wave Program's reward pool.

    Warning

    When opening a PR, please link it to this issue to ensure it gets tracked accurately. Points are awarded when this issue is marked as completed by the maintainer.

    🤠 Repo maintainers: Please keep an eye on the contributor's progress and review their work before the due date. You can manage this issue, including adjusting its complexity and points, here.

    🌊 Happy Wave 🌊

  6. github-actions commented on Oct 18, 2026

    @github-actions
    Contributor

    Closed by #328, which was merged automatically.

  7. drips-wave commented on Oct 18, 2026

    @drips-wave

    This issue has been completed by @itoro2 as part of the Stellar Wave Program's 10th Wave 🥳

    😎 @itoro2: You earned 200 Points for completing this issue! Once the Wave's rewards are finalized, you'll be eligible for a percentage of the Wave's reward pool based on the percentage of total points you've earned. Learn more here. You can also Leave a review to share your experience working on this issue.

    🧑‍💻 Repo maintainers: How'd the contributor do? Leave a review to share your experience working with them.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Stellar WaveIssues in the Stellar wave programbugSomething isn't working

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions