@@ -52,10 +52,10 @@ describe("BillBroker", function () {
5252 const fees = await billBroker . fees ( ) ;
5353 expect ( fees . mintFeePerc ) . to . eq ( 0 ) ;
5454 expect ( fees . burnFeePerc ) . to . eq ( 0 ) ;
55- expect ( fees . perpToUSDSwapFeeFactors . lower ) . to . eq ( percFP ( "2 " ) ) ;
56- expect ( fees . perpToUSDSwapFeeFactors . upper ) . to . eq ( percFP ( "2 " ) ) ;
57- expect ( fees . usdToPerpSwapFeeFactors . lower ) . to . eq ( percFP ( "2 " ) ) ;
58- expect ( fees . usdToPerpSwapFeeFactors . upper ) . to . eq ( percFP ( "2 " ) ) ;
55+ expect ( fees . perpToUSDSwapFeeFactors . lower ) . to . eq ( percFP ( "1 " ) ) ;
56+ expect ( fees . perpToUSDSwapFeeFactors . upper ) . to . eq ( percFP ( "1 " ) ) ;
57+ expect ( fees . usdToPerpSwapFeeFactors . lower ) . to . eq ( percFP ( "1 " ) ) ;
58+ expect ( fees . usdToPerpSwapFeeFactors . upper ) . to . eq ( percFP ( "1 " ) ) ;
5959 expect ( fees . protocolSwapSharePerc ) . to . eq ( 0 ) ;
6060
6161 expect ( await billBroker . usdBalance ( ) ) . to . eq ( 0n ) ;
@@ -452,16 +452,16 @@ describe("BillBroker", function () {
452452
453453 expect (
454454 await billBroker . computeUSDToPerpSwapFeeFactor ( percFP ( "0.1" ) , percFP ( "0.26" ) ) ,
455- ) . to . eq ( percFP ( "0.8711 " ) ) ;
455+ ) . to . eq ( percFP ( "0.84 " ) ) ;
456456 expect (
457457 await billBroker . computeUSDToPerpSwapFeeFactor ( percFP ( "0.3" ) , percFP ( "0.5" ) ) ,
458- ) . to . eq ( percFP ( "0.9305 " ) ) ;
458+ ) . to . eq ( percFP ( "0.8955 " ) ) ;
459459 expect (
460460 await billBroker . computeUSDToPerpSwapFeeFactor ( percFP ( "0.25" ) , percFP ( "1" ) ) ,
461- ) . to . eq ( percFP ( "0.98 " ) ) ;
461+ ) . to . eq ( percFP ( "0.963333333333333333 " ) ) ;
462462 expect (
463463 await billBroker . computeUSDToPerpSwapFeeFactor ( percFP ( "0.25" ) , percFP ( "1.24" ) ) ,
464- ) . to . eq ( percFP ( "0.990909090909090909 " ) ) ;
464+ ) . to . eq ( percFP ( "0.978282828282828282 " ) ) ;
465465 expect (
466466 await billBroker . computeUSDToPerpSwapFeeFactor ( percFP ( "0.76" ) , percFP ( "1.24" ) ) ,
467467 ) . to . eq ( percFP ( "1.025" ) ) ;
@@ -488,32 +488,6 @@ describe("BillBroker", function () {
488488 ) . to . eq ( percFP ( "2" ) ) ;
489489 } ) ;
490490
491- it ( "should compute the right fee factor when outside bounds" , async function ( ) {
492- const { billBroker } = await loadFixture ( setupContracts ) ;
493- await billBroker . updateARBounds (
494- [ percFP ( "0.75" ) , percFP ( "1.25" ) ] ,
495- [ percFP ( "0" ) , percFP ( "10" ) ] ,
496- ) ;
497-
498- await billBroker . updateFees ( {
499- mintFeePerc : 0n ,
500- burnFeePerc : 0n ,
501- perpToUSDSwapFeeFactors : {
502- lower : percFP ( "1" ) ,
503- upper : percFP ( "1" ) ,
504- } ,
505- usdToPerpSwapFeeFactors : {
506- lower : percFP ( "2.01" ) ,
507- upper : percFP ( "3" ) ,
508- } ,
509- protocolSwapSharePerc : 0n ,
510- } ) ;
511-
512- expect (
513- await billBroker . computeUSDToPerpSwapFeeFactor ( percFP ( "1" ) , percFP ( "1.25" ) ) ,
514- ) . to . eq ( percFP ( "2" ) ) ;
515- } ) ;
516-
517491 describe ( "Extended coverage for break-point conditions & edge cases" , function ( ) {
518492 let billBroker ;
519493
@@ -546,15 +520,15 @@ describe("BillBroker", function () {
546520 percFP ( "0.50" ) ,
547521 percFP ( "0.55" ) ,
548522 ) ;
549- expect ( result ) . to . eq ( percFP ( "1.001645 " ) ) ;
523+ expect ( result ) . to . eq ( percFP ( "0.979145 " ) ) ;
550524 } ) ;
551525
552526 it ( "Case B: Range straddles arSoftBound.lower => partial weighting fn1/fn2" , async ( ) => {
553527 const result = await billBroker . computeUSDToPerpSwapFeeFactor (
554528 percFP ( "0.70" ) ,
555529 percFP ( "0.80" ) ,
556530 ) ;
557- expect ( result ) . to . eq ( percFP ( "1.0237025 " ) ) ;
531+ expect ( result ) . to . eq ( percFP ( "1.0224525 " ) ) ;
558532 } ) ;
559533
560534 it ( "Case C: Range fully within [arSoftBound.lower..arSoftBound.upper] => uses fn2 entirely" , async ( ) => {
@@ -596,19 +570,19 @@ describe("BillBroker", function () {
596570 const { billBroker } = await loadFixture ( setupContracts ) ;
597571 await billBroker . updateARBounds (
598572 [ percFP ( "0.75" ) , percFP ( "1.25" ) ] ,
599- [ percFP ( "0.5 " ) , percFP ( "1.5 " ) ] ,
573+ [ percFP ( "0.25 " ) , percFP ( "4 " ) ] ,
600574 ) ;
601575
602576 await billBroker . updateFees ( {
603577 mintFeePerc : 0n ,
604578 burnFeePerc : 0n ,
605579 perpToUSDSwapFeeFactors : {
606580 lower : percFP ( "1.1" ) ,
607- upper : percFP ( "1.5 " ) ,
581+ upper : percFP ( "1.15 " ) ,
608582 } ,
609583 usdToPerpSwapFeeFactors : {
610- lower : percFP ( "1" ) ,
611- upper : percFP ( "1" ) ,
584+ lower : percFP ( "1.025 " ) ,
585+ upper : percFP ( "1.2 " ) ,
612586 } ,
613587 protocolSwapSharePerc : 0n ,
614588 } ) ;
@@ -620,47 +594,45 @@ describe("BillBroker", function () {
620594 billBroker . computePerpToUSDSwapFeeFactor ( percFP ( "1.5" ) , percFP ( "0.5" ) ) ,
621595 ) . to . be . revertedWithCustomError ( billBroker , "UnexpectedRangeDelta" ) ;
622596
597+ expect (
598+ await billBroker . computePerpToUSDSwapFeeFactor ( percFP ( "4" ) , percFP ( "3" ) ) ,
599+ ) . to . eq ( percFP ( "0.854545454545454545" ) ) ;
600+
601+ expect (
602+ await billBroker . computePerpToUSDSwapFeeFactor ( percFP ( "4" ) , percFP ( "1.25" ) ) ,
603+ ) . to . eq ( percFP ( "0.95" ) ) ;
604+
605+ expect (
606+ await billBroker . computePerpToUSDSwapFeeFactor ( percFP ( "3" ) , percFP ( "2" ) ) ,
607+ ) . to . eq ( percFP ( "0.963636363636363636" ) ) ;
608+
609+ expect (
610+ await billBroker . computePerpToUSDSwapFeeFactor ( percFP ( "2" ) , percFP ( "1.5" ) ) ,
611+ ) . to . eq ( percFP ( "1.045454545454545454" ) ) ;
612+
623613 expect (
624614 await billBroker . computePerpToUSDSwapFeeFactor ( percFP ( "2" ) , percFP ( "0.8" ) ) ,
625- ) . to . eq ( percFP ( "1.1" ) ) ;
615+ ) . to . eq ( percFP ( "1.074431818181818181" ) ) ;
616+
626617 expect (
627618 await billBroker . computePerpToUSDSwapFeeFactor ( percFP ( "1.45" ) , percFP ( "0.8" ) ) ,
619+ ) . to . eq ( percFP ( "1.096643356643356643" ) ) ;
620+
621+ expect (
622+ await billBroker . computePerpToUSDSwapFeeFactor ( percFP ( "1.25" ) , percFP ( "0.9" ) ) ,
628623 ) . to . eq ( percFP ( "1.1" ) ) ;
624+
629625 expect (
630626 await billBroker . computePerpToUSDSwapFeeFactor ( percFP ( "0.8" ) , percFP ( "0.7" ) ) ,
631- ) . to . eq ( percFP ( "1.12" ) ) ;
627+ ) . to . eq ( percFP ( "1.10125" ) ) ;
628+
632629 expect (
633630 await billBroker . computePerpToUSDSwapFeeFactor ( percFP ( "0.8" ) , percFP ( "0.5" ) ) ,
634- ) . to . eq ( percFP ( "1.266666666666666666" ) ) ;
635- expect (
636- await billBroker . computePerpToUSDSwapFeeFactor ( percFP ( "1.0" ) , percFP ( "0.49" ) ) ,
637- ) . to . eq ( percFP ( "2" ) ) ;
638- } ) ;
639-
640- it ( "should compute the right fee factor when outside bounds" , async function ( ) {
641- const { billBroker } = await loadFixture ( setupContracts ) ;
642- await billBroker . updateARBounds (
643- [ percFP ( "0.75" ) , percFP ( "1.25" ) ] ,
644- [ percFP ( "0" ) , percFP ( "10" ) ] ,
645- ) ;
646-
647- await billBroker . updateFees ( {
648- mintFeePerc : 0n ,
649- burnFeePerc : 0n ,
650- perpToUSDSwapFeeFactors : {
651- lower : percFP ( "2.01" ) ,
652- upper : percFP ( "3" ) ,
653- } ,
654- usdToPerpSwapFeeFactors : {
655- lower : percFP ( "1" ) ,
656- upper : percFP ( "1" ) ,
657- } ,
658- protocolSwapSharePerc : 0n ,
659- } ) ;
631+ ) . to . eq ( percFP ( "1.110416666666666666" ) ) ;
660632
661633 expect (
662- await billBroker . computePerpToUSDSwapFeeFactor ( percFP ( "1.25 " ) , percFP ( "1.11 " ) ) ,
663- ) . to . eq ( percFP ( "2 " ) ) ;
634+ await billBroker . computePerpToUSDSwapFeeFactor ( percFP ( "1.0 " ) , percFP ( "0.49 " ) ) ,
635+ ) . to . eq ( percFP ( "1.106627450980392156 " ) ) ;
664636 } ) ;
665637
666638 describe ( "Extended coverage for break-point conditions & edge cases" , function ( ) {
@@ -719,15 +691,15 @@ describe("BillBroker", function () {
719691 percFP ( "1.30" ) ,
720692 percFP ( "1.20" ) ,
721693 ) ;
722- expect ( result ) . to . eq ( percFP ( "1.024344090909090909 " ) ) ;
694+ expect ( result ) . to . eq ( percFP ( "1.024116818181818182 " ) ) ;
723695 } ) ;
724696
725697 it ( "Case E: Entirely above arSoftBound.upper => uses fn3" , async ( ) => {
726698 const result = await billBroker . computePerpToUSDSwapFeeFactor (
727699 percFP ( "2.50" ) ,
728700 percFP ( "2.0" ) ,
729701 ) ;
730- expect ( result ) . to . eq ( percFP ( "0.972527272727272727 " ) ) ;
702+ expect ( result ) . to . eq ( percFP ( "0.954345454545454546 " ) ) ;
731703 } ) ;
732704
733705 it ( "Zero-length range exactly at boundary => picks boundary side" , async ( ) => {
0 commit comments