Skip to content

Commit 2b592f3

Browse files
committed
DeployedContractsByName updated to have specific keys
- simplifies address mapping to accept camelcased names
1 parent 3069d19 commit 2b592f3

23 files changed

Lines changed: 123 additions & 172 deletions

packages/7715-permission-types/CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
- `DeployedContractsByName` type is now keyed with specific contract names ([#278](https://github.com/MetaMask/smart-accounts-kit/pull/278))
11+
1012
## [0.9.0]
1113

1214
### Added

packages/7715-permission-types/src/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ export {
3737
type NativeTokenStreamEnforcers,
3838
createTokenApprovalRevocationCaveats,
3939
type TokenApprovalRevocationEnforcers,
40-
type DeployedContractsByName,
40+
type EnforcerAddressesByName,
4141
type PermissionDecoderConfig,
4242
} from './permissions';
4343
export {

packages/7715-permission-types/src/permissions/caveats/erc20TokenAllowance.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import { erc20PayeeRuleDecoder } from '../rules/payee';
1111
import { redeemerRuleDecoder } from '../rules/redeemer';
1212
import type {
1313
ChecksumCaveat,
14-
ChecksumEnforcersByChainId,
14+
EnforcerAddressesByName,
1515
DecodedPermissionData,
1616
PermissionDecoderConfig,
1717
} from '../types';
@@ -30,7 +30,7 @@ import {
3030
* @returns The erc20-token-allowance permission decoder configuration.
3131
*/
3232
export function makeErc20TokenAllowanceDecoderConfig(
33-
contractAddresses: ChecksumEnforcersByChainId,
33+
contractAddresses: EnforcerAddressesByName,
3434
): PermissionDecoderConfig {
3535
const {
3636
timestampEnforcer,
@@ -68,7 +68,7 @@ export function makeErc20TokenAllowanceDecoderConfig(
6868
*/
6969
function validateAndDecodeData(
7070
caveats: ChecksumCaveat[],
71-
contractAddresses: ChecksumEnforcersByChainId,
71+
contractAddresses: EnforcerAddressesByName,
7272
): DecodedPermissionData<Erc20TokenAllowancePermission> {
7373
const { erc20PeriodTransferEnforcer, valueLteEnforcer } = contractAddresses;
7474

@@ -121,7 +121,7 @@ function validateAndDecodeData(
121121
* Enforcers required to build ERC-20 token allowance caveats.
122122
*/
123123
export type Erc20TokenAllowanceEnforcers = Pick<
124-
ChecksumEnforcersByChainId,
124+
EnforcerAddressesByName,
125125
'erc20PeriodTransferEnforcer' | 'valueLteEnforcer'
126126
>;
127127

packages/7715-permission-types/src/permissions/caveats/erc20TokenPeriodic.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import { erc20PayeeRuleDecoder } from '../rules/payee';
1212
import { redeemerRuleDecoder } from '../rules/redeemer';
1313
import type {
1414
ChecksumCaveat,
15-
ChecksumEnforcersByChainId,
15+
EnforcerAddressesByName,
1616
DecodedPermissionData,
1717
PermissionDecoderConfig,
1818
} from '../types';
@@ -29,7 +29,7 @@ import {
2929
* @returns The erc20-token-periodic permission decoder configuration.
3030
*/
3131
export function makeErc20TokenPeriodicDecoderConfig(
32-
contractAddresses: ChecksumEnforcersByChainId,
32+
contractAddresses: EnforcerAddressesByName,
3333
): PermissionDecoderConfig {
3434
const {
3535
timestampEnforcer,
@@ -67,7 +67,7 @@ export function makeErc20TokenPeriodicDecoderConfig(
6767
*/
6868
function validateAndDecodeData(
6969
caveats: ChecksumCaveat[],
70-
contractAddresses: ChecksumEnforcersByChainId,
70+
contractAddresses: EnforcerAddressesByName,
7171
): DecodedPermissionData<Erc20TokenPeriodicPermission> {
7272
const { erc20PeriodTransferEnforcer, valueLteEnforcer } = contractAddresses;
7373

@@ -127,7 +127,7 @@ function validateAndDecodeData(
127127
* Enforcers required to build ERC-20 token periodic caveats.
128128
*/
129129
export type Erc20TokenPeriodicEnforcers = Pick<
130-
ChecksumEnforcersByChainId,
130+
EnforcerAddressesByName,
131131
'erc20PeriodTransferEnforcer' | 'valueLteEnforcer'
132132
>;
133133

packages/7715-permission-types/src/permissions/caveats/erc20TokenStream.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import { redeemerRuleDecoder } from '../rules/redeemer';
1313
import type {
1414
ChecksumCaveat,
1515
DecodedPermissionData,
16-
ChecksumEnforcersByChainId,
16+
EnforcerAddressesByName,
1717
PermissionDecoderConfig,
1818
} from '../types';
1919
import { getTermsByEnforcer, ZERO_32_BYTES } from '../utils';
@@ -25,7 +25,7 @@ import { getTermsByEnforcer, ZERO_32_BYTES } from '../utils';
2525
* @returns The erc20-token-stream permission decoder configuration.
2626
*/
2727
export function makeErc20TokenStreamDecoderConfig(
28-
contractAddresses: ChecksumEnforcersByChainId,
28+
contractAddresses: EnforcerAddressesByName,
2929
): PermissionDecoderConfig {
3030
const {
3131
timestampEnforcer,
@@ -63,7 +63,7 @@ export function makeErc20TokenStreamDecoderConfig(
6363
*/
6464
function validateAndDecodeData(
6565
caveats: ChecksumCaveat[],
66-
contractAddresses: ChecksumEnforcersByChainId,
66+
contractAddresses: EnforcerAddressesByName,
6767
): DecodedPermissionData<Erc20TokenStreamPermission> {
6868
const { erc20StreamingEnforcer, valueLteEnforcer } = contractAddresses;
6969

@@ -114,7 +114,7 @@ function validateAndDecodeData(
114114
* Enforcers required to build ERC-20 token stream caveats.
115115
*/
116116
export type Erc20TokenStreamEnforcers = Pick<
117-
ChecksumEnforcersByChainId,
117+
EnforcerAddressesByName,
118118
'erc20StreamingEnforcer' | 'valueLteEnforcer'
119119
>;
120120

packages/7715-permission-types/src/permissions/caveats/nativeTokenAllowance.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import { nativePayeeRuleDecoder } from '../rules/payee';
1111
import { redeemerRuleDecoder } from '../rules/redeemer';
1212
import type {
1313
ChecksumCaveat,
14-
ChecksumEnforcersByChainId,
14+
EnforcerAddressesByName,
1515
DecodedPermissionData,
1616
PermissionDecoderConfig,
1717
} from '../types';
@@ -30,7 +30,7 @@ import {
3030
* @returns The native-token-allowance permission decoder configuration.
3131
*/
3232
export function makeNativeTokenAllowanceDecoderConfig(
33-
contractAddresses: ChecksumEnforcersByChainId,
33+
contractAddresses: EnforcerAddressesByName,
3434
): PermissionDecoderConfig {
3535
const {
3636
timestampEnforcer,
@@ -68,7 +68,7 @@ export function makeNativeTokenAllowanceDecoderConfig(
6868
*/
6969
function validateAndDecodeData(
7070
caveats: ChecksumCaveat[],
71-
contractAddresses: ChecksumEnforcersByChainId,
71+
contractAddresses: EnforcerAddressesByName,
7272
): DecodedPermissionData<NativeTokenAllowancePermission> {
7373
const { nativeTokenPeriodTransferEnforcer, exactCalldataEnforcer } =
7474
contractAddresses;
@@ -125,7 +125,7 @@ function validateAndDecodeData(
125125
* Enforcers required to build native token allowance caveats.
126126
*/
127127
export type NativeTokenAllowanceEnforcers = Pick<
128-
ChecksumEnforcersByChainId,
128+
EnforcerAddressesByName,
129129
'nativeTokenPeriodTransferEnforcer' | 'exactCalldataEnforcer'
130130
>;
131131

packages/7715-permission-types/src/permissions/caveats/nativeTokenPeriodic.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import { nativePayeeRuleDecoder } from '../rules/payee';
1212
import { redeemerRuleDecoder } from '../rules/redeemer';
1313
import type {
1414
ChecksumCaveat,
15-
ChecksumEnforcersByChainId,
15+
EnforcerAddressesByName,
1616
DecodedPermissionData,
1717
PermissionDecoderConfig,
1818
} from '../types';
@@ -25,7 +25,7 @@ import { getTermsByEnforcer, MAX_PERIOD_DURATION } from '../utils';
2525
* @returns The native-token-periodic permission decoder configuration.
2626
*/
2727
export function makeNativeTokenPeriodicDecoderConfig(
28-
contractAddresses: ChecksumEnforcersByChainId,
28+
contractAddresses: EnforcerAddressesByName,
2929
): PermissionDecoderConfig {
3030
const {
3131
timestampEnforcer,
@@ -63,7 +63,7 @@ export function makeNativeTokenPeriodicDecoderConfig(
6363
*/
6464
function validateAndDecodeData(
6565
caveats: ChecksumCaveat[],
66-
contractAddresses: ChecksumEnforcersByChainId,
66+
contractAddresses: EnforcerAddressesByName,
6767
): DecodedPermissionData<NativeTokenPeriodicPermission> {
6868
const { nativeTokenPeriodTransferEnforcer, exactCalldataEnforcer } =
6969
contractAddresses;
@@ -122,7 +122,7 @@ function validateAndDecodeData(
122122
* Enforcers required to build native token periodic caveats.
123123
*/
124124
export type NativeTokenPeriodicEnforcers = Pick<
125-
ChecksumEnforcersByChainId,
125+
EnforcerAddressesByName,
126126
'nativeTokenPeriodTransferEnforcer' | 'exactCalldataEnforcer'
127127
>;
128128

packages/7715-permission-types/src/permissions/caveats/nativeTokenStream.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import { nativePayeeRuleDecoder } from '../rules/payee';
1212
import { redeemerRuleDecoder } from '../rules/redeemer';
1313
import type {
1414
ChecksumCaveat,
15-
ChecksumEnforcersByChainId,
15+
EnforcerAddressesByName,
1616
DecodedPermissionData,
1717
PermissionDecoderConfig,
1818
} from '../types';
@@ -25,7 +25,7 @@ import { getTermsByEnforcer } from '../utils';
2525
* @returns The native-token-stream permission decoder configuration.
2626
*/
2727
export function makeNativeTokenStreamDecoderConfig(
28-
contractAddresses: ChecksumEnforcersByChainId,
28+
contractAddresses: EnforcerAddressesByName,
2929
): PermissionDecoderConfig {
3030
const {
3131
timestampEnforcer,
@@ -63,7 +63,7 @@ export function makeNativeTokenStreamDecoderConfig(
6363
*/
6464
function validateAndDecodeData(
6565
caveats: ChecksumCaveat[],
66-
contractAddresses: ChecksumEnforcersByChainId,
66+
contractAddresses: EnforcerAddressesByName,
6767
): DecodedPermissionData<NativeTokenStreamPermission> {
6868
const { nativeTokenStreamingEnforcer, exactCalldataEnforcer } =
6969
contractAddresses;
@@ -114,7 +114,7 @@ function validateAndDecodeData(
114114
* Enforcers required to build native token stream caveats.
115115
*/
116116
export type NativeTokenStreamEnforcers = Pick<
117-
ChecksumEnforcersByChainId,
117+
EnforcerAddressesByName,
118118
'nativeTokenStreamingEnforcer' | 'exactCalldataEnforcer'
119119
>;
120120

packages/7715-permission-types/src/permissions/caveats/tokenApprovalRevocation.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import type { TokenApprovalRevocationPermission, Populated } from '../../types';
88
import { expiryRuleDecoder } from '../rules/expiry';
99
import type {
1010
ChecksumCaveat,
11-
ChecksumEnforcersByChainId,
11+
EnforcerAddressesByName,
1212
DecodedPermissionData,
1313
PermissionDecoderConfig,
1414
} from '../types';
@@ -21,7 +21,7 @@ import { getTermsByEnforcer } from '../utils';
2121
* @returns The token-approval-revocation permission decoder configuration.
2222
*/
2323
export function makeTokenApprovalRevocationDecoderConfig(
24-
contractAddresses: ChecksumEnforcersByChainId,
24+
contractAddresses: EnforcerAddressesByName,
2525
): PermissionDecoderConfig {
2626
const { timestampEnforcer, approvalRevocationEnforcer, nonceEnforcer } =
2727
contractAddresses;
@@ -50,7 +50,7 @@ export function makeTokenApprovalRevocationDecoderConfig(
5050
*/
5151
function validateAndDecodeData(
5252
caveats: ChecksumCaveat[],
53-
contractAddresses: ChecksumEnforcersByChainId,
53+
contractAddresses: EnforcerAddressesByName,
5454
): DecodedPermissionData<TokenApprovalRevocationPermission> {
5555
const { approvalRevocationEnforcer } = contractAddresses;
5656

@@ -82,7 +82,7 @@ function validateAndDecodeData(
8282
* Enforcers required to build token approval revocation caveats.
8383
*/
8484
export type TokenApprovalRevocationEnforcers = Pick<
85-
ChecksumEnforcersByChainId,
85+
EnforcerAddressesByName,
8686
'approvalRevocationEnforcer'
8787
>;
8888

packages/7715-permission-types/src/permissions/index.ts

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ import { makeNativeTokenAllowanceDecoderConfig } from './caveats/nativeTokenAllo
55
import { makeNativeTokenPeriodicDecoderConfig } from './caveats/nativeTokenPeriodic';
66
import { makeNativeTokenStreamDecoderConfig } from './caveats/nativeTokenStream';
77
import { makeTokenApprovalRevocationDecoderConfig } from './caveats/tokenApprovalRevocation';
8-
import type { DeployedContractsByName, PermissionDecoderConfig } from './types';
9-
import { getChecksumEnforcersByChainId } from './utils';
8+
import type { EnforcerAddressesByName, PermissionDecoderConfig } from './types';
9+
import { checksumEnforcerAddresses } from './utils';
1010

1111
export {
1212
createErc20TokenStreamCaveats,
@@ -40,7 +40,7 @@ export {
4040
export type { ExpiryRule } from './rules/expiry';
4141
export type { PayeeRule } from './rules/payee';
4242
export type { RedeemerRule } from './rules/redeemer';
43-
export type { DeployedContractsByName, PermissionDecoderConfig };
43+
export type { EnforcerAddressesByName, PermissionDecoderConfig };
4444
export {
4545
DAY,
4646
FORTNIGHT,
@@ -87,24 +87,25 @@ export type {
8787
TokenResolution,
8888
TokenVariant,
8989
} from './schema';
90+
9091
/**
9192
* Builds the canonical set of permission decoders for a chain.
9293
*
9394
* @param contracts - Deployed delegation framework contracts for one chain.
9495
* @returns The full set of permission decoders for the chain.
9596
*/
9697
export const makePermissionDecoderConfigs = (
97-
contracts: DeployedContractsByName,
98+
contracts: EnforcerAddressesByName,
9899
): PermissionDecoderConfig[] => {
99-
const contractAddresses = getChecksumEnforcersByChainId(contracts);
100+
const enforcerAddresses = checksumEnforcerAddresses(contracts);
100101

101102
return [
102-
makeNativeTokenStreamDecoderConfig(contractAddresses),
103-
makeNativeTokenPeriodicDecoderConfig(contractAddresses),
104-
makeNativeTokenAllowanceDecoderConfig(contractAddresses),
105-
makeErc20TokenStreamDecoderConfig(contractAddresses),
106-
makeErc20TokenPeriodicDecoderConfig(contractAddresses),
107-
makeErc20TokenAllowanceDecoderConfig(contractAddresses),
108-
makeTokenApprovalRevocationDecoderConfig(contractAddresses),
103+
makeNativeTokenStreamDecoderConfig(enforcerAddresses),
104+
makeNativeTokenPeriodicDecoderConfig(enforcerAddresses),
105+
makeNativeTokenAllowanceDecoderConfig(enforcerAddresses),
106+
makeErc20TokenStreamDecoderConfig(enforcerAddresses),
107+
makeErc20TokenPeriodicDecoderConfig(enforcerAddresses),
108+
makeErc20TokenAllowanceDecoderConfig(enforcerAddresses),
109+
makeTokenApprovalRevocationDecoderConfig(enforcerAddresses),
109110
];
110111
};

0 commit comments

Comments
 (0)