@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
@@ -466,6 +466,320 @@ describe('Feature: strategySubService.ts', () => {
466
466
  });
467
467
  });
468
468
  });
469
+ describe('leverageManagementOnPriceGeneric()', () => {
470
+ const examples = [
471
+ [
472
+ [
473
+ Bundles.MainnetIds.AAVE_V3_EOA_REPAY_ON_PRICE,
474
+ true,
475
+ ['0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000000000000000000000000000000000000000000000000000026e1f9c6000000000000000000000000000000000000000000000000000000000000000001'],
476
+ [
477
+ '0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',
478
+ '0x0000000000000000000000000000000000000000000000000000000000000000',
479
+ '0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
480
+ '0x0000000000000000000000000000000000000000000000000000000000000001',
481
+ '0x00000000000000000000000087870bca3f3fd6335c3f4ce8392d69d0b4161d39',
482
+ '0x0000000000000000000000000000000000000000000000001bc16d674ec80000',
483
+ '0x0000000000000000000000000000000000000000000000000000000000000000',
484
+ ],
485
+ ],
486
+ [
487
+ Bundles.MainnetIds.AAVE_V3_EOA_REPAY_ON_PRICE,
488
+ 1670,
489
+ RatioState.UNDER,
490
+ web3Utils.toChecksumAddress(getAssetInfo('WETH', ChainId.Ethereum).address),
491
+ 0,
492
+ web3Utils.toChecksumAddress(getAssetInfo('USDC', ChainId.Ethereum).address),
493
+ 1,
494
+ web3Utils.toChecksumAddress('0x87870Bca3F3fD6335C3F4ce8392D69d0B4161d39'),
495
+ 200,
496
+ web3Utils.toChecksumAddress('0x0000000000000000000000000000000000000000'),
497
+ ]
498
+ ],
499
+ [
500
+ [
501
+ Bundles.MainnetIds.AAVE_V3_EOA_BOOST_ON_PRICE,
502
+ true,
503
+ ['0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000002260fac5e5542a773aa44fbcfedf7c193bc2c5990000000000000000000000000000000000000000000000000000000002faf0800000000000000000000000000000000000000000000000000000000000000000'],
504
+ [
505
+ '0x0000000000000000000000002260fac5e5542a773aa44fbcfedf7c193bc2c599',
506
+ '0x0000000000000000000000000000000000000000000000000000000000000002',
507
+ '0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
508
+ '0x0000000000000000000000000000000000000000000000000000000000000001',
509
+ '0x00000000000000000000000087870bca3f3fd6335c3f4ce8392d69d0b4161d39',
510
+ '0x0000000000000000000000000000000000000000000000001bc16d674ec80000',
511
+ '0x0000000000000000000000001234567890123456789012345678901234567890',
512
+ ],
513
+ ],
514
+ [
515
+ Bundles.MainnetIds.AAVE_V3_EOA_BOOST_ON_PRICE,
516
+ 0.5,
517
+ RatioState.OVER,
518
+ web3Utils.toChecksumAddress(getAssetInfo('WBTC', ChainId.Ethereum).address),
519
+ 2,
520
+ web3Utils.toChecksumAddress(getAssetInfo('USDC', ChainId.Ethereum).address),
521
+ 1,
522
+ web3Utils.toChecksumAddress('0x87870Bca3F3fD6335C3F4ce8392D69d0B4161d39'),
523
+ 200,
524
+ web3Utils.toChecksumAddress('0x1234567890123456789012345678901234567890'),
525
+ ]
526
+ ],
527
+ ];
528
+ examples.forEach(([expected, actual]) => {
529
+ it(`Given ${JSON.stringify(actual)} should return expected value: ${JSON.stringify(expected)}`, () => {
530
+ expect(aaveV3Encode.leverageManagementOnPriceGeneric(...actual)).to.eql(expected);
531
+ });
532
+ });
533
+ });
534
+ describe('closeOnPriceGeneric()', () => {
535
+ const examples = [
536
+ // Stop loss only (to debt)
537
+ [
538
+ [
539
+ Bundles.MainnetIds.AAVE_V3_EOA_CLOSE,
540
+ true,
541
+ ['0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000000000000000000000000000000000022ecb25c000000000000000000000000000000000000000000000000000000000000000000'],
542
+ [
543
+ '0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',
544
+ '0x0000000000000000000000000000000000000000000000000000000000000000',
545
+ '0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
546
+ '0x0000000000000000000000000000000000000000000000000000000000000001',
547
+ '0x0000000000000000000000000000000000000000000000000000000000000003',
548
+ '0x0000000000000000000000002f39d218133afab8f2b819b1066c7e434ad94e9e',
549
+ '0x0000000000000000000000000000000000000000000000000000000000000000',
550
+ ],
551
+ ],
552
+ [
553
+ Bundles.MainnetIds.AAVE_V3_EOA_CLOSE,
554
+ web3Utils.toChecksumAddress(getAssetInfo('WETH', ChainId.Ethereum).address),
555
+ 0,
556
+ web3Utils.toChecksumAddress(getAssetInfo('USDC', ChainId.Ethereum).address),
557
+ 1,
558
+ web3Utils.toChecksumAddress('0x2f39d218133AFaB8F2B819B1066c7E434Ad94E9e'),
559
+ web3Utils.toChecksumAddress('0x0000000000000000000000000000000000000000'),
560
+ 1500,
561
+ CloseToAssetType.DEBT,
562
+ 0,
563
+ CloseToAssetType.COLLATERAL, // takeProfitType (not used since price is 0)
564
+ ]
565
+ ],
566
+ // Take profit only (to collateral)
567
+ [
568
+ [
569
+ Bundles.MainnetIds.AAVE_V3_EOA_CLOSE,
570
+ true,
571
+ ['0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000746a528800'],
572
+ [
573
+ '0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',
574
+ '0x0000000000000000000000000000000000000000000000000000000000000000',
575
+ '0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
576
+ '0x0000000000000000000000000000000000000000000000000000000000000001',
577
+ '0x0000000000000000000000000000000000000000000000000000000000000000',
578
+ '0x0000000000000000000000002f39d218133afab8f2b819b1066c7e434ad94e9e',
579
+ '0x0000000000000000000000000000000000000000000000000000000000000000',
580
+ ],
581
+ ],
582
+ [
583
+ Bundles.MainnetIds.AAVE_V3_EOA_CLOSE,
584
+ web3Utils.toChecksumAddress(getAssetInfo('WETH', ChainId.Ethereum).address),
585
+ 0,
586
+ web3Utils.toChecksumAddress(getAssetInfo('USDC', ChainId.Ethereum).address),
587
+ 1,
588
+ web3Utils.toChecksumAddress('0x2f39d218133AFaB8F2B819B1066c7E434Ad94E9e'),
589
+ web3Utils.toChecksumAddress('0x0000000000000000000000000000000000000000'),
590
+ 0,
591
+ CloseToAssetType.DEBT,
592
+ 5000,
593
+ CloseToAssetType.COLLATERAL, // takeProfitType
594
+ ]
595
+ ],
596
+ // Both stop loss and take profit with useOnBehalf
597
+ [
598
+ [
599
+ Bundles.MainnetIds.AAVE_V3_EOA_CLOSE,
600
+ true,
601
+ ['0x0000000000000000000000002260fac5e5542a773aa44fbcfedf7c193bc2c599000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000000000000000000000000000000000022ecb25c000000000000000000000000000000000000000000000000000000005d21dba000'],
602
+ [
603
+ '0x0000000000000000000000002260fac5e5542a773aa44fbcfedf7c193bc2c599',
604
+ '0x0000000000000000000000000000000000000000000000000000000000000002',
605
+ '0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
606
+ '0x0000000000000000000000000000000000000000000000000000000000000001',
607
+ '0x0000000000000000000000000000000000000000000000000000000000000004',
608
+ '0x0000000000000000000000002f39d218133afab8f2b819b1066c7e434ad94e9e',
609
+ '0x0000000000000000000000001234567890123456789012345678901234567890',
610
+ ],
611
+ ],
612
+ [
613
+ Bundles.MainnetIds.AAVE_V3_EOA_CLOSE,
614
+ web3Utils.toChecksumAddress(getAssetInfo('WBTC', ChainId.Ethereum).address),
615
+ 2,
616
+ web3Utils.toChecksumAddress(getAssetInfo('USDC', ChainId.Ethereum).address),
617
+ 1,
618
+ web3Utils.toChecksumAddress('0x2f39d218133AFaB8F2B819B1066c7E434Ad94E9e'),
619
+ web3Utils.toChecksumAddress('0x1234567890123456789012345678901234567890'),
620
+ 1500,
621
+ CloseToAssetType.COLLATERAL,
622
+ 4000,
623
+ CloseToAssetType.COLLATERAL, // takeProfitType
624
+ ]
625
+ ],
626
+ // Stop loss only (to collateral) - CloseStrategyType.STOP_LOSS_IN_COLLATERAL
627
+ [
628
+ [
629
+ Bundles.MainnetIds.AAVE_V3_EOA_CLOSE,
630
+ true,
631
+ ['0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000000000000000000000000000000000022ecb25c000000000000000000000000000000000000000000000000000000000000000000'],
632
+ [
633
+ '0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',
634
+ '0x0000000000000000000000000000000000000000000000000000000000000000',
635
+ '0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
636
+ '0x0000000000000000000000000000000000000000000000000000000000000001',
637
+ '0x0000000000000000000000000000000000000000000000000000000000000001',
638
+ '0x0000000000000000000000002f39d218133afab8f2b819b1066c7e434ad94e9e',
639
+ '0x0000000000000000000000000000000000000000000000000000000000000000',
640
+ ],
641
+ ],
642
+ [
643
+ Bundles.MainnetIds.AAVE_V3_EOA_CLOSE,
644
+ web3Utils.toChecksumAddress(getAssetInfo('WETH', ChainId.Ethereum).address),
645
+ 0,
646
+ web3Utils.toChecksumAddress(getAssetInfo('USDC', ChainId.Ethereum).address),
647
+ 1,
648
+ web3Utils.toChecksumAddress('0x2f39d218133AFaB8F2B819B1066c7E434Ad94E9e'),
649
+ web3Utils.toChecksumAddress('0x0000000000000000000000000000000000000000'),
650
+ 1500,
651
+ CloseToAssetType.COLLATERAL,
652
+ 0,
653
+ CloseToAssetType.DEBT, // takeProfitType (not used since price is 0)
654
+ ]
655
+ ],
656
+ // Take profit only (to debt) - CloseStrategyType.TAKE_PROFIT_IN_DEBT
657
+ [
658
+ [
659
+ Bundles.MainnetIds.AAVE_V3_EOA_CLOSE,
660
+ true,
661
+ ['0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000746a528800'],
662
+ [
663
+ '0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',
664
+ '0x0000000000000000000000000000000000000000000000000000000000000000',
665
+ '0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
666
+ '0x0000000000000000000000000000000000000000000000000000000000000001',
667
+ '0x0000000000000000000000000000000000000000000000000000000000000002',
668
+ '0x0000000000000000000000002f39d218133afab8f2b819b1066c7e434ad94e9e',
669
+ '0x0000000000000000000000000000000000000000000000000000000000000000',
670
+ ],
671
+ ],
672
+ [
673
+ Bundles.MainnetIds.AAVE_V3_EOA_CLOSE,
674
+ web3Utils.toChecksumAddress(getAssetInfo('WETH', ChainId.Ethereum).address),
675
+ 0,
676
+ web3Utils.toChecksumAddress(getAssetInfo('USDC', ChainId.Ethereum).address),
677
+ 1,
678
+ web3Utils.toChecksumAddress('0x2f39d218133AFaB8F2B819B1066c7E434Ad94E9e'),
679
+ web3Utils.toChecksumAddress('0x0000000000000000000000000000000000000000'),
680
+ 0,
681
+ CloseToAssetType.COLLATERAL,
682
+ 5000,
683
+ CloseToAssetType.DEBT, // takeProfitType
684
+ ]
685
+ ],
686
+ // Take profit in collateral and stop loss in debt - CloseStrategyType.TAKE_PROFIT_IN_COLLATERAL_AND_STOP_LOSS_IN_DEBT
687
+ [
688
+ [
689
+ Bundles.MainnetIds.AAVE_V3_EOA_CLOSE,
690
+ true,
691
+ ['0x0000000000000000000000002260fac5e5542a773aa44fbcfedf7c193bc2c599000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000000000000000000000000000000000022ecb25c000000000000000000000000000000000000000000000000000000005d21dba000'],
692
+ [
693
+ '0x0000000000000000000000002260fac5e5542a773aa44fbcfedf7c193bc2c599',
694
+ '0x0000000000000000000000000000000000000000000000000000000000000002',
695
+ '0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
696
+ '0x0000000000000000000000000000000000000000000000000000000000000001',
697
+ '0x0000000000000000000000000000000000000000000000000000000000000005',
698
+ '0x0000000000000000000000002f39d218133afab8f2b819b1066c7e434ad94e9e',
699
+ '0x0000000000000000000000001234567890123456789012345678901234567890',
700
+ ],
701
+ ],
702
+ [
703
+ Bundles.MainnetIds.AAVE_V3_EOA_CLOSE,
704
+ web3Utils.toChecksumAddress(getAssetInfo('WBTC', ChainId.Ethereum).address),
705
+ 2,
706
+ web3Utils.toChecksumAddress(getAssetInfo('USDC', ChainId.Ethereum).address),
707
+ 1,
708
+ web3Utils.toChecksumAddress('0x2f39d218133AFaB8F2B819B1066c7E434Ad94E9e'),
709
+ web3Utils.toChecksumAddress('0x1234567890123456789012345678901234567890'),
710
+ 1500,
711
+ CloseToAssetType.DEBT,
712
+ 4000,
713
+ CloseToAssetType.COLLATERAL, // takeProfitType
714
+ ]
715
+ ],
716
+ // Both stop loss and take profit in debt - CloseStrategyType.TAKE_PROFIT_AND_STOP_LOSS_IN_DEBT
717
+ [
718
+ [
719
+ Bundles.MainnetIds.AAVE_V3_EOA_CLOSE,
720
+ true,
721
+ ['0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000000000000000000000000000000000022ecb25c000000000000000000000000000000000000000000000000000000005d21dba000'],
722
+ [
723
+ '0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',
724
+ '0x0000000000000000000000000000000000000000000000000000000000000000',
725
+ '0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
726
+ '0x0000000000000000000000000000000000000000000000000000000000000001',
727
+ '0x0000000000000000000000000000000000000000000000000000000000000006',
728
+ '0x0000000000000000000000002f39d218133afab8f2b819b1066c7e434ad94e9e',
729
+ '0x0000000000000000000000000000000000000000000000000000000000000000',
730
+ ],
731
+ ],
732
+ [
733
+ Bundles.MainnetIds.AAVE_V3_EOA_CLOSE,
734
+ web3Utils.toChecksumAddress(getAssetInfo('WETH', ChainId.Ethereum).address),
735
+ 0,
736
+ web3Utils.toChecksumAddress(getAssetInfo('USDC', ChainId.Ethereum).address),
737
+ 1,
738
+ web3Utils.toChecksumAddress('0x2f39d218133AFaB8F2B819B1066c7E434Ad94E9e'),
739
+ web3Utils.toChecksumAddress('0x0000000000000000000000000000000000000000'),
740
+ 1500,
741
+ CloseToAssetType.DEBT,
742
+ 4000,
743
+ CloseToAssetType.DEBT, // takeProfitType
744
+ ]
745
+ ],
746
+ // Take profit in debt and stop loss in collateral - CloseStrategyType.TAKE_PROFIT_IN_DEBT_AND_STOP_LOSS_IN_COLLATERAL
747
+ [
748
+ [
749
+ Bundles.MainnetIds.AAVE_V3_EOA_CLOSE,
750
+ true,
751
+ ['0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000000000000000000000000000000000022ecb25c000000000000000000000000000000000000000000000000000000005d21dba000'],
752
+ [
753
+ '0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',
754
+ '0x0000000000000000000000000000000000000000000000000000000000000000',
755
+ '0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
756
+ '0x0000000000000000000000000000000000000000000000000000000000000001',
757
+ '0x0000000000000000000000000000000000000000000000000000000000000007',
758
+ '0x0000000000000000000000002f39d218133afab8f2b819b1066c7e434ad94e9e',
759
+ '0x0000000000000000000000009876543210987654321098765432109876543210',
760
+ ],
761
+ ],
762
+ [
763
+ Bundles.MainnetIds.AAVE_V3_EOA_CLOSE,
764
+ web3Utils.toChecksumAddress(getAssetInfo('WETH', ChainId.Ethereum).address),
765
+ 0,
766
+ web3Utils.toChecksumAddress(getAssetInfo('USDC', ChainId.Ethereum).address),
767
+ 1,
768
+ web3Utils.toChecksumAddress('0x2f39d218133AFaB8F2B819B1066c7E434Ad94E9e'),
769
+ web3Utils.toChecksumAddress('0x9876543210987654321098765432109876543210'),
770
+ 1500,
771
+ CloseToAssetType.COLLATERAL,
772
+ 4000,
773
+ CloseToAssetType.DEBT, // takeProfitType
774
+ ]
775
+ ],
776
+ ];
777
+ examples.forEach(([expected, actual]) => {
778
+ it(`Given ${JSON.stringify(actual)} should return expected value: ${JSON.stringify(expected)}`, () => {
779
+ expect(aaveV3Encode.closeOnPriceGeneric(...actual)).to.eql(expected);
780
+ });
781
+ });
782
+ });
469
783
  });
470
784
  describe('When testing strategySubService.compoundV2Encode', () => {
471
785
  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
- };
@@ -121,9 +121,14 @@ export const aaveV3LeverageManagementSubData = {
121
121
  },
122
122
  };
123
123
  export const aaveV3LeverageManagementSubDataWithoutSubProxy = {
124
- encode(targetRatio, ratioState) {
124
+ encode(targetRatio, ratioState, market, user, isGeneric) {
125
125
  const encodedTargetRatio = AbiCoder.encodeParameter('uint256', ratioPercentageToWei(targetRatio));
126
126
  const encodedRatioState = AbiCoder.encodeParameter('uint8', ratioState);
127
+ if (isGeneric) {
128
+ const encodedMarket = AbiCoder.encodeParameter('address', market);
129
+ const encodedUser = AbiCoder.encodeParameter('address', user);
130
+ return [encodedTargetRatio, encodedRatioState, encodedMarket, encodedUser];
131
+ }
127
132
  const encodedUseDefaultMarket = AbiCoder.encodeParameter('bool', true);
128
133
  const encodedUseOnBehalf = AbiCoder.encodeParameter('bool', false);
129
134
  return [encodedTargetRatio, encodedRatioState, encodedUseDefaultMarket, encodedUseOnBehalf];
@@ -134,6 +139,77 @@ export const aaveV3LeverageManagementSubDataWithoutSubProxy = {
134
139
  return { targetRatio, ratioState };
135
140
  },
136
141
  };
142
+ export const aaveV3LeverageManagementOnPriceGeneric = {
143
+ encode(collAsset, collAssetId, debtAsset, debtAssetId, marketAddr, targetRatio, user) {
144
+ const encodedColl = AbiCoder.encodeParameter('address', collAsset);
145
+ const encodedCollId = AbiCoder.encodeParameter('uint8', collAssetId);
146
+ const encodedDebt = AbiCoder.encodeParameter('address', debtAsset);
147
+ const encodedDebtId = AbiCoder.encodeParameter('uint8', debtAssetId);
148
+ const encodedMarket = AbiCoder.encodeParameter('address', marketAddr);
149
+ const encodedTargetRatio = AbiCoder.encodeParameter('uint256', ratioPercentageToWei(targetRatio));
150
+ const userEncoded = AbiCoder.encodeParameter('address', user);
151
+ return [
152
+ encodedColl,
153
+ encodedCollId,
154
+ encodedDebt,
155
+ encodedDebtId,
156
+ encodedMarket,
157
+ encodedTargetRatio,
158
+ userEncoded,
159
+ ];
160
+ },
161
+ decode(subData) {
162
+ const collAsset = AbiCoder.decodeParameter('address', subData[0]);
163
+ const collAssetId = Number(AbiCoder.decodeParameter('uint8', subData[1]));
164
+ const debtAsset = AbiCoder.decodeParameter('address', subData[2]);
165
+ const debtAssetId = Number(AbiCoder.decodeParameter('uint8', subData[3]));
166
+ const marketAddr = AbiCoder.decodeParameter('address', subData[4]);
167
+ const weiRatio = AbiCoder.decodeParameter('uint256', subData[5]);
168
+ const targetRatio = weiToRatioPercentage(weiRatio);
169
+ const user = AbiCoder.decodeParameter('address', subData[6]);
170
+ return {
171
+ collAsset,
172
+ collAssetId,
173
+ debtAsset,
174
+ debtAssetId,
175
+ marketAddr,
176
+ targetRatio,
177
+ user,
178
+ };
179
+ },
180
+ };
181
+ export const aaveV3CloseGenericSubData = {
182
+ encode(collAsset, collAssetId, debtAsset, debtAssetId, closeType, marketAddr, user) {
183
+ const encodedColl = AbiCoder.encodeParameter('address', collAsset);
184
+ const encodedCollId = AbiCoder.encodeParameter('uint8', collAssetId);
185
+ const encodedDebt = AbiCoder.encodeParameter('address', debtAsset);
186
+ const encodedDebtId = AbiCoder.encodeParameter('uint8', debtAssetId);
187
+ const encodedCloseType = AbiCoder.encodeParameter('uint8', closeType);
188
+ const encodedMarket = AbiCoder.encodeParameter('address', marketAddr);
189
+ const userEncoded = AbiCoder.encodeParameter('address', user);
190
+ return [
191
+ encodedColl,
192
+ encodedCollId,
193
+ encodedDebt,
194
+ encodedDebtId,
195
+ encodedCloseType,
196
+ encodedMarket,
197
+ userEncoded,
198
+ ];
199
+ },
200
+ decode(subData) {
201
+ const collAsset = AbiCoder.decodeParameter('address', subData[0]);
202
+ const collAssetId = Number(AbiCoder.decodeParameter('uint8', subData[1]));
203
+ const debtAsset = AbiCoder.decodeParameter('address', subData[2]);
204
+ const debtAssetId = Number(AbiCoder.decodeParameter('uint8', subData[3]));
205
+ const closeType = Number(AbiCoder.decodeParameter('uint8', subData[4]));
206
+ const marketAddr = AbiCoder.decodeParameter('address', subData[5]);
207
+ const user = AbiCoder.decodeParameter('address', subData[6]);
208
+ return {
209
+ collAsset, collAssetId, debtAsset, debtAssetId, closeType, marketAddr, user,
210
+ };
211
+ },
212
+ };
137
213
  export const aaveV3QuotePriceSubData = {
138
214
  encode(collAsset, collAssetId, debtAsset, debtAssetId, nullAddress = ZERO_ADDRESS) {
139
215
  const encodedColl = AbiCoder.encodeParameter('address', collAsset);
@@ -732,27 +808,3 @@ export const compoundV3CloseSubData = {
732
808
  };
733
809
  },
734
810
  };
735
- export const liquityV2InterestRateAdjustmentSubData = {
736
- encode: (market, troveId, interestRateChange) => {
737
- const marketEncoded = AbiCoder.encodeParameter('address', market);
738
- const troveIdEncoded = AbiCoder.encodeParameter('uint256', troveId);
739
- const interestRateChangeWei = new Dec(interestRateChange).mul(1e16).toString();
740
- const interestRateChangeEncoded = AbiCoder.encodeParameter('uint256', interestRateChangeWei.toString());
741
- return [
742
- marketEncoded,
743
- troveIdEncoded,
744
- interestRateChangeEncoded,
745
- ];
746
- },
747
- decode: (subData) => {
748
- const market = AbiCoder.decodeParameter('address', subData[0]);
749
- const troveId = AbiCoder.decodeParameter('uint256', subData[1]);
750
- const interestRateChangeWei = AbiCoder.decodeParameter('uint256', subData[2]);
751
- const interestRateChange = new Dec(interestRateChangeWei).div(Math.pow(10, 16)).toString();
752
- return {
753
- market,
754
- troveId,
755
- interestRateChange,
756
- };
757
- },
758
- };