Approval Permissions
Approval permissions control when transfer approvals can be updated, allowing you to freeze specific transfer rules.
High-Level Logic
For each approval update request:
Check if approval criteria match (from, to, initiatedBy, transferTimes, tokenIds, ownershipTimes, approvalId)
β If no match: ALLOW (neutral state)
β If match: Check if current time is in permanentlyPermittedTimes
β If yes: ALLOW
β If no: Check if current time is in permanentlyForbiddenTimes
β If yes: DENY
β If no: ALLOW (neutral state)English: "For these permission execution times, the approvals matching to these criteria can be updated"
Overview
Approval Update
β
Transfer Match
β
Approval ID Match
β
Time Permission Check
β
Execute/DenyInterface
Available Actions
canUpdateCollectionApprovals
Collection
Control collection-level approvals
canUpdateIncomingApprovals
User
Control incoming transfer approvals
canUpdateOutgoingApprovals
User
Control outgoing transfer approvals
Note: For user approvals, fromListId and toListId are automatically set:
Incoming:
toListIdis hardcoded to the user's addressOutgoing:
fromListIdis hardcoded to the user's address
Key Concepts
Approval Tuple
An approval tuple consists of: (from, to, initiatedBy, tokenIds, transferTimes, ownershipTimes, approvalId)
Brute Force Pattern
To lock specific criteria, specify the target and set all other criteria to maximum ranges:
Examples
Lock Specific ID Range
Lock Specific Approval ID
Protection Strategies
1. Specific Approval Lock
Lock a specific approval by its unique ID:
2. Range Lock with Overlap Protection
Lock a token range AND all overlapping approvals:
3. Complete Freeze
Lock all approvals for a collection:
Last updated