@@ -7,13 +7,6 @@ import * as NativeTokenPeriodTransferEnforcer from '../DelegationFramework/Nativ
77import * as NativeTokenStreamingEnforcer from '../DelegationFramework/NativeTokenStreamingEnforcer' ;
88import type { DeleGatorEnvironment } from '../types' ;
99
10- /**
11- * Configuration for caveat enforcer client
12- */
13- export type CaveatEnforcerClientConfig = {
14- environment : DeleGatorEnvironment ;
15- } ;
16-
1710/**
1811 * Shared base params for all enforcer actions
1912 */
@@ -119,23 +112,20 @@ function resolveEnforcerAddress(
119112 * Get available amount for ERC20 period transfer enforcer.
120113 *
121114 * @param client - The viem public client.
122- * @param config - The configuration for caveat enforcers .
115+ * @param environment - The delegator environment .
123116 * @param params - The parameters for the ERC20 period transfer enforcer.
124117 * @returns Promise resolving to the period transfer result.
125118 */
126119export async function getErc20PeriodTransferEnforcerAvailableAmount (
127120 client : PublicClient ,
128- config : CaveatEnforcerClientConfig ,
121+ environment : DeleGatorEnvironment ,
129122 params : ERC20PeriodTransferParams ,
130123) : Promise < PeriodTransferResult > {
131- const delegationManager = resolveDelegationManager (
132- params ,
133- config . environment ,
134- ) ;
124+ const delegationManager = resolveDelegationManager ( params , environment ) ;
135125 const enforcerAddress = resolveEnforcerAddress (
136126 'ERC20PeriodTransferEnforcer' ,
137127 params ,
138- config . environment ,
128+ environment ,
139129 ) ;
140130
141131 return ERC20PeriodTransferEnforcer . read . getAvailableAmount ( {
@@ -151,23 +141,20 @@ export async function getErc20PeriodTransferEnforcerAvailableAmount(
151141 * Get available amount for ERC20 streaming enforcer.
152142 *
153143 * @param client - The viem public client.
154- * @param config - The configuration for caveat enforcers .
144+ * @param environment - The delegator environment .
155145 * @param params - The parameters for the ERC20 streaming enforcer.
156146 * @returns Promise resolving to the streaming result.
157147 */
158148export async function getErc20StreamingEnforcerAvailableAmount (
159149 client : PublicClient ,
160- config : CaveatEnforcerClientConfig ,
150+ environment : DeleGatorEnvironment ,
161151 params : ERC20StreamingParams ,
162152) : Promise < StreamingResult > {
163- const delegationManager = resolveDelegationManager (
164- params ,
165- config . environment ,
166- ) ;
153+ const delegationManager = resolveDelegationManager ( params , environment ) ;
167154 const enforcerAddress = resolveEnforcerAddress (
168155 'ERC20StreamingEnforcer' ,
169156 params ,
170- config . environment ,
157+ environment ,
171158 ) ;
172159
173160 return ERC20StreamingEnforcer . read . getAvailableAmount ( {
@@ -183,23 +170,20 @@ export async function getErc20StreamingEnforcerAvailableAmount(
183170 * Get available amount for multi-token period enforcer.
184171 *
185172 * @param client - The viem public client.
186- * @param config - The configuration for caveat enforcers .
173+ * @param environment - The delegator environment .
187174 * @param params - The parameters for the multi-token period enforcer.
188175 * @returns Promise resolving to the period transfer result.
189176 */
190177export async function getMultiTokenPeriodEnforcerAvailableAmount (
191178 client : PublicClient ,
192- config : CaveatEnforcerClientConfig ,
179+ environment : DeleGatorEnvironment ,
193180 params : MultiTokenPeriodParams ,
194181) : Promise < PeriodTransferResult > {
195- const delegationManager = resolveDelegationManager (
196- params ,
197- config . environment ,
198- ) ;
182+ const delegationManager = resolveDelegationManager ( params , environment ) ;
199183 const enforcerAddress = resolveEnforcerAddress (
200184 'MultiTokenPeriodEnforcer' ,
201185 params ,
202- config . environment ,
186+ environment ,
203187 ) ;
204188
205189 return MultiTokenPeriodEnforcer . read . getAvailableAmount ( {
@@ -216,23 +200,20 @@ export async function getMultiTokenPeriodEnforcerAvailableAmount(
216200 * Get available amount for native token period transfer enforcer.
217201 *
218202 * @param client - The viem public client.
219- * @param config - The configuration for caveat enforcers .
203+ * @param environment - The delegator environment .
220204 * @param params - The parameters for the native token period transfer enforcer.
221205 * @returns Promise resolving to the period transfer result.
222206 */
223207export async function getNativeTokenPeriodTransferEnforcerAvailableAmount (
224208 client : PublicClient ,
225- config : CaveatEnforcerClientConfig ,
209+ environment : DeleGatorEnvironment ,
226210 params : NativeTokenPeriodTransferParams ,
227211) : Promise < PeriodTransferResult > {
228- const delegationManager = resolveDelegationManager (
229- params ,
230- config . environment ,
231- ) ;
212+ const delegationManager = resolveDelegationManager ( params , environment ) ;
232213 const enforcerAddress = resolveEnforcerAddress (
233214 'NativeTokenPeriodTransferEnforcer' ,
234215 params ,
235- config . environment ,
216+ environment ,
236217 ) ;
237218
238219 return NativeTokenPeriodTransferEnforcer . read . getAvailableAmount ( {
@@ -248,23 +229,20 @@ export async function getNativeTokenPeriodTransferEnforcerAvailableAmount(
248229 * Get available amount for native token streaming enforcer.
249230 *
250231 * @param client - The viem public client.
251- * @param config - The configuration for caveat enforcers .
232+ * @param environment - The delegator environment .
252233 * @param params - The parameters for the native token streaming enforcer.
253234 * @returns Promise resolving to the streaming result.
254235 */
255236export async function getNativeTokenStreamingEnforcerAvailableAmount (
256237 client : PublicClient ,
257- config : CaveatEnforcerClientConfig ,
238+ environment : DeleGatorEnvironment ,
258239 params : NativeTokenStreamingParams ,
259240) : Promise < StreamingResult > {
260- const delegationManager = resolveDelegationManager (
261- params ,
262- config . environment ,
263- ) ;
241+ const delegationManager = resolveDelegationManager ( params , environment ) ;
264242 const enforcerAddress = resolveEnforcerAddress (
265243 'NativeTokenStreamingEnforcer' ,
266244 params ,
267- config . environment ,
245+ environment ,
268246 ) ;
269247
270248 return NativeTokenStreamingEnforcer . read . getAvailableAmount ( {
@@ -280,112 +258,113 @@ export async function getNativeTokenStreamingEnforcerAvailableAmount(
280258 * Caveat enforcer actions for extending viem clients.
281259 *
282260 * @param params - The parameters object.
283- * @param params.client - The viem public client.
284- * @param params.config - The configuration for caveat enforcers.
285- * @returns The client extension with caveat enforcer actions.
261+ * @param params.environment - The delegator environment.
262+ * @returns A function that takes a client and returns the client extension with caveat enforcer actions.
286263 */
287- export const caveatEnforcerActions = ( {
288- client,
289- config,
290- } : {
291- client : PublicClient ;
292- config : CaveatEnforcerClientConfig ;
293- } ) => ( {
294- /**
295- * Get available amount for ERC20 period transfer enforcer.
296- *
297- * @param params - The parameters for the ERC20 period transfer enforcer.
298- * @returns Promise resolving to the period transfer result.
299- */
300- getErc20PeriodTransferEnforcerAvailableAmount : async (
301- params : ERC20PeriodTransferParams ,
302- ) : Promise < PeriodTransferResult > => {
303- return getErc20PeriodTransferEnforcerAvailableAmount (
304- client ,
305- config ,
306- params ,
307- ) ;
308- } ,
309-
310- /**
311- * Get available amount for ERC20 streaming enforcer.
312- *
313- * @param params - The parameters for the ERC20 streaming enforcer.
314- * @returns Promise resolving to the streaming result.
315- */
316- getErc20StreamingEnforcerAvailableAmount : async (
317- params : ERC20StreamingParams ,
318- ) : Promise < StreamingResult > => {
319- return getErc20StreamingEnforcerAvailableAmount ( client , config , params ) ;
320- } ,
321-
322- /**
323- * Get available amount for multi-token period enforcer.
324- *
325- * @param params - The parameters for the multi-token period enforcer.
326- * @returns Promise resolving to the period transfer result.
327- */
328- getMultiTokenPeriodEnforcerAvailableAmount : async (
329- params : MultiTokenPeriodParams ,
330- ) : Promise < PeriodTransferResult > => {
331- return getMultiTokenPeriodEnforcerAvailableAmount ( client , config , params ) ;
332- } ,
333-
334- /**
335- * Get available amount for native token period transfer enforcer.
336- *
337- * @param params - The parameters for the native token period transfer enforcer.
338- * @returns Promise resolving to the period transfer result.
339- */
340- getNativeTokenPeriodTransferEnforcerAvailableAmount : async (
341- params : NativeTokenPeriodTransferParams ,
342- ) : Promise < PeriodTransferResult > => {
343- return getNativeTokenPeriodTransferEnforcerAvailableAmount (
344- client ,
345- config ,
346- params ,
347- ) ;
348- } ,
349-
350- /**
351- * Get available amount for native token streaming enforcer.
352- *
353- * @param params - The parameters for the native token streaming enforcer.
354- * @returns Promise resolving to the streaming result.
355- */
356- getNativeTokenStreamingEnforcerAvailableAmount : async (
357- params : NativeTokenStreamingParams ,
358- ) : Promise < StreamingResult > => {
359- return getNativeTokenStreamingEnforcerAvailableAmount (
360- client ,
361- config ,
362- params ,
363- ) ;
364- } ,
365- } ) ;
264+ export const caveatEnforcerActions =
265+ ( { environment } : { environment : DeleGatorEnvironment } ) =>
266+ ( client : PublicClient ) => ( {
267+ /**
268+ * Get available amount for ERC20 period transfer enforcer.
269+ *
270+ * @param params - The parameters for the ERC20 period transfer enforcer.
271+ * @returns Promise resolving to the period transfer result.
272+ */
273+ getErc20PeriodTransferEnforcerAvailableAmount : async (
274+ params : ERC20PeriodTransferParams ,
275+ ) : Promise < PeriodTransferResult > => {
276+ return getErc20PeriodTransferEnforcerAvailableAmount (
277+ client ,
278+ environment ,
279+ params ,
280+ ) ;
281+ } ,
282+
283+ /**
284+ * Get available amount for ERC20 streaming enforcer.
285+ *
286+ * @param params - The parameters for the ERC20 streaming enforcer.
287+ * @returns Promise resolving to the streaming result.
288+ */
289+ getErc20StreamingEnforcerAvailableAmount : async (
290+ params : ERC20StreamingParams ,
291+ ) : Promise < StreamingResult > => {
292+ return getErc20StreamingEnforcerAvailableAmount (
293+ client ,
294+ environment ,
295+ params ,
296+ ) ;
297+ } ,
298+
299+ /**
300+ * Get available amount for multi-token period enforcer.
301+ *
302+ * @param params - The parameters for the multi-token period enforcer.
303+ * @returns Promise resolving to the period transfer result.
304+ */
305+ getMultiTokenPeriodEnforcerAvailableAmount : async (
306+ params : MultiTokenPeriodParams ,
307+ ) : Promise < PeriodTransferResult > => {
308+ return getMultiTokenPeriodEnforcerAvailableAmount (
309+ client ,
310+ environment ,
311+ params ,
312+ ) ;
313+ } ,
314+
315+ /**
316+ * Get available amount for native token period transfer enforcer.
317+ *
318+ * @param params - The parameters for the native token period transfer enforcer.
319+ * @returns Promise resolving to the period transfer result.
320+ */
321+ getNativeTokenPeriodTransferEnforcerAvailableAmount : async (
322+ params : NativeTokenPeriodTransferParams ,
323+ ) : Promise < PeriodTransferResult > => {
324+ return getNativeTokenPeriodTransferEnforcerAvailableAmount (
325+ client ,
326+ environment ,
327+ params ,
328+ ) ;
329+ } ,
330+
331+ /**
332+ * Get available amount for native token streaming enforcer.
333+ *
334+ * @param params - The parameters for the native token streaming enforcer.
335+ * @returns Promise resolving to the streaming result.
336+ */
337+ getNativeTokenStreamingEnforcerAvailableAmount : async (
338+ params : NativeTokenStreamingParams ,
339+ ) : Promise < StreamingResult > => {
340+ return getNativeTokenStreamingEnforcerAvailableAmount (
341+ client ,
342+ environment ,
343+ params ,
344+ ) ;
345+ } ,
346+ } ) ;
366347
367348/**
368349 * Type for client extended with caveat enforcer actions.
369350 */
370351export type CaveatEnforcerClient = PublicClient &
371- ReturnType < typeof caveatEnforcerActions > ;
352+ ReturnType < ReturnType < typeof caveatEnforcerActions > > ;
372353
373354/**
374355 * Create a viem client extended with caveat enforcer actions.
375356 *
376357 * @param params - The parameters object.
377358 * @param params.client - The viem public client.
378- * @param params.config - The configuration for caveat enforcers .
359+ * @param params.environment - The delegator environment .
379360 * @returns The extended client with caveat enforcer actions.
380361 */
381362export function createCaveatEnforcerClient ( {
382363 client,
383- config ,
364+ environment ,
384365} : {
385366 client : PublicClient ;
386- config : CaveatEnforcerClientConfig ;
367+ environment : DeleGatorEnvironment ;
387368} ) : CaveatEnforcerClient {
388- return client . extend ( ( extendedClient ) =>
389- caveatEnforcerActions ( { client : extendedClient , config } ) ,
390- ) ;
369+ return client . extend ( caveatEnforcerActions ( { environment } ) ) ;
391370}
0 commit comments