Skip to content

Commit 68d21d3

Browse files
committed
Rename PermissionRule to PermissionDecoder. Decompose rule decoders from makePermissionDecoder.
1 parent ab58df0 commit 68d21d3

31 files changed

Lines changed: 1010 additions & 1016 deletions

packages/gator-permissions-controller/src/GatorPermissionsController.ts

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,10 @@ import type { Hex } from '@metamask/utils';
3030
import { DELEGATION_FRAMEWORK_VERSION } from './constants';
3131
import type { DecodedPermission } from './decodePermission';
3232
import {
33-
createPermissionRulesForContracts,
34-
findRulesWithMatchingCaveatAddresses,
33+
createPermissionDecodersForContracts,
34+
findDecodersWithMatchingCaveatAddresses,
3535
reconstructDecodedPermission,
36-
selectUniqueRuleAndDecodedPermission,
36+
selectUniqueDecoderAndDecodedPermission,
3737
} from './decodePermission';
3838
import {
3939
GatorPermissionsFetchError,
@@ -592,22 +592,23 @@ export class GatorPermissionsController extends BaseController<
592592

593593
try {
594594
const enforcers = caveats.map((caveat) => caveat.enforcer);
595-
const permissionRules = createPermissionRulesForContracts(contracts);
595+
const permissionDecoders =
596+
createPermissionDecodersForContracts(contracts);
596597

597-
// Every rule where enforcer addresses match; multiple types may share the same
598-
// caveat pattern and are disambiguated by validateAndDecodePermission.
599-
const matchingRules = findRulesWithMatchingCaveatAddresses({
598+
// Every decoder where enforcer addresses match; multiple types may share the
599+
// same caveat pattern and are disambiguated by validateAndDecodePermission.
600+
const matchingDecoders = findDecodersWithMatchingCaveatAddresses({
600601
enforcers,
601-
permissionRules,
602+
permissionDecoders,
602603
});
603604

604605
const {
605-
rule: { permissionType },
606+
decoder: { permissionType },
606607
expiry,
607608
data,
608609
rules,
609-
} = selectUniqueRuleAndDecodedPermission({
610-
candidateRules: matchingRules,
610+
} = selectUniqueDecoderAndDecodedPermission({
611+
candidateDecoders: matchingDecoders,
611612
caveats,
612613
});
613614

packages/gator-permissions-controller/src/constants.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,3 +18,11 @@ export const EXECUTION_PERMISSION_REDEEMER_RULE_TYPE = 'redeemer' as const;
1818
* payee restrictions.
1919
*/
2020
export const EXECUTION_PERMISSION_PAYEE_RULE_TYPE = 'payee' as const;
21+
22+
/**
23+
* `Rule.type` / `wallet_getSupportedExecutionPermissions` `ruleTypes` entry for
24+
* permission expiry derived from a TimestampEnforcer caveat. The decoded
25+
* permission additionally hoists the expiry value onto its top-level `expiry`
26+
* field for convenience.
27+
*/
28+
export const EXECUTION_PERMISSION_EXPIRY_RULE_TYPE = 'expiry' as const;

0 commit comments

Comments
 (0)