Action Permissions

Action permissions are the simplest type - they only control when an action can be executed based on time.

High-Level Logic

For each action request:
    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 times, this action can be performed" or "For these times, this action is blocked"

Overview

Action Request

Time Check

┌─────────────────┬─────────────────┐
│ Permitted Times │ Forbidden Times │
└─────────────────┴─────────────────┘

Execute Action    Deny Action

Interface

interface ActionPermission {
    permanentlyPermittedTimes: UintRange[];
    permanentlyForbiddenTimes: UintRange[];
}

Collection Actions

Action
Description
Use Case

canDeleteCollection

Delete entire collection

Permanent lock

User Actions

Action
Description
Use Case

canUpdateAutoApproveSelfInitiatedOutgoingTransfers

Auto-approve outgoing transfers

User convenience

canUpdateAutoApproveSelfInitiatedIncomingTransfers

Auto-approve incoming transfers

User convenience

canUpdateAutoApproveAllIncomingTransfers

Auto-approve all incoming

User convenience

Examples

Lock Collection Deletion Forever

{
    "canDeleteCollection": [
        {
            "permanentlyPermittedTimes": [],
            "permanentlyForbiddenTimes": [
                { "start": "1", "end": "18446744073709551615" }
            ]
        }
    ]
}

Allow Collection Deletion Only During Specific Period

{
    "canDeleteCollection": [
        {
            "permanentlyPermittedTimes": [
                { "start": "1704067200000", "end": "1735689600000" }
            ],
            "permanentlyForbiddenTimes": []
        }
    ]
}

Default Behavior (No Restrictions)

{
    "canDeleteCollection": []
}

Last updated