Skip to content

Commit aa37c1f

Browse files
committed
Convert decodeCaveat function to use CaveatType rather than string literals.
1 parent 54258cd commit aa37c1f

1 file changed

Lines changed: 53 additions & 31 deletions

File tree

packages/smart-accounts-kit/src/caveats.ts

Lines changed: 53 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ import {
4141
} from 'viem';
4242

4343
import type { CoreCaveatConfiguration } from './caveatBuilder/coreCaveatBuilder';
44+
import { CaveatType } from './constants';
4445
import type { Caveat, SmartAccountsEnvironment } from './types';
4546

4647
export const CAVEAT_ABI_TYPE_COMPONENTS = [
@@ -108,116 +109,137 @@ export const decodeCaveat = ({
108109
case caveatEnforcers.AllowedCalldataEnforcer?.toLowerCase():
109110
return { type: 'allowedCalldata', ...decodeAllowedCalldataTerms(terms) };
110111
case caveatEnforcers.AllowedMethodsEnforcer?.toLowerCase():
111-
return { type: 'allowedMethods', ...decodeAllowedMethodsTerms(terms) };
112+
return {
113+
type: CaveatType.AllowedMethods,
114+
...decodeAllowedMethodsTerms(terms),
115+
};
112116
case caveatEnforcers.ApprovalRevocationEnforcer?.toLowerCase():
113117
return {
114-
type: 'approvalRevocation',
118+
type: CaveatType.ApprovalRevocation,
115119
...decodeApprovalRevocationTerms(terms),
116120
};
117121
case caveatEnforcers.AllowedTargetsEnforcer?.toLowerCase():
118-
return { type: 'allowedTargets', ...decodeAllowedTargetsTerms(terms) };
122+
return {
123+
type: CaveatType.AllowedTargets,
124+
...decodeAllowedTargetsTerms(terms),
125+
};
119126
case caveatEnforcers.ArgsEqualityCheckEnforcer?.toLowerCase():
120127
return {
121-
type: 'argsEqualityCheck',
128+
type: CaveatType.ArgsEqualityCheck,
122129
...decodeArgsEqualityCheckTerms(terms),
123130
};
124131
case caveatEnforcers.BlockNumberEnforcer?.toLowerCase():
125-
return { type: 'blockNumber', ...decodeBlockNumberTerms(terms) };
132+
return { type: CaveatType.BlockNumber, ...decodeBlockNumberTerms(terms) };
126133
case caveatEnforcers.DeployedEnforcer?.toLowerCase():
127-
return { type: 'deployed', ...decodeDeployedTerms(terms) };
134+
return { type: CaveatType.Deployed, ...decodeDeployedTerms(terms) };
128135
case caveatEnforcers.ERC20BalanceChangeEnforcer?.toLowerCase():
129136
return {
130-
type: 'erc20BalanceChange',
137+
type: CaveatType.Erc20BalanceChange,
131138
...decodeERC20BalanceChangeTerms(terms),
132139
};
133140
case caveatEnforcers.ERC20TransferAmountEnforcer?.toLowerCase():
134141
return {
135-
type: 'erc20TransferAmount',
142+
type: CaveatType.Erc20TransferAmount,
136143
...decodeERC20TransferAmountTerms(terms),
137144
};
138145
case caveatEnforcers.ERC20StreamingEnforcer?.toLowerCase():
139-
return { type: 'erc20Streaming', ...decodeERC20StreamingTerms(terms) };
146+
return {
147+
type: CaveatType.Erc20Streaming,
148+
...decodeERC20StreamingTerms(terms),
149+
};
140150
case caveatEnforcers.ERC721BalanceChangeEnforcer?.toLowerCase():
141151
return {
142-
type: 'erc721BalanceChange',
152+
type: CaveatType.Erc721BalanceChange,
143153
...decodeERC721BalanceChangeTerms(terms),
144154
};
145155
case caveatEnforcers.ERC721TransferEnforcer?.toLowerCase():
146-
return { type: 'erc721Transfer', ...decodeERC721TransferTerms(terms) };
156+
return {
157+
type: CaveatType.Erc721Transfer,
158+
...decodeERC721TransferTerms(terms),
159+
};
147160
case caveatEnforcers.ERC1155BalanceChangeEnforcer?.toLowerCase():
148161
return {
149-
type: 'erc1155BalanceChange',
162+
type: CaveatType.Erc1155BalanceChange,
150163
...decodeERC1155BalanceChangeTerms(terms),
151164
};
152165
case caveatEnforcers.IdEnforcer?.toLowerCase():
153-
return { type: 'id', ...decodeIdTerms(terms) };
166+
return { type: CaveatType.Id, ...decodeIdTerms(terms) };
154167
case caveatEnforcers.LimitedCallsEnforcer?.toLowerCase():
155-
return { type: 'limitedCalls', ...decodeLimitedCallsTerms(terms) };
168+
return {
169+
type: CaveatType.LimitedCalls,
170+
...decodeLimitedCallsTerms(terms),
171+
};
156172
case caveatEnforcers.NonceEnforcer?.toLowerCase():
157-
return { type: 'nonce', ...decodeNonceTerms(terms) };
173+
return { type: CaveatType.Nonce, ...decodeNonceTerms(terms) };
158174
case caveatEnforcers.TimestampEnforcer?.toLowerCase():
159-
return { type: 'timestamp', ...decodeTimestampTerms(terms) };
175+
return { type: CaveatType.Timestamp, ...decodeTimestampTerms(terms) };
160176
case caveatEnforcers.ValueLteEnforcer?.toLowerCase():
161-
return { type: 'valueLte', ...decodeValueLteTerms(terms) };
177+
return { type: CaveatType.ValueLte, ...decodeValueLteTerms(terms) };
162178
case caveatEnforcers.NativeTokenTransferAmountEnforcer?.toLowerCase():
163179
return {
164-
type: 'nativeTokenTransferAmount',
180+
type: CaveatType.NativeTokenTransferAmount,
165181
...decodeNativeTokenTransferAmountTerms(terms),
166182
};
167183
case caveatEnforcers.NativeBalanceChangeEnforcer?.toLowerCase():
168184
return {
169-
type: 'nativeBalanceChange',
185+
type: CaveatType.NativeBalanceChange,
170186
...decodeNativeBalanceChangeTerms(terms),
171187
};
172188
case caveatEnforcers.NativeTokenStreamingEnforcer?.toLowerCase():
173189
return {
174-
type: 'nativeTokenStreaming',
190+
type: CaveatType.NativeTokenStreaming,
175191
...decodeNativeTokenStreamingTerms(terms),
176192
};
177193
case caveatEnforcers.NativeTokenPaymentEnforcer?.toLowerCase():
178194
return {
179-
type: 'nativeTokenPayment',
195+
type: CaveatType.NativeTokenPayment,
180196
...decodeNativeTokenPaymentTerms(terms),
181197
};
182198
case caveatEnforcers.RedeemerEnforcer?.toLowerCase():
183-
return { type: 'redeemer', ...decodeRedeemerTerms(terms) };
199+
return { type: CaveatType.Redeemer, ...decodeRedeemerTerms(terms) };
184200
case caveatEnforcers.SpecificActionERC20TransferBatchEnforcer?.toLowerCase():
185201
return {
186-
type: 'specificActionERC20TransferBatch',
202+
type: CaveatType.SpecificActionERC20TransferBatch,
187203
...decodeSpecificActionERC20TransferBatchTerms(terms),
188204
};
189205
case caveatEnforcers.ERC20PeriodTransferEnforcer?.toLowerCase():
190206
return {
191-
type: 'erc20PeriodTransfer',
207+
type: CaveatType.Erc20PeriodTransfer,
192208
...decodeERC20TokenPeriodTransferTerms(terms),
193209
};
194210
case caveatEnforcers.NativeTokenPeriodTransferEnforcer?.toLowerCase():
195211
return {
196-
type: 'nativeTokenPeriodTransfer',
212+
type: CaveatType.NativeTokenPeriodTransfer,
197213
...decodeNativeTokenPeriodTransferTerms(terms),
198214
};
199215
case caveatEnforcers.ExactCalldataBatchEnforcer?.toLowerCase():
200216
return {
201-
type: 'exactCalldataBatch',
217+
type: CaveatType.ExactCalldataBatch,
202218
...decodeExactCalldataBatchTerms(terms),
203219
};
204220
case caveatEnforcers.ExactCalldataEnforcer?.toLowerCase():
205-
return { type: 'exactCalldata', ...decodeExactCalldataTerms(terms) };
221+
return {
222+
type: CaveatType.ExactCalldata,
223+
...decodeExactCalldataTerms(terms),
224+
};
206225
case caveatEnforcers.ExactExecutionEnforcer?.toLowerCase():
207-
return { type: 'exactExecution', ...decodeExactExecutionTerms(terms) };
226+
return {
227+
type: CaveatType.ExactExecution,
228+
...decodeExactExecutionTerms(terms),
229+
};
208230
case caveatEnforcers.ExactExecutionBatchEnforcer?.toLowerCase():
209231
return {
210-
type: 'exactExecutionBatch',
232+
type: CaveatType.ExactExecutionBatch,
211233
...decodeExactExecutionBatchTerms(terms),
212234
};
213235
case caveatEnforcers.MultiTokenPeriodEnforcer?.toLowerCase():
214236
return {
215-
type: 'multiTokenPeriod',
237+
type: CaveatType.MultiTokenPeriod,
216238
...decodeMultiTokenPeriodTerms(terms),
217239
};
218240
case caveatEnforcers.OwnershipTransferEnforcer?.toLowerCase():
219241
return {
220-
type: 'ownershipTransfer',
242+
type: CaveatType.OwnershipTransfer,
221243
...decodeOwnershipTransferTerms(terms),
222244
};
223245
default:

0 commit comments

Comments
 (0)