@@ -39,23 +39,26 @@ export type StreamingResult = {
3939 * @throws Error if no matching caveat is found.
4040 * @throws Error if multiple matching caveats are found.
4141 */
42- function findMatchingCaveat (
43- delegation : Delegation ,
44- enforcerAddress : Address ,
45- ) : { terms : Hex ; args : Hex } {
42+ function findMatchingCaveat ( {
43+ delegation,
44+ enforcerAddress,
45+ enforcerName,
46+ } : {
47+ delegation : Delegation ;
48+ enforcerAddress : Address ;
49+ enforcerName : keyof DeleGatorEnvironment [ 'caveatEnforcers' ] ;
50+ } ) : { terms : Hex ; args : Hex } {
4651 const matchingCaveats = delegation . caveats . filter (
4752 ( caveat ) => caveat . enforcer . toLowerCase ( ) === enforcerAddress . toLowerCase ( ) ,
4853 ) ;
4954
5055 if ( matchingCaveats . length === 0 ) {
51- throw new Error (
52- `No caveat found with enforcer matching ${ enforcerAddress } ` ,
53- ) ;
56+ throw new Error ( `No caveat found with enforcer matching ${ enforcerName } ` ) ;
5457 }
5558
5659 if ( matchingCaveats . length > 1 ) {
5760 throw new Error (
58- `Multiple caveats found with enforcer matching ${ enforcerAddress } ` ,
61+ `Multiple caveats found with enforcer matching ${ enforcerName } ` ,
5962 ) ;
6063 }
6164
@@ -90,10 +93,13 @@ function getDelegationManager(environment: DeleGatorEnvironment): Address {
9093 * @param environment - The delegator environment.
9194 * @returns The enforcer address.
9295 */
93- function getEnforcerAddress (
94- enforcerName : keyof DeleGatorEnvironment [ 'caveatEnforcers' ] ,
95- environment : DeleGatorEnvironment ,
96- ) : Address {
96+ function getEnforcerAddress ( {
97+ enforcerName,
98+ environment,
99+ } : {
100+ enforcerName : keyof DeleGatorEnvironment [ 'caveatEnforcers' ] ;
101+ environment : DeleGatorEnvironment ;
102+ } ) : Address {
97103 const enforcerAddress = environment . caveatEnforcers [ enforcerName ] ;
98104 if ( ! enforcerAddress ) {
99105 throw new Error ( `${ enforcerName } not found in environment` ) ;
@@ -115,14 +121,20 @@ export async function getErc20PeriodTransferEnforcerAvailableAmount(
115121 environment : DeleGatorEnvironment ,
116122 params : CaveatEnforcerParams ,
117123) : Promise < PeriodTransferResult > {
124+ const enforcerName = 'ERC20PeriodTransferEnforcer' ;
125+
118126 const delegationManager = getDelegationManager ( environment ) ;
119- const enforcerAddress = getEnforcerAddress (
120- 'ERC20PeriodTransferEnforcer' ,
127+ const enforcerAddress = getEnforcerAddress ( {
128+ enforcerName ,
121129 environment,
122- ) ;
130+ } ) ;
123131
124132 const delegationHash = getDelegationHashOffchain ( params . delegation ) ;
125- const { terms } = findMatchingCaveat ( params . delegation , enforcerAddress ) ;
133+ const { terms } = findMatchingCaveat ( {
134+ delegation : params . delegation ,
135+ enforcerAddress,
136+ enforcerName,
137+ } ) ;
126138
127139 return ERC20PeriodTransferEnforcer . read . getAvailableAmount ( {
128140 client,
@@ -146,14 +158,19 @@ export async function getErc20StreamingEnforcerAvailableAmount(
146158 environment : DeleGatorEnvironment ,
147159 params : CaveatEnforcerParams ,
148160) : Promise < StreamingResult > {
161+ const enforcerName = 'ERC20StreamingEnforcer' ;
149162 const delegationManager = getDelegationManager ( environment ) ;
150- const enforcerAddress = getEnforcerAddress (
151- 'ERC20StreamingEnforcer' ,
163+ const enforcerAddress = getEnforcerAddress ( {
164+ enforcerName ,
152165 environment,
153- ) ;
166+ } ) ;
154167
155168 const delegationHash = getDelegationHashOffchain ( params . delegation ) ;
156- const { terms } = findMatchingCaveat ( params . delegation , enforcerAddress ) ;
169+ const { terms } = findMatchingCaveat ( {
170+ delegation : params . delegation ,
171+ enforcerAddress,
172+ enforcerName,
173+ } ) ;
157174
158175 return ERC20StreamingEnforcer . read . getAvailableAmount ( {
159176 client,
@@ -177,17 +194,19 @@ export async function getMultiTokenPeriodEnforcerAvailableAmount(
177194 environment : DeleGatorEnvironment ,
178195 params : CaveatEnforcerParams ,
179196) : Promise < PeriodTransferResult > {
197+ const enforcerName = 'MultiTokenPeriodEnforcer' ;
180198 const delegationManager = getDelegationManager ( environment ) ;
181- const enforcerAddress = getEnforcerAddress (
182- 'MultiTokenPeriodEnforcer' ,
199+ const enforcerAddress = getEnforcerAddress ( {
200+ enforcerName ,
183201 environment,
184- ) ;
202+ } ) ;
185203
186204 const delegationHash = getDelegationHashOffchain ( params . delegation ) ;
187- const { terms, args } = findMatchingCaveat (
188- params . delegation ,
205+ const { terms, args } = findMatchingCaveat ( {
206+ delegation : params . delegation ,
189207 enforcerAddress,
190- ) ;
208+ enforcerName,
209+ } ) ;
191210
192211 return MultiTokenPeriodEnforcer . read . getAvailableAmount ( {
193212 client,
@@ -212,14 +231,19 @@ export async function getNativeTokenPeriodTransferEnforcerAvailableAmount(
212231 environment : DeleGatorEnvironment ,
213232 params : CaveatEnforcerParams ,
214233) : Promise < PeriodTransferResult > {
234+ const enforcerName = 'NativeTokenPeriodTransferEnforcer' ;
215235 const delegationManager = getDelegationManager ( environment ) ;
216- const enforcerAddress = getEnforcerAddress (
217- 'NativeTokenPeriodTransferEnforcer' ,
236+ const enforcerAddress = getEnforcerAddress ( {
237+ enforcerName ,
218238 environment,
219- ) ;
239+ } ) ;
220240
221241 const delegationHash = getDelegationHashOffchain ( params . delegation ) ;
222- const { terms } = findMatchingCaveat ( params . delegation , enforcerAddress ) ;
242+ const { terms } = findMatchingCaveat ( {
243+ delegation : params . delegation ,
244+ enforcerAddress,
245+ enforcerName,
246+ } ) ;
223247
224248 return NativeTokenPeriodTransferEnforcer . read . getAvailableAmount ( {
225249 client,
@@ -243,14 +267,19 @@ export async function getNativeTokenStreamingEnforcerAvailableAmount(
243267 environment : DeleGatorEnvironment ,
244268 params : CaveatEnforcerParams ,
245269) : Promise < StreamingResult > {
270+ const enforcerName = 'NativeTokenStreamingEnforcer' ;
246271 const delegationManager = getDelegationManager ( environment ) ;
247- const enforcerAddress = getEnforcerAddress (
248- 'NativeTokenStreamingEnforcer' ,
272+ const enforcerAddress = getEnforcerAddress ( {
273+ enforcerName ,
249274 environment,
250- ) ;
275+ } ) ;
251276
252277 const delegationHash = getDelegationHashOffchain ( params . delegation ) ;
253- const { terms } = findMatchingCaveat ( params . delegation , enforcerAddress ) ;
278+ const { terms } = findMatchingCaveat ( {
279+ delegation : params . delegation ,
280+ enforcerAddress,
281+ enforcerName,
282+ } ) ;
254283
255284 return NativeTokenStreamingEnforcer . read . getAvailableAmount ( {
256285 client,
0 commit comments