@defisaver/automation-sdk 3.3.18 → 3.3.19-sub-fetching-dev

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 (55) hide show
  1. package/cjs/automation/private/StrategiesAutomation.d.ts +5 -1
  2. package/cjs/automation/private/StrategiesAutomation.js +19 -2
  3. package/cjs/automation/private/StrategiesAutomation.test.js +55 -0
  4. package/cjs/constants/index.js +35 -0
  5. package/cjs/services/apiSubscriptionsService.d.ts +7 -0
  6. package/cjs/services/apiSubscriptionsService.js +33 -0
  7. package/cjs/services/apiSubscriptionsService.test.d.ts +1 -0
  8. package/cjs/services/apiSubscriptionsService.test.js +69 -0
  9. package/cjs/services/ethereumService.test.js +4 -7
  10. package/cjs/services/strategiesService.js +40 -9
  11. package/cjs/services/strategiesService.test.js +0 -1
  12. package/cjs/services/strategySubService.d.ts +4 -0
  13. package/cjs/services/strategySubService.js +24 -0
  14. package/cjs/services/strategySubService.test.js +295 -0
  15. package/cjs/services/subDataService.d.ts +38 -0
  16. package/cjs/services/subDataService.js +76 -2
  17. package/cjs/services/subDataService.test.js +494 -4
  18. package/cjs/types/enums.d.ts +15 -2
  19. package/cjs/types/enums.js +15 -1
  20. package/cjs/types/index.d.ts +29 -3
  21. package/esm/automation/private/StrategiesAutomation.d.ts +5 -1
  22. package/esm/automation/private/StrategiesAutomation.js +20 -3
  23. package/esm/automation/private/StrategiesAutomation.test.js +56 -1
  24. package/esm/constants/index.js +35 -0
  25. package/esm/services/apiSubscriptionsService.d.ts +7 -0
  26. package/esm/services/apiSubscriptionsService.js +29 -0
  27. package/esm/services/apiSubscriptionsService.test.d.ts +1 -0
  28. package/esm/services/apiSubscriptionsService.test.js +67 -0
  29. package/esm/services/ethereumService.test.js +4 -7
  30. package/esm/services/strategiesService.js +40 -9
  31. package/esm/services/strategiesService.test.js +0 -1
  32. package/esm/services/strategySubService.d.ts +4 -0
  33. package/esm/services/strategySubService.js +24 -0
  34. package/esm/services/strategySubService.test.js +295 -0
  35. package/esm/services/subDataService.d.ts +38 -0
  36. package/esm/services/subDataService.js +74 -0
  37. package/esm/services/subDataService.test.js +494 -4
  38. package/esm/types/enums.d.ts +15 -2
  39. package/esm/types/enums.js +14 -0
  40. package/esm/types/index.d.ts +29 -3
  41. package/package.json +1 -1
  42. package/src/automation/private/StrategiesAutomation.test.ts +70 -1
  43. package/src/automation/private/StrategiesAutomation.ts +25 -1
  44. package/src/constants/index.ts +35 -0
  45. package/src/services/apiSubscriptionsService.test.ts +75 -0
  46. package/src/services/apiSubscriptionsService.ts +33 -0
  47. package/src/services/ethereumService.test.ts +5 -8
  48. package/src/services/strategiesService.test.ts +0 -1
  49. package/src/services/strategiesService.ts +43 -10
  50. package/src/services/strategySubService.test.ts +382 -0
  51. package/src/services/strategySubService.ts +87 -0
  52. package/src/services/subDataService.test.ts +608 -4
  53. package/src/services/subDataService.ts +107 -0
  54. package/src/types/enums.ts +14 -0
  55. package/src/types/index.ts +31 -2
@@ -1478,6 +1478,224 @@ describe('Feature: strategySubService.ts', () => {
1478
1478
  });
1479
1479
  });
1480
1480
  });
1481
+ describe('leverageManagementGeneric()', () => {
1482
+ const examples = [
1483
+ [
1484
+ [
1485
+ enums_1.Bundles.MainnetIds.SPARK_EOA_REPAY,
1486
+ true,
1487
+ ['0x000000000000000000000000123456789012345678901234567890123456789000000000000000000000000002c3ea4e34c0cbd694d2adfa2c690eecbc1793ee000000000000000000000000000000000000000000000000136dcc951d8c00000000000000000000000000000000000000000000000000000000000000000001'],
1488
+ [
1489
+ '0x00000000000000000000000000000000000000000000000018fae27693b40000',
1490
+ '0x0000000000000000000000000000000000000000000000000000000000000001',
1491
+ '0x00000000000000000000000002c3ea4e34c0cbd694d2adfa2c690eecbc1793ee',
1492
+ '0x0000000000000000000000001234567890123456789012345678901234567890',
1493
+ ],
1494
+ ],
1495
+ [
1496
+ enums_1.Bundles.MainnetIds.SPARK_EOA_REPAY,
1497
+ web3Utils.toChecksumAddress('0x02C3eA4e34C0cBd694D2adFa2c690EECbC1793eE'),
1498
+ web3Utils.toChecksumAddress('0x1234567890123456789012345678901234567890'),
1499
+ enums_1.RatioState.UNDER,
1500
+ 180,
1501
+ 140,
1502
+ ],
1503
+ ],
1504
+ [
1505
+ [
1506
+ enums_1.Bundles.MainnetIds.SPARK_EOA_BOOST,
1507
+ true,
1508
+ ['0x000000000000000000000000123456789012345678901234567890123456789000000000000000000000000002c3ea4e34c0cbd694d2adfa2c690eecbc1793ee0000000000000000000000000000000000000000000000001bc16d674ec800000000000000000000000000000000000000000000000000000000000000000000'],
1509
+ [
1510
+ '0x00000000000000000000000000000000000000000000000016345785d8a00000',
1511
+ '0x0000000000000000000000000000000000000000000000000000000000000000',
1512
+ '0x00000000000000000000000002c3ea4e34c0cbd694d2adfa2c690eecbc1793ee',
1513
+ '0x0000000000000000000000001234567890123456789012345678901234567890',
1514
+ ],
1515
+ ],
1516
+ [
1517
+ enums_1.Bundles.MainnetIds.SPARK_EOA_BOOST,
1518
+ web3Utils.toChecksumAddress('0x02C3eA4e34C0cBd694D2adFa2c690EECbC1793eE'),
1519
+ web3Utils.toChecksumAddress('0x1234567890123456789012345678901234567890'),
1520
+ enums_1.RatioState.OVER,
1521
+ 160,
1522
+ 200,
1523
+ ],
1524
+ ],
1525
+ ];
1526
+ examples.forEach(([expected, actual]) => {
1527
+ it(`Given ${JSON.stringify(actual)} should return expected value: ${JSON.stringify(expected)}`, () => {
1528
+ (0, chai_1.expect)(strategySubService_1.sparkEncode.leverageManagementGeneric(...actual)).to.eql(expected);
1529
+ });
1530
+ });
1531
+ });
1532
+ describe('liquidationProtection()', () => {
1533
+ const examples = [
1534
+ [
1535
+ [
1536
+ enums_1.Bundles.MainnetIds.SPARK_SW_LIQUIDATION_PROTECTION,
1537
+ true,
1538
+ ['0x000000000000000000000000123456789012345678901234567890123456789000000000000000000000000002c3ea4e34c0cbd694d2adfa2c690eecbc1793ee000000000000000000000000000000000000000000000000136dcc951d8c00000000000000000000000000000000000000000000000000000000000000000001'],
1539
+ [
1540
+ '0x00000000000000000000000000000000000000000000000018fae27693b40000',
1541
+ '0x0000000000000000000000000000000000000000000000000000000000000001',
1542
+ '0x0000000000000000000000000000000000000000000000000000000000000001',
1543
+ '0x0000000000000000000000000000000000000000000000000000000000000000',
1544
+ ],
1545
+ ],
1546
+ [
1547
+ enums_1.Bundles.MainnetIds.SPARK_SW_LIQUIDATION_PROTECTION,
1548
+ web3Utils.toChecksumAddress('0x02C3eA4e34C0cBd694D2adFa2c690EECbC1793eE'),
1549
+ web3Utils.toChecksumAddress('0x1234567890123456789012345678901234567890'),
1550
+ enums_1.RatioState.UNDER,
1551
+ 180,
1552
+ 140,
1553
+ ],
1554
+ ],
1555
+ [
1556
+ [
1557
+ enums_1.Bundles.MainnetIds.SPARK_SW_LIQUIDATION_PROTECTION,
1558
+ true,
1559
+ ['0x000000000000000000000000123456789012345678901234567890123456789000000000000000000000000002c3ea4e34c0cbd694d2adfa2c690eecbc1793ee0000000000000000000000000000000000000000000000001bc16d674ec800000000000000000000000000000000000000000000000000000000000000000000'],
1560
+ [
1561
+ '0x00000000000000000000000000000000000000000000000016345785d8a00000',
1562
+ '0x0000000000000000000000000000000000000000000000000000000000000000',
1563
+ '0x0000000000000000000000000000000000000000000000000000000000000001',
1564
+ '0x0000000000000000000000000000000000000000000000000000000000000000',
1565
+ ],
1566
+ ],
1567
+ [
1568
+ enums_1.Bundles.MainnetIds.SPARK_SW_LIQUIDATION_PROTECTION,
1569
+ web3Utils.toChecksumAddress('0x02C3eA4e34C0cBd694D2adFa2c690EECbC1793eE'),
1570
+ web3Utils.toChecksumAddress('0x1234567890123456789012345678901234567890'),
1571
+ enums_1.RatioState.OVER,
1572
+ 160,
1573
+ 200,
1574
+ ],
1575
+ ],
1576
+ ];
1577
+ examples.forEach(([expected, actual]) => {
1578
+ it(`Given ${JSON.stringify(actual)} should return expected value: ${JSON.stringify(expected)}`, () => {
1579
+ (0, chai_1.expect)(strategySubService_1.sparkEncode.liquidationProtection(...actual)).to.eql(expected);
1580
+ });
1581
+ });
1582
+ });
1583
+ describe('liquidationProtectionGeneric()', () => {
1584
+ const examples = [
1585
+ [
1586
+ [
1587
+ enums_1.Bundles.MainnetIds.SPARK_EOA_LIQUIDATION_PROTECTION,
1588
+ true,
1589
+ ['0x000000000000000000000000123456789012345678901234567890123456789000000000000000000000000002c3ea4e34c0cbd694d2adfa2c690eecbc1793ee000000000000000000000000000000000000000000000000136dcc951d8c00000000000000000000000000000000000000000000000000000000000000000001'],
1590
+ [
1591
+ '0x00000000000000000000000000000000000000000000000018fae27693b40000',
1592
+ '0x0000000000000000000000000000000000000000000000000000000000000001',
1593
+ '0x00000000000000000000000002c3ea4e34c0cbd694d2adfa2c690eecbc1793ee',
1594
+ '0x0000000000000000000000001234567890123456789012345678901234567890',
1595
+ ],
1596
+ ],
1597
+ [
1598
+ enums_1.Bundles.MainnetIds.SPARK_EOA_LIQUIDATION_PROTECTION,
1599
+ web3Utils.toChecksumAddress('0x02C3eA4e34C0cBd694D2adFa2c690EECbC1793eE'),
1600
+ web3Utils.toChecksumAddress('0x1234567890123456789012345678901234567890'),
1601
+ enums_1.RatioState.UNDER,
1602
+ 180,
1603
+ 140,
1604
+ ],
1605
+ ],
1606
+ [
1607
+ [
1608
+ enums_1.Bundles.MainnetIds.SPARK_EOA_LIQUIDATION_PROTECTION,
1609
+ true,
1610
+ ['0x000000000000000000000000123456789012345678901234567890123456789000000000000000000000000002c3ea4e34c0cbd694d2adfa2c690eecbc1793ee0000000000000000000000000000000000000000000000001bc16d674ec800000000000000000000000000000000000000000000000000000000000000000000'],
1611
+ [
1612
+ '0x00000000000000000000000000000000000000000000000016345785d8a00000',
1613
+ '0x0000000000000000000000000000000000000000000000000000000000000000',
1614
+ '0x00000000000000000000000002c3ea4e34c0cbd694d2adfa2c690eecbc1793ee',
1615
+ '0x0000000000000000000000001234567890123456789012345678901234567890',
1616
+ ],
1617
+ ],
1618
+ [
1619
+ enums_1.Bundles.MainnetIds.SPARK_EOA_LIQUIDATION_PROTECTION,
1620
+ web3Utils.toChecksumAddress('0x02C3eA4e34C0cBd694D2adFa2c690EECbC1793eE'),
1621
+ web3Utils.toChecksumAddress('0x1234567890123456789012345678901234567890'),
1622
+ enums_1.RatioState.OVER,
1623
+ 160,
1624
+ 200,
1625
+ ],
1626
+ ],
1627
+ ];
1628
+ examples.forEach(([expected, actual]) => {
1629
+ it(`Given ${JSON.stringify(actual)} should return expected value: ${JSON.stringify(expected)}`, () => {
1630
+ (0, chai_1.expect)(strategySubService_1.sparkEncode.liquidationProtectionGeneric(...actual)).to.eql(expected);
1631
+ });
1632
+ });
1633
+ });
1634
+ describe('leverageManagementOnPriceGeneric()', () => {
1635
+ const examples = [
1636
+ [
1637
+ [
1638
+ enums_1.Bundles.MainnetIds.SPARK_EOA_REPAY_ON_PRICE,
1639
+ true,
1640
+ ['0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000000000003a352944000000000000000000000000000000000000000000000000000000000000000001'],
1641
+ [
1642
+ '0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',
1643
+ '0x0000000000000000000000000000000000000000000000000000000000000000',
1644
+ '0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
1645
+ '0x0000000000000000000000000000000000000000000000000000000000000001',
1646
+ '0x00000000000000000000000002c3ea4e34c0cbd694d2adfa2c690eecbc1793ee',
1647
+ '0x0000000000000000000000000000000000000000000000001bc16d674ec80000',
1648
+ '0x0000000000000000000000001234567890123456789012345678901234567890',
1649
+ ],
1650
+ ],
1651
+ [
1652
+ enums_1.Bundles.MainnetIds.SPARK_EOA_REPAY_ON_PRICE,
1653
+ 2500,
1654
+ enums_1.RatioState.UNDER,
1655
+ web3Utils.toChecksumAddress((0, tokens_1.getAssetInfo)('WETH', enums_1.ChainId.Ethereum).address),
1656
+ 0,
1657
+ web3Utils.toChecksumAddress((0, tokens_1.getAssetInfo)('USDC', enums_1.ChainId.Ethereum).address),
1658
+ 1,
1659
+ web3Utils.toChecksumAddress('0x02C3eA4e34C0cBd694D2adFa2c690EECbC1793eE'),
1660
+ 200,
1661
+ web3Utils.toChecksumAddress('0x1234567890123456789012345678901234567890'),
1662
+ ],
1663
+ ],
1664
+ [
1665
+ [
1666
+ enums_1.Bundles.MainnetIds.SPARK_EOA_BOOST_ON_PRICE,
1667
+ true,
1668
+ ['0x0000000000000000000000002260fac5e5542a773aa44fbcfedf7c193bc2c5990000000000000000000000006b175474e89094c44da98b954eedeac495271d0f00000000000000000000000000000000000000000000000000000417bce6c8000000000000000000000000000000000000000000000000000000000000000000'],
1669
+ [
1670
+ '0x0000000000000000000000002260fac5e5542a773aa44fbcfedf7c193bc2c599',
1671
+ '0x0000000000000000000000000000000000000000000000000000000000000002',
1672
+ '0x0000000000000000000000006b175474e89094c44da98b954eedeac495271d0f',
1673
+ '0x0000000000000000000000000000000000000000000000000000000000000004',
1674
+ '0x00000000000000000000000002c3ea4e34c0cbd694d2adfa2c690eecbc1793ee',
1675
+ '0x00000000000000000000000000000000000000000000000022b1c8c1227a0000',
1676
+ '0x0000000000000000000000001234567890123456789012345678901234567890',
1677
+ ],
1678
+ ],
1679
+ [
1680
+ enums_1.Bundles.MainnetIds.SPARK_EOA_BOOST_ON_PRICE,
1681
+ 45000,
1682
+ enums_1.RatioState.OVER,
1683
+ web3Utils.toChecksumAddress((0, tokens_1.getAssetInfo)('WBTC', enums_1.ChainId.Ethereum).address),
1684
+ 2,
1685
+ web3Utils.toChecksumAddress((0, tokens_1.getAssetInfo)('DAI', enums_1.ChainId.Ethereum).address),
1686
+ 4,
1687
+ web3Utils.toChecksumAddress('0x02C3eA4e34C0cBd694D2adFa2c690EECbC1793eE'),
1688
+ 250,
1689
+ web3Utils.toChecksumAddress('0x1234567890123456789012345678901234567890'),
1690
+ ],
1691
+ ],
1692
+ ];
1693
+ examples.forEach(([expected, actual]) => {
1694
+ it(`Given ${JSON.stringify(actual)} should return expected value: ${JSON.stringify(expected)}`, () => {
1695
+ (0, chai_1.expect)(strategySubService_1.sparkEncode.leverageManagementOnPriceGeneric(...actual)).to.eql(expected);
1696
+ });
1697
+ });
1698
+ });
1481
1699
  describe('closeOnPrice()', () => {
1482
1700
  const examples = [
1483
1701
  [
@@ -1516,6 +1734,44 @@ describe('Feature: strategySubService.ts', () => {
1516
1734
  });
1517
1735
  });
1518
1736
  });
1737
+ describe('closeOnPriceGeneric()', () => {
1738
+ const examples = [
1739
+ [
1740
+ [
1741
+ enums_1.Bundles.MainnetIds.SPARK_EOA_CLOSE,
1742
+ true,
1743
+ ['0x0000000000000000000000002260fac5e5542a773aa44fbcfedf7c193bc2c5990000000000000000000000006b175474e89094c44da98b954eedeac495271d0f000000000000000000000000000000000000000000000000000003a35294400000000000000000000000000000000000000000000000000000000574fbde6000'],
1744
+ [
1745
+ '0x0000000000000000000000002260fac5e5542a773aa44fbcfedf7c193bc2c599',
1746
+ '0x0000000000000000000000000000000000000000000000000000000000000002',
1747
+ '0x0000000000000000000000006b175474e89094c44da98b954eedeac495271d0f',
1748
+ '0x0000000000000000000000000000000000000000000000000000000000000004',
1749
+ '0x0000000000000000000000000000000000000000000000000000000000000005',
1750
+ '0x00000000000000000000000002c3ea4e34c0cbd694d2adfa2c690eecbc1793ee',
1751
+ '0x0000000000000000000000001234567890123456789012345678901234567890',
1752
+ ],
1753
+ ],
1754
+ [
1755
+ enums_1.Bundles.MainnetIds.SPARK_EOA_CLOSE,
1756
+ web3Utils.toChecksumAddress((0, tokens_1.getAssetInfo)('WBTC', enums_1.ChainId.Ethereum).address),
1757
+ 2,
1758
+ web3Utils.toChecksumAddress((0, tokens_1.getAssetInfo)('DAI', enums_1.ChainId.Ethereum).address),
1759
+ 4,
1760
+ web3Utils.toChecksumAddress('0x02C3eA4e34C0cBd694D2adFa2c690EECbC1793eE'),
1761
+ web3Utils.toChecksumAddress('0x1234567890123456789012345678901234567890'),
1762
+ 40000,
1763
+ enums_1.CloseToAssetType.DEBT,
1764
+ 60000,
1765
+ enums_1.CloseToAssetType.COLLATERAL,
1766
+ ],
1767
+ ],
1768
+ ];
1769
+ examples.forEach(([expected, actual]) => {
1770
+ it(`Given ${JSON.stringify(actual)} should return expected value: ${JSON.stringify(expected)}`, () => {
1771
+ (0, chai_1.expect)(strategySubService_1.sparkEncode.closeOnPriceGeneric(...actual)).to.eql(expected);
1772
+ });
1773
+ });
1774
+ });
1519
1775
  describe('collateralSwitch()', () => {
1520
1776
  const examples = [
1521
1777
  // WETH -> cbBTC, price 0.025 WETH/cbBTC, state UNDER
@@ -1615,6 +1871,45 @@ describe('Feature: strategySubService.ts', () => {
1615
1871
  });
1616
1872
  });
1617
1873
  });
1874
+ describe('collateralSwitchGeneric()', () => {
1875
+ const examples = [
1876
+ [
1877
+ [
1878
+ enums_1.Strategies.MainnetIds.SPARK_GENERIC_FL_COLLATERAL_SWITCH,
1879
+ false,
1880
+ ['0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000cbb7c0000ab88b473b1f5afd9ef808440eed33bf00000000000000000000000000000000000000000000000000000000002625a00000000000000000000000000000000000000000000000000000000000000001'],
1881
+ [
1882
+ '0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',
1883
+ '0x0000000000000000000000000000000000000000000000000000000000000000',
1884
+ '0x000000000000000000000000cbb7c0000ab88b473b1f5afd9ef808440eed33bf',
1885
+ '0x0000000000000000000000000000000000000000000000000000000000000007',
1886
+ '0x00000000000000000000000002c3ea4e34c0cbd694d2adfa2c690eecbc1793ee',
1887
+ '0x0000000000000000000000000000000000000000000000008ac7230489e80000',
1888
+ '0x0000000000000000000000001234567890123456789012345678901234567890',
1889
+ ],
1890
+ ],
1891
+ [
1892
+ enums_1.Strategies.MainnetIds.SPARK_GENERIC_FL_COLLATERAL_SWITCH,
1893
+ web3Utils.toChecksumAddress((0, tokens_1.getAssetInfo)('WETH', enums_1.ChainId.Ethereum).address),
1894
+ 0,
1895
+ web3Utils.toChecksumAddress((0, tokens_1.getAssetInfo)('cbBTC', enums_1.ChainId.Ethereum).address),
1896
+ 7,
1897
+ web3Utils.toChecksumAddress('0x02C3eA4e34C0cBd694D2adFa2c690EECbC1793eE'),
1898
+ '10000000000000000000',
1899
+ web3Utils.toChecksumAddress('0x1234567890123456789012345678901234567890'),
1900
+ web3Utils.toChecksumAddress((0, tokens_1.getAssetInfo)('WETH', enums_1.ChainId.Ethereum).address),
1901
+ web3Utils.toChecksumAddress((0, tokens_1.getAssetInfo)('cbBTC', enums_1.ChainId.Ethereum).address),
1902
+ 0.025,
1903
+ enums_1.RatioState.UNDER,
1904
+ ],
1905
+ ],
1906
+ ];
1907
+ examples.forEach(([expected, actual]) => {
1908
+ it(`Given ${JSON.stringify(actual)} should return expected value: ${JSON.stringify(expected)}`, () => {
1909
+ (0, chai_1.expect)(strategySubService_1.sparkEncode.collateralSwitchGeneric(...actual)).to.eql(expected);
1910
+ });
1911
+ });
1912
+ });
1618
1913
  });
1619
1914
  describe('When testing strategySubService.aaveV4Encode', () => {
1620
1915
  describe('leverageManagement()', () => {
@@ -468,6 +468,20 @@ export declare const sparkLiquidationProtectionSubData: {
468
468
  ratioState: RatioState;
469
469
  };
470
470
  };
471
+ export declare const sparkGenericLeverageManagementSubData: {
472
+ encode(targetRatio: number, ratioState: RatioState, market: EthereumAddress, user: EthereumAddress): string[];
473
+ decode(subData: string[]): {
474
+ targetRatio: number;
475
+ ratioState: RatioState;
476
+ };
477
+ };
478
+ export declare const sparkGenericLiquidationProtectionSubData: {
479
+ encode(targetRatio: number, ratioState: RatioState, market: EthereumAddress, user: EthereumAddress): string[];
480
+ decode(subData: string[]): {
481
+ targetRatio: number;
482
+ ratioState: RatioState;
483
+ };
484
+ };
471
485
  export declare const sparkCloseGenericSubData: {
472
486
  encode(collAsset: EthereumAddress, collAssetId: number, debtAsset: EthereumAddress, debtAssetId: number, closeType: CloseStrategyType, marketAddr: EthereumAddress, user: EthereumAddress): string[];
473
487
  decode(subData: string[]): {
@@ -491,6 +505,18 @@ export declare const sparkLeverageManagementOnPriceSubData: {
491
505
  targetRatio: number;
492
506
  };
493
507
  };
508
+ export declare const sparkLeverageManagementOnPriceGenericSubData: {
509
+ encode(collAsset: EthereumAddress, collAssetId: number, debtAsset: EthereumAddress, debtAssetId: number, marketAddr: EthereumAddress, targetRatio: number, user: EthereumAddress): string[];
510
+ decode(subData: string[]): {
511
+ collAsset: string;
512
+ collAssetId: number;
513
+ debtAsset: string;
514
+ debtAssetId: number;
515
+ marketAddr: string;
516
+ targetRatio: number;
517
+ user: string;
518
+ };
519
+ };
494
520
  export declare const sparkCollateralSwitchSubData: {
495
521
  encode(fromAsset: EthereumAddress, fromAssetId: number, toAsset: EthereumAddress, toAssetId: number, marketAddr: EthereumAddress, amountToSwitch: string, useOnBehalf?: boolean): string[];
496
522
  decode(subData: string[]): {
@@ -502,6 +528,18 @@ export declare const sparkCollateralSwitchSubData: {
502
528
  amountToSwitch: string;
503
529
  };
504
530
  };
531
+ export declare const sparkGenericFLCollateralSwitchSubData: {
532
+ encode(fromAsset: EthereumAddress, fromAssetId: number, toAsset: EthereumAddress, toAssetId: number, marketAddr: EthereumAddress, amountToSwitch: string, user: EthereumAddress): string[];
533
+ decode(subData: string[]): {
534
+ fromAsset: EthereumAddress;
535
+ fromAssetId: number;
536
+ toAsset: EthereumAddress;
537
+ toAssetId: number;
538
+ marketAddr: EthereumAddress;
539
+ amountToSwitch: string;
540
+ user: EthereumAddress;
541
+ };
542
+ };
505
543
  /**
506
544
  ______ .______ ____ ____ __ __ _______. _______
507
545
  / || _ \ \ \ / / | | | | / || \
@@ -3,8 +3,8 @@ 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.crvUSDLeverageManagementSubData = exports.sparkCollateralSwitchSubData = exports.sparkLeverageManagementOnPriceSubData = exports.sparkCloseGenericSubData = exports.sparkLiquidationProtectionSubData = exports.sparkLeverageManagementSubData = exports.legacySparkLeverageManagementSubData = exports.exchangeLimitOrderSubData = exports.legacyExchangeLimitOrderSubData = exports.exchangeDcaSubData = exports.compoundV3CloseSubData = exports.compoundV3LeverageManagementOnPriceSubData = exports.compoundV3LiquidationProtectionSubData = exports.compoundV3LeverageManagementSubData = exports.compoundV2LeverageManagementSubData = exports.legacyCompoundV2LeverageManagementSubData = exports.aaveV4CollateralSwitchSubData = exports.aaveV4CloseSubData = exports.aaveV4LeverageManagementOnPriceSubData = exports.aaveV4LiquidationProtectionSubData = exports.aaveV4LeverageManagementSubData = exports.aaveV3LeverageManagementOnPriceSubData = exports.aaveV3QuotePriceSubData = exports.aaveV3CollateralSwitchSubData = exports.aaveV3CloseGenericSubData = exports.aaveV3LeverageManagementOnPriceGeneric = exports.aaveV3LiquidationProtectionSubData = exports.aaveV3LeverageManagementSubData = exports.legacyAaveV3LeverageManagementSubData = exports.aaveV2LeverageManagementSubData = exports.legacyAaveV2LeverageManagementSubData = exports.liquityV2PaybackSubData = exports.liquityV2LeverageManagementOnPriceSubData = exports.liquityV2CloseSubData = exports.liquityV2LeverageManagementSubData = exports.liquityDebtInFrontRepaySubData = exports.liquityDsrSupplySubData = exports.liquityDsrPaybackSubData = exports.liquityCloseSubData = exports.liquityLeverageManagementSubData = exports.legacyLiquityLeverageManagementSubData = exports.liquityRepayFromSavingsSubData = exports.makerLiquidationProtectionSubData = exports.makerLeverageManagementSubData = exports.legacyMakerLeverageManagementSubData = exports.makerCloseSubData = exports.makerRepayFromSavingsSubData = exports.liquityPaybackUsingChickenBondSubData = exports.cBondsRebondSubData = exports.morphoAaveV2LeverageManagementSubData = void 0;
7
- exports.fluidLiquidationProtectionSubData = exports.fluidLeverageManagementSubData = exports.morphoBlueCloseOnPriceSubData = exports.morphoBlueLeverageManagementOnPriceSubData = exports.morphoBlueLiquidationProtectionSubData = exports.morphoBlueLeverageManagementSubData = exports.crvUSDPaybackSubData = void 0;
6
+ exports.sparkLeverageManagementOnPriceSubData = exports.sparkCloseGenericSubData = exports.sparkGenericLiquidationProtectionSubData = exports.sparkGenericLeverageManagementSubData = exports.sparkLiquidationProtectionSubData = exports.sparkLeverageManagementSubData = exports.legacySparkLeverageManagementSubData = exports.exchangeLimitOrderSubData = exports.legacyExchangeLimitOrderSubData = exports.exchangeDcaSubData = exports.compoundV3CloseSubData = exports.compoundV3LeverageManagementOnPriceSubData = exports.compoundV3LiquidationProtectionSubData = exports.compoundV3LeverageManagementSubData = exports.compoundV2LeverageManagementSubData = exports.legacyCompoundV2LeverageManagementSubData = exports.aaveV4CollateralSwitchSubData = exports.aaveV4CloseSubData = exports.aaveV4LeverageManagementOnPriceSubData = exports.aaveV4LiquidationProtectionSubData = exports.aaveV4LeverageManagementSubData = exports.aaveV3LeverageManagementOnPriceSubData = exports.aaveV3QuotePriceSubData = exports.aaveV3CollateralSwitchSubData = exports.aaveV3CloseGenericSubData = exports.aaveV3LeverageManagementOnPriceGeneric = exports.aaveV3LiquidationProtectionSubData = exports.aaveV3LeverageManagementSubData = exports.legacyAaveV3LeverageManagementSubData = exports.aaveV2LeverageManagementSubData = exports.legacyAaveV2LeverageManagementSubData = exports.liquityV2PaybackSubData = exports.liquityV2LeverageManagementOnPriceSubData = exports.liquityV2CloseSubData = exports.liquityV2LeverageManagementSubData = exports.liquityDebtInFrontRepaySubData = exports.liquityDsrSupplySubData = exports.liquityDsrPaybackSubData = exports.liquityCloseSubData = exports.liquityLeverageManagementSubData = exports.legacyLiquityLeverageManagementSubData = exports.liquityRepayFromSavingsSubData = exports.makerLiquidationProtectionSubData = exports.makerLeverageManagementSubData = exports.legacyMakerLeverageManagementSubData = exports.makerCloseSubData = exports.makerRepayFromSavingsSubData = exports.liquityPaybackUsingChickenBondSubData = exports.cBondsRebondSubData = exports.morphoAaveV2LeverageManagementSubData = void 0;
7
+ exports.fluidLiquidationProtectionSubData = exports.fluidLeverageManagementSubData = exports.morphoBlueCloseOnPriceSubData = exports.morphoBlueLeverageManagementOnPriceSubData = exports.morphoBlueLiquidationProtectionSubData = exports.morphoBlueLeverageManagementSubData = exports.crvUSDPaybackSubData = exports.crvUSDLeverageManagementSubData = exports.sparkGenericFLCollateralSwitchSubData = exports.sparkCollateralSwitchSubData = exports.sparkLeverageManagementOnPriceGenericSubData = void 0;
8
8
  const decimal_js_1 = __importDefault(require("decimal.js"));
9
9
  const web3_eth_abi_1 = __importDefault(require("web3-eth-abi"));
10
10
  const web3_utils_1 = require("web3-utils");
@@ -940,6 +940,21 @@ exports.sparkLeverageManagementSubData = {
940
940
  },
941
941
  };
942
942
  exports.sparkLiquidationProtectionSubData = exports.sparkLeverageManagementSubData;
943
+ exports.sparkGenericLeverageManagementSubData = {
944
+ encode(targetRatio, ratioState, market, user) {
945
+ const encodedTargetRatio = web3_eth_abi_1.default.encodeParameter('uint256', (0, utils_1.ratioPercentageToWei)(targetRatio));
946
+ const encodedRatioState = web3_eth_abi_1.default.encodeParameter('uint8', ratioState);
947
+ const encodedMarket = web3_eth_abi_1.default.encodeParameter('address', market);
948
+ const encodedUser = web3_eth_abi_1.default.encodeParameter('address', user);
949
+ return [encodedTargetRatio, encodedRatioState, encodedMarket, encodedUser];
950
+ },
951
+ decode(subData) {
952
+ const targetRatio = (0, utils_1.weiToRatioPercentage)(String(web3_eth_abi_1.default.decodeParameter('uint256', subData[0])));
953
+ const ratioState = Number(web3_eth_abi_1.default.decodeParameter('uint8', subData[1]));
954
+ return { targetRatio, ratioState };
955
+ },
956
+ };
957
+ exports.sparkGenericLiquidationProtectionSubData = exports.sparkGenericLeverageManagementSubData;
943
958
  exports.sparkCloseGenericSubData = {
944
959
  encode(collAsset, collAssetId, debtAsset, debtAssetId, closeType, marketAddr, user) {
945
960
  const encodedColl = web3_eth_abi_1.default.encodeParameter('address', collAsset);
@@ -996,6 +1011,33 @@ exports.sparkLeverageManagementOnPriceSubData = {
996
1011
  };
997
1012
  },
998
1013
  };
1014
+ exports.sparkLeverageManagementOnPriceGenericSubData = {
1015
+ encode(collAsset, collAssetId, debtAsset, debtAssetId, marketAddr, targetRatio, user) {
1016
+ const encodedColl = web3_eth_abi_1.default.encodeParameter('address', collAsset);
1017
+ const encodedCollId = web3_eth_abi_1.default.encodeParameter('uint16', collAssetId);
1018
+ const encodedDebt = web3_eth_abi_1.default.encodeParameter('address', debtAsset);
1019
+ const encodedDebtId = web3_eth_abi_1.default.encodeParameter('uint16', debtAssetId);
1020
+ const encodedMarket = web3_eth_abi_1.default.encodeParameter('address', marketAddr);
1021
+ const encodedTargetRatio = web3_eth_abi_1.default.encodeParameter('uint256', (0, utils_1.ratioPercentageToWei)(targetRatio));
1022
+ const encodedUser = web3_eth_abi_1.default.encodeParameter('address', user);
1023
+ return [
1024
+ encodedColl, encodedCollId, encodedDebt, encodedDebtId,
1025
+ encodedMarket, encodedTargetRatio, encodedUser,
1026
+ ];
1027
+ },
1028
+ decode(subData) {
1029
+ const collAsset = web3_eth_abi_1.default.decodeParameter('address', subData[0]);
1030
+ const collAssetId = Number(web3_eth_abi_1.default.decodeParameter('uint16', subData[1]));
1031
+ const debtAsset = web3_eth_abi_1.default.decodeParameter('address', subData[2]);
1032
+ const debtAssetId = Number(web3_eth_abi_1.default.decodeParameter('uint16', subData[3]));
1033
+ const marketAddr = web3_eth_abi_1.default.decodeParameter('address', subData[4]);
1034
+ const targetRatio = (0, utils_1.weiToRatioPercentage)(String(web3_eth_abi_1.default.decodeParameter('uint256', subData[5])));
1035
+ const user = web3_eth_abi_1.default.decodeParameter('address', subData[6]);
1036
+ return {
1037
+ collAsset, collAssetId, debtAsset, debtAssetId, marketAddr, targetRatio, user,
1038
+ };
1039
+ },
1040
+ };
999
1041
  exports.sparkCollateralSwitchSubData = {
1000
1042
  encode(fromAsset, fromAssetId, toAsset, toAssetId, marketAddr, amountToSwitch, useOnBehalf = false) {
1001
1043
  const encodedFromAsset = web3_eth_abi_1.default.encodeParameter('address', fromAsset);
@@ -1027,6 +1069,38 @@ exports.sparkCollateralSwitchSubData = {
1027
1069
  };
1028
1070
  },
1029
1071
  };
1072
+ exports.sparkGenericFLCollateralSwitchSubData = {
1073
+ encode(fromAsset, fromAssetId, toAsset, toAssetId, marketAddr, amountToSwitch, user) {
1074
+ const encodedFromAsset = web3_eth_abi_1.default.encodeParameter('address', fromAsset);
1075
+ const encodedFromAssetId = web3_eth_abi_1.default.encodeParameter('uint16', fromAssetId);
1076
+ const encodedToAsset = web3_eth_abi_1.default.encodeParameter('address', toAsset);
1077
+ const encodedToAssetId = web3_eth_abi_1.default.encodeParameter('uint16', toAssetId);
1078
+ const encodedMarketAddr = web3_eth_abi_1.default.encodeParameter('address', marketAddr);
1079
+ const encodedAmountToSwitch = web3_eth_abi_1.default.encodeParameter('uint256', amountToSwitch);
1080
+ const encodedUser = web3_eth_abi_1.default.encodeParameter('address', user);
1081
+ return [
1082
+ encodedFromAsset,
1083
+ encodedFromAssetId,
1084
+ encodedToAsset,
1085
+ encodedToAssetId,
1086
+ encodedMarketAddr,
1087
+ encodedAmountToSwitch,
1088
+ encodedUser,
1089
+ ];
1090
+ },
1091
+ decode(subData) {
1092
+ const fromAsset = web3_eth_abi_1.default.decodeParameter('address', subData[0]);
1093
+ const fromAssetId = Number(web3_eth_abi_1.default.decodeParameter('uint16', subData[1]));
1094
+ const toAsset = web3_eth_abi_1.default.decodeParameter('address', subData[2]);
1095
+ const toAssetId = Number(web3_eth_abi_1.default.decodeParameter('uint16', subData[3]));
1096
+ const marketAddr = web3_eth_abi_1.default.decodeParameter('address', subData[4]);
1097
+ const amountToSwitch = web3_eth_abi_1.default.decodeParameter('uint256', subData[5]);
1098
+ const user = web3_eth_abi_1.default.decodeParameter('address', subData[6]);
1099
+ return {
1100
+ fromAsset, fromAssetId, toAsset, toAssetId, marketAddr, amountToSwitch, user,
1101
+ };
1102
+ },
1103
+ };
1030
1104
  /**
1031
1105
  ______ .______ ____ ____ __ __ _______. _______
1032
1106
  / || _ \ \ \ / / | | | | / || \