@@ -14,6 +14,7 @@ describe('createFunctionCallCaveatBuilder', () => {
1414 AllowedMethodsEnforcer : randomAddress ( ) ,
1515 AllowedCalldataEnforcer : randomAddress ( ) ,
1616 ExactCalldataEnforcer : randomAddress ( ) ,
17+ ValueLteEnforcer : randomAddress ( ) ,
1718 } ,
1819 } as unknown as SmartAccountsEnvironment ;
1920
@@ -39,6 +40,11 @@ describe('createFunctionCallCaveatBuilder', () => {
3940 args : '0x' ,
4041 terms : concat ( config . selectors as Hex [ ] ) ,
4142 } ,
43+ {
44+ enforcer : environment . caveatEnforcers . ValueLteEnforcer ,
45+ args : '0x' ,
46+ terms : toHex ( 0n , { size : 32 } ) ,
47+ } ,
4248 ] ) ;
4349 } ) ;
4450
@@ -66,6 +72,11 @@ describe('createFunctionCallCaveatBuilder', () => {
6672 args : '0x' ,
6773 terms : concat ( config . selectors as Hex [ ] ) ,
6874 } ,
75+ {
76+ enforcer : environment . caveatEnforcers . ValueLteEnforcer ,
77+ args : '0x' ,
78+ terms : toHex ( 0n , { size : 32 } ) ,
79+ } ,
6980 {
7081 enforcer : environment . caveatEnforcers . AllowedCalldataEnforcer ,
7182 args : '0x' ,
@@ -101,6 +112,11 @@ describe('createFunctionCallCaveatBuilder', () => {
101112 args : '0x' ,
102113 terms : concat ( config . selectors as Hex [ ] ) ,
103114 } ,
115+ {
116+ enforcer : environment . caveatEnforcers . ValueLteEnforcer ,
117+ args : '0x' ,
118+ terms : toHex ( 0n , { size : 32 } ) ,
119+ } ,
104120 {
105121 enforcer : environment . caveatEnforcers . ExactCalldataEnforcer ,
106122 args : '0x' ,
@@ -109,6 +125,37 @@ describe('createFunctionCallCaveatBuilder', () => {
109125 ] ) ;
110126 } ) ;
111127
128+ it ( 'creates a Function Call CaveatBuilder with configured valueLte' , ( ) => {
129+ const config : FunctionCallScopeConfig = {
130+ type : 'functionCall' ,
131+ targets : [ randomAddress ( ) ] ,
132+ selectors : [ '0x12345678' ] ,
133+ valueLte : { maxValue : 123n } ,
134+ } ;
135+
136+ const caveatBuilder = createFunctionCallCaveatBuilder ( environment , config ) ;
137+
138+ const caveats = caveatBuilder . build ( ) ;
139+
140+ expect ( caveats ) . to . deep . equal ( [
141+ {
142+ enforcer : environment . caveatEnforcers . AllowedTargetsEnforcer ,
143+ args : '0x' ,
144+ terms : concat ( config . targets ) ,
145+ } ,
146+ {
147+ enforcer : environment . caveatEnforcers . AllowedMethodsEnforcer ,
148+ args : '0x' ,
149+ terms : concat ( config . selectors as Hex [ ] ) ,
150+ } ,
151+ {
152+ enforcer : environment . caveatEnforcers . ValueLteEnforcer ,
153+ args : '0x' ,
154+ terms : toHex ( 123n , { size : 32 } ) ,
155+ } ,
156+ ] ) ;
157+ } ) ;
158+
112159 it ( 'throws an error for invalid configuration' , ( ) => {
113160 const config = {
114161 type : 'functionCall' ,
0 commit comments