@@ -165,8 +165,8 @@ describe("FeePolicy", function () {
165165 it ( "should revert" , async function ( ) {
166166 await expect (
167167 feePolicy . connect ( otherUser ) . updatePerpRolloverFees ( {
168- lower : toPerc ( "- 0.01" ) ,
169- upper : toPerc ( "0.01" ) ,
168+ perpRateMax : toPerc ( "0.01" ) ,
169+ vaultRateMax : toPerc ( "0.01" ) ,
170170 growth : toPerc ( "3" ) ,
171171 } ) ,
172172 ) . to . be . revertedWith ( "Ownable: caller is not the owner" ) ;
@@ -177,48 +177,34 @@ describe("FeePolicy", function () {
177177 it ( "should revert" , async function ( ) {
178178 await expect (
179179 feePolicy . connect ( deployer ) . updatePerpRolloverFees ( {
180- lower : toPerc ( "-0.051 " ) ,
181- upper : toPerc ( "0.01" ) ,
180+ perpRateMax : toPerc ( "-0.05 " ) ,
181+ vaultRateMax : toPerc ( "0.01" ) ,
182182 growth : toPerc ( "3" ) ,
183183 } ) ,
184- ) . to . be . revertedWithCustomError ( feePolicy , "InvalidSigmoidAsymptotes" ) ;
185- } ) ;
186- it ( "should revert" , async function ( ) {
187- await expect (
188- feePolicy . connect ( deployer ) . updatePerpRolloverFees ( {
189- lower : toPerc ( "-0.01" ) ,
190- upper : toPerc ( "0.051" ) ,
191- growth : toPerc ( "3" ) ,
192- } ) ,
193- ) . to . be . revertedWithCustomError ( feePolicy , "InvalidSigmoidAsymptotes" ) ;
184+ ) . to . be . revertedWithCustomError ( feePolicy , "InvalidPerc" ) ;
194185 } ) ;
195-
196186 it ( "should revert" , async function ( ) {
197187 await expect (
198188 feePolicy . connect ( deployer ) . updatePerpRolloverFees ( {
199- lower : toPerc ( "0.02 " ) ,
200- upper : toPerc ( "0.01 " ) ,
189+ perpRateMax : toPerc ( "0.01 " ) ,
190+ vaultRateMax : toPerc ( "-0.05 " ) ,
201191 growth : toPerc ( "3" ) ,
202192 } ) ,
203- ) . to . be . revertedWithCustomError ( feePolicy , "InvalidSigmoidAsymptotes " ) ;
193+ ) . to . be . revertedWithCustomError ( feePolicy , "InvalidPerc " ) ;
204194 } ) ;
205195 } ) ;
206196
207197 describe ( "when triggered by owner" , function ( ) {
208198 it ( "should update parameters" , async function ( ) {
209- expect ( await feePolicy . computePerpRolloverFeePerc ( toPerc ( "1" ) ) ) . to . eq ( 0 ) ;
210- expect ( await feePolicy . computePerpRolloverFeePerc ( toPerc ( "10" ) ) ) . to . eq ( toPerc ( "0.00769230" ) ) ;
211- expect ( await feePolicy . computePerpRolloverFeePerc ( "0" ) ) . to . eq ( toPerc ( "-0.00245837" ) ) ;
212-
213199 await feePolicy . connect ( deployer ) . updatePerpRolloverFees ( {
214- lower : toPerc ( "- 0.009" ) ,
215- upper : toPerc ( "0.009 " ) ,
216- growth : toPerc ( "3 " ) ,
200+ perpRateMax : toPerc ( "0.009" ) ,
201+ vaultRateMax : toPerc ( "0.01 " ) ,
202+ growth : toPerc ( "7 " ) ,
217203 } ) ;
218-
219- expect ( await feePolicy . computePerpRolloverFeePerc ( toPerc ( "1" ) ) ) . to . eq ( 0 ) ;
220- expect ( await feePolicy . computePerpRolloverFeePerc ( toPerc ( "10" ) ) ) . to . eq ( toPerc ( "0.009 " ) ) ;
221- expect ( await feePolicy . computePerpRolloverFeePerc ( "0" ) ) . to . eq ( toPerc ( "-0.007 " ) ) ;
204+ const p = await feePolicy . perpRolloverFee ( ) ;
205+ expect ( p . perpRateMax ) . to . eq ( toPerc ( "0.009" ) ) ;
206+ expect ( p . vaultRateMax ) . to . eq ( toPerc ( "0.01 " ) ) ;
207+ expect ( p . growth ) . to . eq ( toPerc ( "7 " ) ) ;
222208 } ) ;
223209 } ) ;
224210 } ) ;
@@ -339,9 +325,9 @@ describe("FeePolicy", function () {
339325 await feePolicy . updatePerpMintFees ( toPerc ( "0.025" ) ) ;
340326 await feePolicy . updatePerpBurnFees ( toPerc ( "0.035" ) ) ;
341327 await feePolicy . updatePerpRolloverFees ( {
342- lower : toPerc ( "-0.00253 " ) ,
343- upper : toPerc ( "0.00769 " ) ,
344- growth : toPerc ( "5 " ) ,
328+ perpRateMax : toPerc ( "0.1 " ) ,
329+ vaultRateMax : toPerc ( "0.05 " ) ,
330+ growth : toPerc ( "25 " ) ,
345331 } ) ;
346332 await feePolicy . updateVaultUnderlyingToPerpSwapFeePerc ( toPerc ( "0.1" ) ) ;
347333 await feePolicy . updateVaultPerpToUnderlyingSwapFeePerc ( toPerc ( "0.15" ) ) ;
@@ -482,21 +468,28 @@ describe("FeePolicy", function () {
482468
483469 describe ( "rollover fee" , function ( ) {
484470 it ( "should compute fees as expected" , async function ( ) {
485- expect ( await feePolicy . computePerpRolloverFeePerc ( toPerc ( "0.01" ) ) ) . to . eq ( toPerc ( "-0.00242144" ) ) ;
486- expect ( await feePolicy . computePerpRolloverFeePerc ( toPerc ( "0.25" ) ) ) . to . eq ( toPerc ( "-0.00228606" ) ) ;
487- expect ( await feePolicy . computePerpRolloverFeePerc ( toPerc ( "0.5" ) ) ) . to . eq ( toPerc ( "-0.00196829" ) ) ;
488- expect ( await feePolicy . computePerpRolloverFeePerc ( toPerc ( "0.75" ) ) ) . to . eq ( toPerc ( "-0.00128809" ) ) ;
489- expect ( await feePolicy . computePerpRolloverFeePerc ( toPerc ( "0.9" ) ) ) . to . eq ( toPerc ( "-0.00060117" ) ) ;
490- expect ( await feePolicy . computePerpRolloverFeePerc ( toPerc ( "0.99" ) ) ) . to . eq ( toPerc ( "-0.00004101" ) ) ;
491- expect ( await feePolicy . computePerpRolloverFeePerc ( toPerc ( "1" ) ) ) . to . eq ( "0" ) ;
492- expect ( await feePolicy . computePerpRolloverFeePerc ( toPerc ( "1.01" ) ) ) . to . eq ( toPerc ( "0.00004146" ) ) ;
493- expect ( await feePolicy . computePerpRolloverFeePerc ( toPerc ( "1.05" ) ) ) . to . eq ( toPerc ( "0.00034407" ) ) ;
494- expect ( await feePolicy . computePerpRolloverFeePerc ( toPerc ( "1.1" ) ) ) . to . eq ( toPerc ( "0.00071519" ) ) ;
495- expect ( await feePolicy . computePerpRolloverFeePerc ( toPerc ( "1.25" ) ) ) . to . eq ( toPerc ( "0.00195646" ) ) ;
496- expect ( await feePolicy . computePerpRolloverFeePerc ( toPerc ( "1.5" ) ) ) . to . eq ( toPerc ( "0.00411794" ) ) ;
497- expect ( await feePolicy . computePerpRolloverFeePerc ( toPerc ( "1.75" ) ) ) . to . eq ( toPerc ( "0.00580663" ) ) ;
498- expect ( await feePolicy . computePerpRolloverFeePerc ( toPerc ( "2" ) ) ) . to . eq ( toPerc ( "0.00680345" ) ) ;
499- expect ( await feePolicy . computePerpRolloverFeePerc ( toPerc ( "5" ) ) ) . to . eq ( toPerc ( "0.00768997" ) ) ;
471+ expect ( await feePolicy . computePerpRolloverFeePerc ( toPerc ( "0.01" ) , 333 ) ) . to . eq ( toPerc ( "-0.1" ) ) ;
472+ expect ( await feePolicy . computePerpRolloverFeePerc ( toPerc ( "0.25" ) , 333 ) ) . to . eq ( toPerc ( "-0.09999955" ) ) ;
473+ expect ( await feePolicy . computePerpRolloverFeePerc ( toPerc ( "0.5" ) , 333 ) ) . to . eq ( toPerc ( "-0.09996548" ) ) ;
474+ expect ( await feePolicy . computePerpRolloverFeePerc ( toPerc ( "0.75" ) , 333 ) ) . to . eq ( toPerc ( "-0.09740628" ) ) ;
475+ expect ( await feePolicy . computePerpRolloverFeePerc ( toPerc ( "0.9" ) , 333 ) ) . to . eq ( toPerc ( "-0.06995578" ) ) ;
476+ expect ( await feePolicy . computePerpRolloverFeePerc ( toPerc ( "0.99" ) , 333 ) ) . to . eq ( toPerc ( "-0.00864273" ) ) ;
477+ expect ( await feePolicy . computePerpRolloverFeePerc ( toPerc ( "1" ) , 333 ) ) . to . eq ( "0" ) ;
478+ expect ( await feePolicy . computePerpRolloverFeePerc ( toPerc ( "1.01" ) , 333 ) ) . to . eq ( toPerc ( "0.01162717" ) ) ;
479+ expect ( await feePolicy . computePerpRolloverFeePerc ( toPerc ( "1.05" ) , 333 ) ) . to . eq ( toPerc ( "0.05706359" ) ) ;
480+ expect ( await feePolicy . computePerpRolloverFeePerc ( toPerc ( "1.1" ) , 333 ) ) . to . eq ( toPerc ( "0.10249891" ) ) ;
481+ expect ( await feePolicy . computePerpRolloverFeePerc ( toPerc ( "1.25" ) , 333 ) ) . to . eq ( toPerc ( "0.16218105" ) ) ;
482+ expect ( await feePolicy . computePerpRolloverFeePerc ( toPerc ( "1.5" ) , 333 ) ) . to . eq ( toPerc ( "0.19973050" ) ) ;
483+ expect ( await feePolicy . computePerpRolloverFeePerc ( toPerc ( "1.75" ) , 333 ) ) . to . eq ( toPerc ( "0.23309837" ) ) ;
484+ expect ( await feePolicy . computePerpRolloverFeePerc ( toPerc ( "2" ) , 333 ) ) . to . eq ( toPerc ( "0.26639933" ) ) ;
485+ expect ( await feePolicy . computePerpRolloverFeePerc ( toPerc ( "5" ) , 333 ) ) . to . eq ( toPerc ( "0.66599849" ) ) ;
486+
487+ expect ( await feePolicy . computePerpRolloverFeePerc ( toPerc ( "0.9" ) , 500 ) ) . to . eq ( toPerc ( "-0.06995578" ) ) ;
488+ expect ( await feePolicy . computePerpRolloverFeePerc ( toPerc ( "0.99" ) , 500 ) ) . to . eq ( toPerc ( "-0.00864273" ) ) ;
489+ expect ( await feePolicy . computePerpRolloverFeePerc ( toPerc ( "1" ) , 500 ) ) . to . eq ( "0" ) ;
490+ expect ( await feePolicy . computePerpRolloverFeePerc ( toPerc ( "1.01" ) , 500 ) ) . to . eq ( toPerc ( "0.00580487" ) ) ;
491+ expect ( await feePolicy . computePerpRolloverFeePerc ( toPerc ( "1.05" ) , 500 ) ) . to . eq ( toPerc ( "0.02848902" ) ) ;
492+ expect ( await feePolicy . computePerpRolloverFeePerc ( toPerc ( "1.1" ) , 500 ) ) . to . eq ( toPerc ( "0.05117262" ) ) ;
500493 } ) ;
501494 } ) ;
502495 } ) ;
0 commit comments