@@ -1575,12 +1575,12 @@ describe("CreditAccount calcQuotaUpdate test", () => {
15751575 [ tokenDataByNetwork . Mainnet . STETH ] : {
15761576 amountInTarget : 10_1345n ,
15771577 balance : 0n ,
1578- token : tokenDataByNetwork . Mainnet . DAI ,
1578+ token : tokenDataByNetwork . Mainnet . STETH ,
15791579 } ,
15801580 [ tokenDataByNetwork . Mainnet . WETH ] : {
15811581 amountInTarget : 0n * PERCENTAGE_FACTOR ,
15821582 balance : 0n ,
1583- token : tokenDataByNetwork . Mainnet . DAI ,
1583+ token : tokenDataByNetwork . Mainnet . WETH ,
15841584 } ,
15851585 } ,
15861586
@@ -1637,12 +1637,12 @@ describe("CreditAccount calcQuotaUpdate test", () => {
16371637 [ tokenDataByNetwork . Mainnet . STETH ] : {
16381638 amountInTarget : 10_1345n ,
16391639 balance : 0n ,
1640- token : tokenDataByNetwork . Mainnet . DAI ,
1640+ token : tokenDataByNetwork . Mainnet . STETH ,
16411641 } ,
16421642 [ tokenDataByNetwork . Mainnet . WETH ] : {
16431643 amountInTarget : 0n * PERCENTAGE_FACTOR ,
16441644 balance : 0n ,
1645- token : tokenDataByNetwork . Mainnet . DAI ,
1645+ token : tokenDataByNetwork . Mainnet . WETH ,
16461646 } ,
16471647 } ,
16481648
@@ -1681,6 +1681,82 @@ describe("CreditAccount calcQuotaUpdate test", () => {
16811681 } ,
16821682 } ) ;
16831683 } ) ;
1684+ it ( "should buy quota correctly when all assets listed in both buy and spend" , ( ) => {
1685+ const result = CreditAccountData . calcQuotaUpdate ( {
1686+ maxDebt : HUGE_MAX_DEBT ,
1687+ quotaReserve : QUOTA_RESERVE ,
1688+ quotas : cmQuotas ,
1689+ initialQuotas : {
1690+ ...caQuota ,
1691+ [ tokenDataByNetwork . Mainnet . DAI ] : {
1692+ quota : 0n * PERCENTAGE_FACTOR ,
1693+ } ,
1694+ [ tokenDataByNetwork . Mainnet . STETH ] : {
1695+ quota : 15n * PERCENTAGE_FACTOR ,
1696+ } ,
1697+ } ,
1698+ assetsAfterUpdate : {
1699+ [ tokenDataByNetwork . Mainnet . STETH ] : {
1700+ amountInTarget : 0n * PERCENTAGE_FACTOR ,
1701+ balance : 0n ,
1702+ token : tokenDataByNetwork . Mainnet . STETH ,
1703+ } ,
1704+ [ tokenDataByNetwork . Mainnet . DAI ] : {
1705+ amountInTarget : 10n * PERCENTAGE_FACTOR ,
1706+ balance : 0n ,
1707+ token : tokenDataByNetwork . Mainnet . DAI ,
1708+ } ,
1709+ [ tokenDataByNetwork . Mainnet . WETH ] : {
1710+ amountInTarget : 5n * PERCENTAGE_FACTOR ,
1711+ balance : 0n ,
1712+ token : tokenDataByNetwork . Mainnet . WETH ,
1713+ } ,
1714+ } ,
1715+
1716+ allowedToObtain : {
1717+ [ tokenDataByNetwork . Mainnet . STETH ] : { } ,
1718+ [ tokenDataByNetwork . Mainnet . DAI ] : { } ,
1719+ [ tokenDataByNetwork . Mainnet . WETH ] : { } ,
1720+ } ,
1721+ allowedToSpend : {
1722+ [ tokenDataByNetwork . Mainnet . STETH ] : { } ,
1723+ [ tokenDataByNetwork . Mainnet . DAI ] : { } ,
1724+ [ tokenDataByNetwork . Mainnet . WETH ] : { } ,
1725+ } ,
1726+ liquidationThresholds : DEFAULT_LT ,
1727+ } ) ;
1728+
1729+ expect ( result . quotaIncrease ) . to . be . deep . eq ( [
1730+ {
1731+ balance : 10n * PERCENTAGE_FACTOR ,
1732+ token : tokenDataByNetwork . Mainnet . DAI ,
1733+ } ,
1734+ ] ) ;
1735+ expect ( result . quotaDecrease ) . to . be . deep . eq ( [
1736+ {
1737+ balance : MIN_INT96 ,
1738+ token : tokenDataByNetwork . Mainnet . STETH ,
1739+ } ,
1740+ {
1741+ balance : - 5n * PERCENTAGE_FACTOR ,
1742+ token : tokenDataByNetwork . Mainnet . WETH ,
1743+ } ,
1744+ ] ) ;
1745+ expect ( result . desiredQuota ) . to . be . deep . eq ( {
1746+ [ tokenDataByNetwork . Mainnet . DAI ] : {
1747+ balance : 10n * PERCENTAGE_FACTOR ,
1748+ token : tokenDataByNetwork . Mainnet . DAI ,
1749+ } ,
1750+ [ tokenDataByNetwork . Mainnet . WETH ] : {
1751+ balance : 5n * PERCENTAGE_FACTOR ,
1752+ token : tokenDataByNetwork . Mainnet . WETH ,
1753+ } ,
1754+ [ tokenDataByNetwork . Mainnet . STETH ] : {
1755+ balance : 0n * PERCENTAGE_FACTOR ,
1756+ token : tokenDataByNetwork . Mainnet . STETH ,
1757+ } ,
1758+ } ) ;
1759+ } ) ;
16841760} ) ;
16851761
16861762describe ( "CreditAccount calcAvgQuotaBorrowRate test" , ( ) => {
0 commit comments