Skip to content

feat: add redemption windows for holder-initiated share buybacks#489

Open
skaichima wants to merge 1 commit into
RevoraOrg:masterfrom
skaichima:feat/redemption-windows
Open

feat: add redemption windows for holder-initiated share buybacks#489
skaichima wants to merge 1 commit into
RevoraOrg:masterfrom
skaichima:feat/redemption-windows

Conversation

@skaichima

Copy link
Copy Markdown

Title: feat: Add redemption windows allowing holders to redeem shares during open windows

Description:

Introduces a complete redemption lifecycle for revenue-share holders:

  • set_redemption_window — issuer configures an open window (start_timestamp, end_timestamp) per offering. Unset windows are treated as always-open.
  • request_redemption — holder requests to redeem shares_bps of their share. Validates share ownership, blacklist status, and window openness. Stores a pending RedemptionRequest. Emits red_req event.
  • fulfill_redemption — issuer transfers amount of the offering's locked payment token to the holder, reducing their share by the requested bps (capped at current share). Emits red_fil event.
  • get_redemption_window — read-only query returning the configured window or None.
  • require_redemption_window_open — internal guard for both request and fulfill paths.
  • 24 tests covering: window management, in-window and out-of-window request handling, always-open default, blacklist rejection, duplicate/zero/oversized share rejection, fulfillment edge cases (zero amount, cap at current share, re-request after partial fulfillment), non-issuer rejection, and event emission.

All CI gates pass (cargo fmt, clippy, build --release, test -- --test-threads=1 — 106/106).

closes #457

@drips-wave

drips-wave Bot commented Jun 28, 2026

Copy link
Copy Markdown

@skaichima 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! 🚀

Learn more about application limits

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add redemption windows allowing holders to redeem shares for accrued NAV during open windows

1 participant