Skip to content

fix: [FIND-033] Force-cancel capability for all corporate action types.#1168

Merged
jaime-iobermudez merged 19 commits into
developmentfrom
fix/find-033-1
May 27, 2026
Merged

fix: [FIND-033] Force-cancel capability for all corporate action types.#1168
jaime-iobermudez merged 19 commits into
developmentfrom
fix/find-033-1

Conversation

@jaime-iobermudez
Copy link
Copy Markdown
Contributor

This pull request introduces a new force-cancel capability for all corporate action types, allowing privileged admins to forcibly cancel actions such as coupons, dividends, votings, balance adjustments, and amortizations, regardless of their execution or record date. This is accomplished by adding a new admin role and corresponding methods and events for each action type, ensuring stuck or already-executed actions can be unblocked in a controlled way. Each force-cancel method retains the same access and state guards as the regular cancel methods, except for the date guard, and emits a dedicated event upon successful cancellation.

Force-cancel capability for corporate actions

  • Added a new CORPORATE_ACTION_CANCEL_ADMIN_ROLE constant to roles.sol, granting privileged admin rights for force-cancelling corporate actions.
  • Implemented force-cancel methods for each corporate action type:
    • forceCancelCoupon, forceCancelDividend, forceCancelVoting, forceCancelBalanceAdjustment, and forceCancelAmortization in their respective storage wrappers and facet contracts. These methods bypass execution/record date checks but retain other access and state guards. [1] [2] [3] [4] [5] [6] [7] [8]
  • Updated function selectors and interfaces to expose the new force-cancel methods in each facet and interface. [1] [2] [3] [4] [5] [6]

Event and documentation enhancements

  • Added new events for each corporate action type to signal when a force-cancel occurs: CouponForceCancelled, DividendForceCancelled, VotingForceCancelled, ScheduledBalanceAdjustmentForceCancelled, and AmortizationForceCancelled. [1] [2] [3] [4]
  • Updated documentation and comments to clearly describe the purpose, restrictions, and behavior of the new force-cancel methods and events. [1] [2] [3] [4]

Role and import updates

  • Updated imports in relevant files to include the new admin role and event dependencies. [1] [2] [3]

These changes provide a robust administrative mechanism to resolve stuck or problematic corporate actions while maintaining strict access control and auditability.

Type of change

  • Bug fix 🐞
  • New feature ✨
  • Breaking change 💥
  • Documentation update 📖
  • Refactor 🔧

Testing

Node version:

  • 20
  • 22
  • 24

Checklist

  • Style Guidelines followed ✅
  • Documentation Updated 📚
  • Linters - No New Warnings ⚠️
  • Local Tests Pass ✅
  • Effective Tests Added ✔️
  • No reduction of Coverage

Signed-off-by: jaime-iobermudez <jaime.bermudez@io.builders>
@jaime-iobermudez jaime-iobermudez self-assigned this May 21, 2026
@jaime-iobermudez jaime-iobermudez requested review from a team as code owners May 21, 2026 07:22
Signed-off-by: jaime-iobermudez <jaime.bermudez@io.builders>
Comment thread packages/ats/contracts/contracts/constants/roles.sol Outdated
Comment thread packages/ats/contracts/contracts/domain/asset/EquityStorageWrapper.sol Outdated
Comment thread packages/ats/contracts/contracts/facets/layer_2/amortization/Amortization.sol Outdated
Signed-off-by: jaime-iobermudez <jaime.bermudez@io.builders>
Signed-off-by: jaime-iobermudez <jaime.bermudez@io.builders>
Signed-off-by: jaime-iobermudez <jaime.bermudez@io.builders>
Signed-off-by: jaime-iobermudez <jaime.bermudez@io.builders>
Signed-off-by: jaime-iobermudez <jaime.bermudez@io.builders>
Signed-off-by: jaime-iobermudez <jaime.bermudez@io.builders>
@github-actions github-actions Bot added the hash-change PR modifies @custom:hash annotations or codegen formula — review on-chain impact carefully label May 25, 2026
AlbertoMolinaIoBuilders and others added 9 commits May 25, 2026 14:45
Signed-off-by: Alberto Molina <alberto@io.builders>
Signed-off-by: jaime-iobermudez <jaime.bermudez@io.builders>
Signed-off-by: jaime-iobermudez <jaime.bermudez@io.builders>
Signed-off-by: jaime-iobermudez <jaime.bermudez@io.builders>
Signed-off-by: jaime-iobermudez <jaime.bermudez@io.builders>
Signed-off-by: jaime-iobermudez <jaime.bermudez@io.builders>
Signed-off-by: jaime-iobermudez <jaime.bermudez@io.builders>
Signed-off-by: jaime-iobermudez <jaime.bermudez@io.builders>
Signed-off-by: jaime-iobermudez <jaime.bermudez@io.builders>
Copy link
Copy Markdown
Contributor

@marcosio marcosio left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is possible to reuse the new code in the older?

Signed-off-by: jaime-iobermudez <jaime.bermudez@io.builders>
Signed-off-by: jaime-iobermudez <jaime.bermudez@io.builders>
@jaime-iobermudez jaime-iobermudez merged commit 9879296 into development May 27, 2026
19 checks passed
@jaime-iobermudez jaime-iobermudez deleted the fix/find-033-1 branch May 27, 2026 14:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

hash-change PR modifies @custom:hash annotations or codegen formula — review on-chain impact carefully

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants