@defisaver/automation-sdk 3.3.2-dev → 3.3.2-dev.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/cjs/constants/index.js +100 -5
  2. package/cjs/index.d.ts +2 -1
  3. package/cjs/index.js +1 -1
  4. package/cjs/services/strategiesService.js +28 -27
  5. package/cjs/services/strategySubService.d.ts +3 -2
  6. package/cjs/services/strategySubService.js +15 -9
  7. package/cjs/services/strategySubService.test.js +314 -0
  8. package/cjs/services/subDataService.d.ts +25 -9
  9. package/cjs/services/subDataService.js +78 -26
  10. package/cjs/services/subDataService.test.js +456 -0
  11. package/cjs/services/triggerService.d.ts +6 -6
  12. package/cjs/services/triggerService.js +14 -11
  13. package/cjs/services/triggerService.test.js +46 -0
  14. package/cjs/types/enums.d.ts +26 -8
  15. package/cjs/types/enums.js +21 -2
  16. package/cjs/types/index.d.ts +1 -8
  17. package/esm/constants/index.js +100 -5
  18. package/esm/index.d.ts +2 -1
  19. package/esm/index.js +2 -2
  20. package/esm/services/strategiesService.js +28 -27
  21. package/esm/services/strategySubService.d.ts +3 -2
  22. package/esm/services/strategySubService.js +15 -9
  23. package/esm/services/strategySubService.test.js +314 -0
  24. package/esm/services/subDataService.d.ts +25 -9
  25. package/esm/services/subDataService.js +77 -25
  26. package/esm/services/subDataService.test.js +456 -0
  27. package/esm/services/triggerService.d.ts +6 -6
  28. package/esm/services/triggerService.js +13 -10
  29. package/esm/services/triggerService.test.js +47 -1
  30. package/esm/types/enums.d.ts +26 -8
  31. package/esm/types/enums.js +21 -2
  32. package/esm/types/index.d.ts +1 -8
  33. package/package.json +2 -2
  34. package/src/constants/index.ts +103 -5
  35. package/src/index.ts +4 -2
  36. package/src/services/strategiesService.ts +31 -37
  37. package/src/services/strategySubService.test.ts +347 -0
  38. package/src/services/strategySubService.ts +57 -20
  39. package/src/services/subDataService.test.ts +532 -0
  40. package/src/services/subDataService.ts +122 -33
  41. package/src/services/triggerService.test.ts +50 -0
  42. package/src/services/triggerService.ts +21 -14
  43. package/src/types/enums.ts +21 -2
  44. package/src/types/index.ts +20 -9
  45. package/umd/index.js +0 -34219
@@ -494,6 +494,320 @@ describe('Feature: strategySubService.ts', () => {
494
494
  });
495
495
  });
496
496
  });
497
+ describe('leverageManagementOnPriceGeneric()', () => {
498
+ const examples = [
499
+ [
500
+ [
501
+ enums_1.Bundles.MainnetIds.AAVE_V3_EOA_REPAY_ON_PRICE,
502
+ true,
503
+ ['0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000000000000000000000000000000000000000000000000000026e1f9c6000000000000000000000000000000000000000000000000000000000000000001'],
504
+ [
505
+ '0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',
506
+ '0x0000000000000000000000000000000000000000000000000000000000000000',
507
+ '0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
508
+ '0x0000000000000000000000000000000000000000000000000000000000000001',
509
+ '0x00000000000000000000000087870bca3f3fd6335c3f4ce8392d69d0b4161d39',
510
+ '0x0000000000000000000000000000000000000000000000001bc16d674ec80000',
511
+ '0x0000000000000000000000000000000000000000000000000000000000000000',
512
+ ],
513
+ ],
514
+ [
515
+ enums_1.Bundles.MainnetIds.AAVE_V3_EOA_REPAY_ON_PRICE,
516
+ 1670,
517
+ enums_1.RatioState.UNDER,
518
+ web3Utils.toChecksumAddress((0, tokens_1.getAssetInfo)('WETH', enums_1.ChainId.Ethereum).address),
519
+ 0,
520
+ web3Utils.toChecksumAddress((0, tokens_1.getAssetInfo)('USDC', enums_1.ChainId.Ethereum).address),
521
+ 1,
522
+ web3Utils.toChecksumAddress('0x87870Bca3F3fD6335C3F4ce8392D69d0B4161d39'),
523
+ 200,
524
+ web3Utils.toChecksumAddress('0x0000000000000000000000000000000000000000'),
525
+ ]
526
+ ],
527
+ [
528
+ [
529
+ enums_1.Bundles.MainnetIds.AAVE_V3_EOA_BOOST_ON_PRICE,
530
+ true,
531
+ ['0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000002260fac5e5542a773aa44fbcfedf7c193bc2c5990000000000000000000000000000000000000000000000000000000002faf0800000000000000000000000000000000000000000000000000000000000000000'],
532
+ [
533
+ '0x0000000000000000000000002260fac5e5542a773aa44fbcfedf7c193bc2c599',
534
+ '0x0000000000000000000000000000000000000000000000000000000000000002',
535
+ '0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
536
+ '0x0000000000000000000000000000000000000000000000000000000000000001',
537
+ '0x00000000000000000000000087870bca3f3fd6335c3f4ce8392d69d0b4161d39',
538
+ '0x0000000000000000000000000000000000000000000000001bc16d674ec80000',
539
+ '0x0000000000000000000000001234567890123456789012345678901234567890',
540
+ ],
541
+ ],
542
+ [
543
+ enums_1.Bundles.MainnetIds.AAVE_V3_EOA_BOOST_ON_PRICE,
544
+ 0.5,
545
+ enums_1.RatioState.OVER,
546
+ web3Utils.toChecksumAddress((0, tokens_1.getAssetInfo)('WBTC', enums_1.ChainId.Ethereum).address),
547
+ 2,
548
+ web3Utils.toChecksumAddress((0, tokens_1.getAssetInfo)('USDC', enums_1.ChainId.Ethereum).address),
549
+ 1,
550
+ web3Utils.toChecksumAddress('0x87870Bca3F3fD6335C3F4ce8392D69d0B4161d39'),
551
+ 200,
552
+ web3Utils.toChecksumAddress('0x1234567890123456789012345678901234567890'),
553
+ ]
554
+ ],
555
+ ];
556
+ examples.forEach(([expected, actual]) => {
557
+ it(`Given ${JSON.stringify(actual)} should return expected value: ${JSON.stringify(expected)}`, () => {
558
+ (0, chai_1.expect)(strategySubService_1.aaveV3Encode.leverageManagementOnPriceGeneric(...actual)).to.eql(expected);
559
+ });
560
+ });
561
+ });
562
+ describe('closeOnPriceGeneric()', () => {
563
+ const examples = [
564
+ // Stop loss only (to debt)
565
+ [
566
+ [
567
+ enums_1.Bundles.MainnetIds.AAVE_V3_EOA_CLOSE,
568
+ true,
569
+ ['0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000000000000000000000000000000000022ecb25c000000000000000000000000000000000000000000000000000000000000000000'],
570
+ [
571
+ '0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',
572
+ '0x0000000000000000000000000000000000000000000000000000000000000000',
573
+ '0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
574
+ '0x0000000000000000000000000000000000000000000000000000000000000001',
575
+ '0x0000000000000000000000000000000000000000000000000000000000000003',
576
+ '0x0000000000000000000000002f39d218133afab8f2b819b1066c7e434ad94e9e',
577
+ '0x0000000000000000000000000000000000000000000000000000000000000000',
578
+ ],
579
+ ],
580
+ [
581
+ enums_1.Bundles.MainnetIds.AAVE_V3_EOA_CLOSE,
582
+ web3Utils.toChecksumAddress((0, tokens_1.getAssetInfo)('WETH', enums_1.ChainId.Ethereum).address),
583
+ 0,
584
+ web3Utils.toChecksumAddress((0, tokens_1.getAssetInfo)('USDC', enums_1.ChainId.Ethereum).address),
585
+ 1,
586
+ web3Utils.toChecksumAddress('0x2f39d218133AFaB8F2B819B1066c7E434Ad94E9e'),
587
+ web3Utils.toChecksumAddress('0x0000000000000000000000000000000000000000'),
588
+ 1500,
589
+ enums_1.CloseToAssetType.DEBT,
590
+ 0,
591
+ enums_1.CloseToAssetType.COLLATERAL, // takeProfitType (not used since price is 0)
592
+ ]
593
+ ],
594
+ // Take profit only (to collateral)
595
+ [
596
+ [
597
+ enums_1.Bundles.MainnetIds.AAVE_V3_EOA_CLOSE,
598
+ true,
599
+ ['0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000746a528800'],
600
+ [
601
+ '0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',
602
+ '0x0000000000000000000000000000000000000000000000000000000000000000',
603
+ '0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
604
+ '0x0000000000000000000000000000000000000000000000000000000000000001',
605
+ '0x0000000000000000000000000000000000000000000000000000000000000000',
606
+ '0x0000000000000000000000002f39d218133afab8f2b819b1066c7e434ad94e9e',
607
+ '0x0000000000000000000000000000000000000000000000000000000000000000',
608
+ ],
609
+ ],
610
+ [
611
+ enums_1.Bundles.MainnetIds.AAVE_V3_EOA_CLOSE,
612
+ web3Utils.toChecksumAddress((0, tokens_1.getAssetInfo)('WETH', enums_1.ChainId.Ethereum).address),
613
+ 0,
614
+ web3Utils.toChecksumAddress((0, tokens_1.getAssetInfo)('USDC', enums_1.ChainId.Ethereum).address),
615
+ 1,
616
+ web3Utils.toChecksumAddress('0x2f39d218133AFaB8F2B819B1066c7E434Ad94E9e'),
617
+ web3Utils.toChecksumAddress('0x0000000000000000000000000000000000000000'),
618
+ 0,
619
+ enums_1.CloseToAssetType.DEBT,
620
+ 5000,
621
+ enums_1.CloseToAssetType.COLLATERAL, // takeProfitType
622
+ ]
623
+ ],
624
+ // Both stop loss and take profit with useOnBehalf
625
+ [
626
+ [
627
+ enums_1.Bundles.MainnetIds.AAVE_V3_EOA_CLOSE,
628
+ true,
629
+ ['0x0000000000000000000000002260fac5e5542a773aa44fbcfedf7c193bc2c599000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000000000000000000000000000000000022ecb25c000000000000000000000000000000000000000000000000000000005d21dba000'],
630
+ [
631
+ '0x0000000000000000000000002260fac5e5542a773aa44fbcfedf7c193bc2c599',
632
+ '0x0000000000000000000000000000000000000000000000000000000000000002',
633
+ '0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
634
+ '0x0000000000000000000000000000000000000000000000000000000000000001',
635
+ '0x0000000000000000000000000000000000000000000000000000000000000004',
636
+ '0x0000000000000000000000002f39d218133afab8f2b819b1066c7e434ad94e9e',
637
+ '0x0000000000000000000000001234567890123456789012345678901234567890',
638
+ ],
639
+ ],
640
+ [
641
+ enums_1.Bundles.MainnetIds.AAVE_V3_EOA_CLOSE,
642
+ web3Utils.toChecksumAddress((0, tokens_1.getAssetInfo)('WBTC', enums_1.ChainId.Ethereum).address),
643
+ 2,
644
+ web3Utils.toChecksumAddress((0, tokens_1.getAssetInfo)('USDC', enums_1.ChainId.Ethereum).address),
645
+ 1,
646
+ web3Utils.toChecksumAddress('0x2f39d218133AFaB8F2B819B1066c7E434Ad94E9e'),
647
+ web3Utils.toChecksumAddress('0x1234567890123456789012345678901234567890'),
648
+ 1500,
649
+ enums_1.CloseToAssetType.COLLATERAL,
650
+ 4000,
651
+ enums_1.CloseToAssetType.COLLATERAL, // takeProfitType
652
+ ]
653
+ ],
654
+ // Stop loss only (to collateral) - CloseStrategyType.STOP_LOSS_IN_COLLATERAL
655
+ [
656
+ [
657
+ enums_1.Bundles.MainnetIds.AAVE_V3_EOA_CLOSE,
658
+ true,
659
+ ['0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000000000000000000000000000000000022ecb25c000000000000000000000000000000000000000000000000000000000000000000'],
660
+ [
661
+ '0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',
662
+ '0x0000000000000000000000000000000000000000000000000000000000000000',
663
+ '0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
664
+ '0x0000000000000000000000000000000000000000000000000000000000000001',
665
+ '0x0000000000000000000000000000000000000000000000000000000000000001',
666
+ '0x0000000000000000000000002f39d218133afab8f2b819b1066c7e434ad94e9e',
667
+ '0x0000000000000000000000000000000000000000000000000000000000000000',
668
+ ],
669
+ ],
670
+ [
671
+ enums_1.Bundles.MainnetIds.AAVE_V3_EOA_CLOSE,
672
+ web3Utils.toChecksumAddress((0, tokens_1.getAssetInfo)('WETH', enums_1.ChainId.Ethereum).address),
673
+ 0,
674
+ web3Utils.toChecksumAddress((0, tokens_1.getAssetInfo)('USDC', enums_1.ChainId.Ethereum).address),
675
+ 1,
676
+ web3Utils.toChecksumAddress('0x2f39d218133AFaB8F2B819B1066c7E434Ad94E9e'),
677
+ web3Utils.toChecksumAddress('0x0000000000000000000000000000000000000000'),
678
+ 1500,
679
+ enums_1.CloseToAssetType.COLLATERAL,
680
+ 0,
681
+ enums_1.CloseToAssetType.DEBT, // takeProfitType (not used since price is 0)
682
+ ]
683
+ ],
684
+ // Take profit only (to debt) - CloseStrategyType.TAKE_PROFIT_IN_DEBT
685
+ [
686
+ [
687
+ enums_1.Bundles.MainnetIds.AAVE_V3_EOA_CLOSE,
688
+ true,
689
+ ['0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000746a528800'],
690
+ [
691
+ '0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',
692
+ '0x0000000000000000000000000000000000000000000000000000000000000000',
693
+ '0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
694
+ '0x0000000000000000000000000000000000000000000000000000000000000001',
695
+ '0x0000000000000000000000000000000000000000000000000000000000000002',
696
+ '0x0000000000000000000000002f39d218133afab8f2b819b1066c7e434ad94e9e',
697
+ '0x0000000000000000000000000000000000000000000000000000000000000000',
698
+ ],
699
+ ],
700
+ [
701
+ enums_1.Bundles.MainnetIds.AAVE_V3_EOA_CLOSE,
702
+ web3Utils.toChecksumAddress((0, tokens_1.getAssetInfo)('WETH', enums_1.ChainId.Ethereum).address),
703
+ 0,
704
+ web3Utils.toChecksumAddress((0, tokens_1.getAssetInfo)('USDC', enums_1.ChainId.Ethereum).address),
705
+ 1,
706
+ web3Utils.toChecksumAddress('0x2f39d218133AFaB8F2B819B1066c7E434Ad94E9e'),
707
+ web3Utils.toChecksumAddress('0x0000000000000000000000000000000000000000'),
708
+ 0,
709
+ enums_1.CloseToAssetType.COLLATERAL,
710
+ 5000,
711
+ enums_1.CloseToAssetType.DEBT, // takeProfitType
712
+ ]
713
+ ],
714
+ // Take profit in collateral and stop loss in debt - CloseStrategyType.TAKE_PROFIT_IN_COLLATERAL_AND_STOP_LOSS_IN_DEBT
715
+ [
716
+ [
717
+ enums_1.Bundles.MainnetIds.AAVE_V3_EOA_CLOSE,
718
+ true,
719
+ ['0x0000000000000000000000002260fac5e5542a773aa44fbcfedf7c193bc2c599000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000000000000000000000000000000000022ecb25c000000000000000000000000000000000000000000000000000000005d21dba000'],
720
+ [
721
+ '0x0000000000000000000000002260fac5e5542a773aa44fbcfedf7c193bc2c599',
722
+ '0x0000000000000000000000000000000000000000000000000000000000000002',
723
+ '0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
724
+ '0x0000000000000000000000000000000000000000000000000000000000000001',
725
+ '0x0000000000000000000000000000000000000000000000000000000000000005',
726
+ '0x0000000000000000000000002f39d218133afab8f2b819b1066c7e434ad94e9e',
727
+ '0x0000000000000000000000001234567890123456789012345678901234567890',
728
+ ],
729
+ ],
730
+ [
731
+ enums_1.Bundles.MainnetIds.AAVE_V3_EOA_CLOSE,
732
+ web3Utils.toChecksumAddress((0, tokens_1.getAssetInfo)('WBTC', enums_1.ChainId.Ethereum).address),
733
+ 2,
734
+ web3Utils.toChecksumAddress((0, tokens_1.getAssetInfo)('USDC', enums_1.ChainId.Ethereum).address),
735
+ 1,
736
+ web3Utils.toChecksumAddress('0x2f39d218133AFaB8F2B819B1066c7E434Ad94E9e'),
737
+ web3Utils.toChecksumAddress('0x1234567890123456789012345678901234567890'),
738
+ 1500,
739
+ enums_1.CloseToAssetType.DEBT,
740
+ 4000,
741
+ enums_1.CloseToAssetType.COLLATERAL, // takeProfitType
742
+ ]
743
+ ],
744
+ // Both stop loss and take profit in debt - CloseStrategyType.TAKE_PROFIT_AND_STOP_LOSS_IN_DEBT
745
+ [
746
+ [
747
+ enums_1.Bundles.MainnetIds.AAVE_V3_EOA_CLOSE,
748
+ true,
749
+ ['0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000000000000000000000000000000000022ecb25c000000000000000000000000000000000000000000000000000000005d21dba000'],
750
+ [
751
+ '0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',
752
+ '0x0000000000000000000000000000000000000000000000000000000000000000',
753
+ '0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
754
+ '0x0000000000000000000000000000000000000000000000000000000000000001',
755
+ '0x0000000000000000000000000000000000000000000000000000000000000006',
756
+ '0x0000000000000000000000002f39d218133afab8f2b819b1066c7e434ad94e9e',
757
+ '0x0000000000000000000000000000000000000000000000000000000000000000',
758
+ ],
759
+ ],
760
+ [
761
+ enums_1.Bundles.MainnetIds.AAVE_V3_EOA_CLOSE,
762
+ web3Utils.toChecksumAddress((0, tokens_1.getAssetInfo)('WETH', enums_1.ChainId.Ethereum).address),
763
+ 0,
764
+ web3Utils.toChecksumAddress((0, tokens_1.getAssetInfo)('USDC', enums_1.ChainId.Ethereum).address),
765
+ 1,
766
+ web3Utils.toChecksumAddress('0x2f39d218133AFaB8F2B819B1066c7E434Ad94E9e'),
767
+ web3Utils.toChecksumAddress('0x0000000000000000000000000000000000000000'),
768
+ 1500,
769
+ enums_1.CloseToAssetType.DEBT,
770
+ 4000,
771
+ enums_1.CloseToAssetType.DEBT, // takeProfitType
772
+ ]
773
+ ],
774
+ // Take profit in debt and stop loss in collateral - CloseStrategyType.TAKE_PROFIT_IN_DEBT_AND_STOP_LOSS_IN_COLLATERAL
775
+ [
776
+ [
777
+ enums_1.Bundles.MainnetIds.AAVE_V3_EOA_CLOSE,
778
+ true,
779
+ ['0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000000000000000000000000000000000022ecb25c000000000000000000000000000000000000000000000000000000005d21dba000'],
780
+ [
781
+ '0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',
782
+ '0x0000000000000000000000000000000000000000000000000000000000000000',
783
+ '0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
784
+ '0x0000000000000000000000000000000000000000000000000000000000000001',
785
+ '0x0000000000000000000000000000000000000000000000000000000000000007',
786
+ '0x0000000000000000000000002f39d218133afab8f2b819b1066c7e434ad94e9e',
787
+ '0x0000000000000000000000009876543210987654321098765432109876543210',
788
+ ],
789
+ ],
790
+ [
791
+ enums_1.Bundles.MainnetIds.AAVE_V3_EOA_CLOSE,
792
+ web3Utils.toChecksumAddress((0, tokens_1.getAssetInfo)('WETH', enums_1.ChainId.Ethereum).address),
793
+ 0,
794
+ web3Utils.toChecksumAddress((0, tokens_1.getAssetInfo)('USDC', enums_1.ChainId.Ethereum).address),
795
+ 1,
796
+ web3Utils.toChecksumAddress('0x2f39d218133AFaB8F2B819B1066c7E434Ad94E9e'),
797
+ web3Utils.toChecksumAddress('0x9876543210987654321098765432109876543210'),
798
+ 1500,
799
+ enums_1.CloseToAssetType.COLLATERAL,
800
+ 4000,
801
+ enums_1.CloseToAssetType.DEBT, // takeProfitType
802
+ ]
803
+ ],
804
+ ];
805
+ examples.forEach(([expected, actual]) => {
806
+ it(`Given ${JSON.stringify(actual)} should return expected value: ${JSON.stringify(expected)}`, () => {
807
+ (0, chai_1.expect)(strategySubService_1.aaveV3Encode.closeOnPriceGeneric(...actual)).to.eql(expected);
808
+ });
809
+ });
810
+ });
497
811
  });
498
812
  describe('When testing strategySubService.compoundV2Encode', () => {
499
813
  describe('leverageManagement()', () => {
@@ -52,12 +52,36 @@ export declare const aaveV3LeverageManagementSubData: {
52
52
  };
53
53
  };
54
54
  export declare const aaveV3LeverageManagementSubDataWithoutSubProxy: {
55
- encode(targetRatio: number, ratioState: RatioState): string[];
55
+ encode(targetRatio: number, ratioState: RatioState, market: EthereumAddress, user: EthereumAddress, isGeneric: boolean): string[];
56
56
  decode(subData: string[]): {
57
57
  targetRatio: number;
58
58
  ratioState: RatioState;
59
59
  };
60
60
  };
61
+ export declare const aaveV3LeverageManagementOnPriceGeneric: {
62
+ encode(collAsset: EthereumAddress, collAssetId: number, debtAsset: EthereumAddress, debtAssetId: number, marketAddr: EthereumAddress, targetRatio: number, user: EthereumAddress): string[];
63
+ decode(subData: string[]): {
64
+ collAsset: EthereumAddress;
65
+ collAssetId: number;
66
+ debtAsset: EthereumAddress;
67
+ debtAssetId: number;
68
+ marketAddr: EthereumAddress;
69
+ targetRatio: number;
70
+ user: EthereumAddress;
71
+ };
72
+ };
73
+ export declare const aaveV3CloseGenericSubData: {
74
+ encode(collAsset: EthereumAddress, collAssetId: number, debtAsset: EthereumAddress, debtAssetId: number, closeType: CloseStrategyType, marketAddr: EthereumAddress, user: EthereumAddress): string[];
75
+ decode(subData: string[]): {
76
+ collAsset: EthereumAddress;
77
+ collAssetId: number;
78
+ debtAsset: EthereumAddress;
79
+ debtAssetId: number;
80
+ closeType: CloseStrategyType;
81
+ marketAddr: EthereumAddress;
82
+ user: EthereumAddress;
83
+ };
84
+ };
61
85
  export declare const aaveV3QuotePriceSubData: {
62
86
  encode(collAsset: EthereumAddress, collAssetId: number, debtAsset: EthereumAddress, debtAssetId: number, nullAddress?: EthereumAddress): string[];
63
87
  decode(subData: string[]): {
@@ -280,11 +304,3 @@ export declare const compoundV3CloseSubData: {
280
304
  owner: EthereumAddress;
281
305
  };
282
306
  };
283
- export declare const liquityV2InterestRateAdjustmentSubData: {
284
- encode: (market: EthereumAddress, troveId: string, interestRateChange: string) => string[];
285
- decode: (subData: string[]) => {
286
- market: string;
287
- troveId: string;
288
- interestRateChange: string;
289
- };
290
- };
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.liquityV2InterestRateAdjustmentSubData = exports.compoundV3CloseSubData = exports.compoundV3LeverageManagementOnPriceSubData = exports.fluidLeverageManagementSubData = exports.liquityV2PaybackSubData = exports.morphoBlueLeverageManagementOnPriceSubData = exports.liquityV2LeverageManagementOnPriceSubData = exports.liquityV2CloseSubData = exports.liquityV2LeverageManagementSubData = exports.aaveV3LeverageManagementOnPriceSubData = exports.morphoBlueLeverageManagementSubData = exports.crvUSDPaybackSubData = exports.crvUSDLeverageManagementSubData = exports.liquityDebtInFrontRepaySubData = exports.liquityDsrSupplySubData = exports.liquityDsrPaybackSubData = exports.sparkQuotePriceSubData = exports.sparkLeverageManagementSubData = exports.exchangeLimitOrderSubData = exports.exchangeDcaSubData = exports.liquityPaybackUsingChickenBondSubData = exports.cBondsRebondSubData = exports.morphoAaveV2LeverageManagementSubData = exports.compoundV3L2LeverageManagementSubData = exports.compoundV3LeverageManagementSubData = exports.compoundV2LeverageManagementSubData = exports.aaveV3QuotePriceSubData = exports.aaveV3LeverageManagementSubDataWithoutSubProxy = exports.aaveV3LeverageManagementSubData = exports.aaveV2LeverageManagementSubData = exports.liquityCloseSubData = exports.liquityLeverageManagementSubData = exports.makerLeverageManagementSubData = exports.makerCloseSubData = exports.liquityRepayFromSavingsSubData = exports.makerRepayFromSavingsSubData = void 0;
6
+ exports.compoundV3CloseSubData = exports.compoundV3LeverageManagementOnPriceSubData = exports.fluidLeverageManagementSubData = exports.liquityV2PaybackSubData = exports.morphoBlueLeverageManagementOnPriceSubData = exports.liquityV2LeverageManagementOnPriceSubData = exports.liquityV2CloseSubData = exports.liquityV2LeverageManagementSubData = exports.aaveV3LeverageManagementOnPriceSubData = exports.morphoBlueLeverageManagementSubData = exports.crvUSDPaybackSubData = exports.crvUSDLeverageManagementSubData = exports.liquityDebtInFrontRepaySubData = exports.liquityDsrSupplySubData = exports.liquityDsrPaybackSubData = exports.sparkQuotePriceSubData = exports.sparkLeverageManagementSubData = exports.exchangeLimitOrderSubData = exports.exchangeDcaSubData = exports.liquityPaybackUsingChickenBondSubData = exports.cBondsRebondSubData = exports.morphoAaveV2LeverageManagementSubData = exports.compoundV3L2LeverageManagementSubData = exports.compoundV3LeverageManagementSubData = exports.compoundV2LeverageManagementSubData = exports.aaveV3QuotePriceSubData = exports.aaveV3CloseGenericSubData = exports.aaveV3LeverageManagementOnPriceGeneric = exports.aaveV3LeverageManagementSubDataWithoutSubProxy = exports.aaveV3LeverageManagementSubData = exports.aaveV2LeverageManagementSubData = exports.liquityCloseSubData = exports.liquityLeverageManagementSubData = exports.makerLeverageManagementSubData = exports.makerCloseSubData = exports.liquityRepayFromSavingsSubData = exports.makerRepayFromSavingsSubData = void 0;
7
7
  const decimal_js_1 = __importDefault(require("decimal.js"));
8
8
  const web3_eth_abi_1 = __importDefault(require("web3-eth-abi"));
9
9
  const web3_utils_1 = require("web3-utils");
@@ -127,9 +127,14 @@ exports.aaveV3LeverageManagementSubData = {
127
127
  },
128
128
  };
129
129
  exports.aaveV3LeverageManagementSubDataWithoutSubProxy = {
130
- encode(targetRatio, ratioState) {
130
+ encode(targetRatio, ratioState, market, user, isGeneric) {
131
131
  const encodedTargetRatio = web3_eth_abi_1.default.encodeParameter('uint256', (0, utils_1.ratioPercentageToWei)(targetRatio));
132
132
  const encodedRatioState = web3_eth_abi_1.default.encodeParameter('uint8', ratioState);
133
+ if (isGeneric) {
134
+ const encodedMarket = web3_eth_abi_1.default.encodeParameter('address', market);
135
+ const encodedUser = web3_eth_abi_1.default.encodeParameter('address', user);
136
+ return [encodedTargetRatio, encodedRatioState, encodedMarket, encodedUser];
137
+ }
133
138
  const encodedUseDefaultMarket = web3_eth_abi_1.default.encodeParameter('bool', true);
134
139
  const encodedUseOnBehalf = web3_eth_abi_1.default.encodeParameter('bool', false);
135
140
  return [encodedTargetRatio, encodedRatioState, encodedUseDefaultMarket, encodedUseOnBehalf];
@@ -140,6 +145,77 @@ exports.aaveV3LeverageManagementSubDataWithoutSubProxy = {
140
145
  return { targetRatio, ratioState };
141
146
  },
142
147
  };
148
+ exports.aaveV3LeverageManagementOnPriceGeneric = {
149
+ encode(collAsset, collAssetId, debtAsset, debtAssetId, marketAddr, targetRatio, user) {
150
+ const encodedColl = web3_eth_abi_1.default.encodeParameter('address', collAsset);
151
+ const encodedCollId = web3_eth_abi_1.default.encodeParameter('uint8', collAssetId);
152
+ const encodedDebt = web3_eth_abi_1.default.encodeParameter('address', debtAsset);
153
+ const encodedDebtId = web3_eth_abi_1.default.encodeParameter('uint8', debtAssetId);
154
+ const encodedMarket = web3_eth_abi_1.default.encodeParameter('address', marketAddr);
155
+ const encodedTargetRatio = web3_eth_abi_1.default.encodeParameter('uint256', (0, utils_1.ratioPercentageToWei)(targetRatio));
156
+ const userEncoded = web3_eth_abi_1.default.encodeParameter('address', user);
157
+ return [
158
+ encodedColl,
159
+ encodedCollId,
160
+ encodedDebt,
161
+ encodedDebtId,
162
+ encodedMarket,
163
+ encodedTargetRatio,
164
+ userEncoded,
165
+ ];
166
+ },
167
+ decode(subData) {
168
+ const collAsset = web3_eth_abi_1.default.decodeParameter('address', subData[0]);
169
+ const collAssetId = Number(web3_eth_abi_1.default.decodeParameter('uint8', subData[1]));
170
+ const debtAsset = web3_eth_abi_1.default.decodeParameter('address', subData[2]);
171
+ const debtAssetId = Number(web3_eth_abi_1.default.decodeParameter('uint8', subData[3]));
172
+ const marketAddr = web3_eth_abi_1.default.decodeParameter('address', subData[4]);
173
+ const weiRatio = web3_eth_abi_1.default.decodeParameter('uint256', subData[5]);
174
+ const targetRatio = (0, utils_1.weiToRatioPercentage)(weiRatio);
175
+ const user = web3_eth_abi_1.default.decodeParameter('address', subData[6]);
176
+ return {
177
+ collAsset,
178
+ collAssetId,
179
+ debtAsset,
180
+ debtAssetId,
181
+ marketAddr,
182
+ targetRatio,
183
+ user,
184
+ };
185
+ },
186
+ };
187
+ exports.aaveV3CloseGenericSubData = {
188
+ encode(collAsset, collAssetId, debtAsset, debtAssetId, closeType, marketAddr, user) {
189
+ const encodedColl = web3_eth_abi_1.default.encodeParameter('address', collAsset);
190
+ const encodedCollId = web3_eth_abi_1.default.encodeParameter('uint8', collAssetId);
191
+ const encodedDebt = web3_eth_abi_1.default.encodeParameter('address', debtAsset);
192
+ const encodedDebtId = web3_eth_abi_1.default.encodeParameter('uint8', debtAssetId);
193
+ const encodedCloseType = web3_eth_abi_1.default.encodeParameter('uint8', closeType);
194
+ const encodedMarket = web3_eth_abi_1.default.encodeParameter('address', marketAddr);
195
+ const userEncoded = web3_eth_abi_1.default.encodeParameter('address', user);
196
+ return [
197
+ encodedColl,
198
+ encodedCollId,
199
+ encodedDebt,
200
+ encodedDebtId,
201
+ encodedCloseType,
202
+ encodedMarket,
203
+ userEncoded,
204
+ ];
205
+ },
206
+ decode(subData) {
207
+ const collAsset = web3_eth_abi_1.default.decodeParameter('address', subData[0]);
208
+ const collAssetId = Number(web3_eth_abi_1.default.decodeParameter('uint8', subData[1]));
209
+ const debtAsset = web3_eth_abi_1.default.decodeParameter('address', subData[2]);
210
+ const debtAssetId = Number(web3_eth_abi_1.default.decodeParameter('uint8', subData[3]));
211
+ const closeType = Number(web3_eth_abi_1.default.decodeParameter('uint8', subData[4]));
212
+ const marketAddr = web3_eth_abi_1.default.decodeParameter('address', subData[5]);
213
+ const user = web3_eth_abi_1.default.decodeParameter('address', subData[6]);
214
+ return {
215
+ collAsset, collAssetId, debtAsset, debtAssetId, closeType, marketAddr, user,
216
+ };
217
+ },
218
+ };
143
219
  exports.aaveV3QuotePriceSubData = {
144
220
  encode(collAsset, collAssetId, debtAsset, debtAssetId, nullAddress = constants_1.ZERO_ADDRESS) {
145
221
  const encodedColl = web3_eth_abi_1.default.encodeParameter('address', collAsset);
@@ -738,27 +814,3 @@ exports.compoundV3CloseSubData = {
738
814
  };
739
815
  },
740
816
  };
741
- exports.liquityV2InterestRateAdjustmentSubData = {
742
- encode: (market, troveId, interestRateChange) => {
743
- const marketEncoded = web3_eth_abi_1.default.encodeParameter('address', market);
744
- const troveIdEncoded = web3_eth_abi_1.default.encodeParameter('uint256', troveId);
745
- const interestRateChangeWei = new decimal_js_1.default(interestRateChange).mul(1e16).toString();
746
- const interestRateChangeEncoded = web3_eth_abi_1.default.encodeParameter('uint256', interestRateChangeWei.toString());
747
- return [
748
- marketEncoded,
749
- troveIdEncoded,
750
- interestRateChangeEncoded,
751
- ];
752
- },
753
- decode: (subData) => {
754
- const market = web3_eth_abi_1.default.decodeParameter('address', subData[0]);
755
- const troveId = web3_eth_abi_1.default.decodeParameter('uint256', subData[1]);
756
- const interestRateChangeWei = web3_eth_abi_1.default.decodeParameter('uint256', subData[2]);
757
- const interestRateChange = new decimal_js_1.default(interestRateChangeWei).div(Math.pow(10, 16)).toString();
758
- return {
759
- market,
760
- troveId,
761
- interestRateChange,
762
- };
763
- },
764
- };