Skip to content

Refactor cancellation checks in CampaignInfo and related contracts#37

Open
mahabubAlahi wants to merge 1 commit intooz-audit-fixesfrom
oz-fix-issue-53
Open

Refactor cancellation checks in CampaignInfo and related contracts#37
mahabubAlahi wants to merge 1 commit intooz-audit-fixesfrom
oz-fix-issue-53

Conversation

@mahabubAlahi
Copy link
Collaborator

  • Updated cancellation checks to use the PausableCancellable interface instead of ICampaignTreasury.
  • Removed redundant cancelled() function definitions from ICampaignInfo, ICampaignPaymentTreasury, and ICampaignTreasury interfaces.
  • Adjusted internal logic in BasePaymentTreasury and BaseTreasury to align with the new cancellation checks.

- Updated cancellation checks to use the PausableCancellable interface instead of ICampaignTreasury.
- Removed redundant cancelled() function definitions from ICampaignInfo, ICampaignPaymentTreasury, and ICampaignTreasury interfaces.
- Adjusted internal logic in BasePaymentTreasury and BaseTreasury to align with the new cancellation checks.
@mahabubAlahi mahabubAlahi self-assigned this Mar 3, 2026
@mahabubAlahi mahabubAlahi added the enhancement New feature or request label Mar 3, 2026
Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 42df4b5067

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

tempTreasury = s_platformTreasuryAddress[tempPlatforms[i]];
// Skip cancelled treasuries
if (!ICampaignTreasury(tempTreasury).cancelled()) {
if (!PausableCancellable(tempTreasury).cancelled()) {

Choose a reason for hiding this comment

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

P2 Badge Keep treasury cancellation check tied to declared interface

This call now assumes every treasury implements PausableCancellable.cancelled() even though ICampaignTreasury no longer declares cancelled, so a treasury implementation can be valid per interface and still cause getTotalRaisedAmount / getTotalCancelledAmount to revert at runtime when cancelled() is queried. Because TreasuryFactory accepts arbitrary approved implementations, this change removes compile-time enforcement of a function that these aggregation paths still require.

Useful? React with 👍 / 👎.

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

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant