Skip to content

feat(interfaces): overhaul IPolicyRegistry and resync IB20/IB20Security#13

Closed
ilikesymmetry wants to merge 1 commit into
mainfrom
conner/policy-registry-and-interface-updates
Closed

feat(interfaces): overhaul IPolicyRegistry and resync IB20/IB20Security#13
ilikesymmetry wants to merge 1 commit into
mainfrom
conner/policy-registry-and-interface-updates

Conversation

@ilikesymmetry
Copy link
Copy Markdown
Collaborator

Summary

  • IPolicyRegistry: rename WHITELIST→ALLOWLIST, BLACKLIST→BLOCKLIST; remove COMPOUND type entirely; drop isAuthorizedSender/Recipient/MintRecipient in favor of single isAuthorized; replace policyData() with policyAdmin() + policyType(); batch updatePolicyAllowlist/Blocklist accept address[]; rename policyIdCounter→nextPolicyId, setPolicyAdmin→updatePolicyAdmin
  • IB20: remove redeem surface (functions, events, error) — moved to IB20Security; update policy model natspec to drop compound-slot and redeem references
  • IB20Security: add redeemPolicyId + updateRedeemPolicy; host full redeem surface gated by redeemPolicyId; relocate Redeemed, MinimumRedeemableUpdated, MinimumRedeemableNotMet here from IB20; fix RedeemPolicyUpdated event comment; rewrite inherited-surface @dev block
  • DESIGN_NOTES: propagate all terminology and design changes throughout

Test plan

  • forge build compiles cleanly
  • No remaining references to WHITELIST, BLACKLIST, COMPOUND, isAuthorizedSender, isAuthorizedRecipient, isAuthorizedMintRecipient, policyData, policyIdCounter

🤖 Generated with Claude Code

IPolicyRegistry:
- Rename WHITELIST→ALLOWLIST, BLACKLIST→BLOCKLIST; remove COMPOUND type
- Drop compound-related structs, errors, events, and functions
- Collapse isAuthorizedSender/Recipient/MintRecipient into single isAuthorized
- Replace policyData() with separate policyAdmin() and policyType() views
- modifyPolicy* now accept address[] for batch updates
- Rename policyIdCounter→nextPolicyId, setPolicyAdmin→updatePolicyAdmin,
  modifyPolicyWhitelist/Blacklist→updatePolicyAllowlist/Blocklist

IB20:
- Remove redeem surface (redeem, redeemWithMemo, minimumRedeemable,
  setMinimumRedeemable, Redeemed, MinimumRedeemableUpdated,
  MinimumRedeemableNotMet) — moved to IB20Security
- Update policy model natspec to drop compound-slot and redeem language

IB20Security:
- Add security-specific redeemPolicyId + updateRedeemPolicy
- Host full redeem surface with redeemPolicyId-gated natspec
- Relocate Redeemed, MinimumRedeemableUpdated events and
  MinimumRedeemableNotMet error here from IB20
- Fix RedeemPolicyUpdated event comment (was "updateMintPolicy")
- Rewrite inherited-surface @dev block to document redeem separately

DESIGN_NOTES: propagate all terminology and design changes

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
@ilikesymmetry ilikesymmetry deleted the conner/policy-registry-and-interface-updates branch May 19, 2026 07:52
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.

1 participant