@gearbox-protocol/sdk 3.0.0-next.274 → 3.0.0-next.276
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.
|
@@ -264,7 +264,7 @@ class CreditAccountData {
|
|
|
264
264
|
const { quotas, initialQuotas, maxDebt, allowedToSpend, allowedToObtain } = props;
|
|
265
265
|
const quotaDecrease = Object.keys(allowedToSpend).reduce((acc, token) => {
|
|
266
266
|
const ch = this.getSingleQuotaChange(token, 0n, props);
|
|
267
|
-
if (ch)
|
|
267
|
+
if (ch && ch.balance < 0)
|
|
268
268
|
acc[ch.token] = ch;
|
|
269
269
|
return acc;
|
|
270
270
|
}, {});
|
|
@@ -280,7 +280,7 @@ class CreditAccountData {
|
|
|
280
280
|
const maxQuotaIncrease = this.roundUpQuota(math_1.BigIntMath.max(quotaCap - (quotaBought + quotaReduced), 0n));
|
|
281
281
|
const quotaIncrease = Object.keys(allowedToObtain).reduce((acc, token) => {
|
|
282
282
|
const ch = this.getSingleQuotaChange(token, maxQuotaIncrease, props);
|
|
283
|
-
if (ch)
|
|
283
|
+
if (ch && ch.balance > 0)
|
|
284
284
|
acc[ch.token] = ch;
|
|
285
285
|
return acc;
|
|
286
286
|
}, {});
|
|
@@ -341,7 +341,7 @@ class CreditAccountData {
|
|
|
341
341
|
const unsafeQuotaChange = this.roundUpQuota(defaultQuota - initialQuota);
|
|
342
342
|
const quotaChange = unsafeQuotaChange > 0
|
|
343
343
|
? math_1.BigIntMath.min(maxQuotaIncrease, unsafeQuotaChange)
|
|
344
|
-
:
|
|
344
|
+
: unsafeQuotaChange < 0 &&
|
|
345
345
|
math_1.BigIntMath.abs(unsafeQuotaChange) >= initialQuota
|
|
346
346
|
? exports.MIN_INT96
|
|
347
347
|
: unsafeQuotaChange;
|
|
@@ -1390,12 +1390,12 @@ describe("CreditAccount calcQuotaUpdate test", () => {
|
|
|
1390
1390
|
[sdk_gov_1.tokenDataByNetwork.Mainnet.STETH]: {
|
|
1391
1391
|
amountInTarget: 101345n,
|
|
1392
1392
|
balance: 0n,
|
|
1393
|
-
token: sdk_gov_1.tokenDataByNetwork.Mainnet.
|
|
1393
|
+
token: sdk_gov_1.tokenDataByNetwork.Mainnet.STETH,
|
|
1394
1394
|
},
|
|
1395
1395
|
[sdk_gov_1.tokenDataByNetwork.Mainnet.WETH]: {
|
|
1396
1396
|
amountInTarget: 0n * sdk_gov_1.PERCENTAGE_FACTOR,
|
|
1397
1397
|
balance: 0n,
|
|
1398
|
-
token: sdk_gov_1.tokenDataByNetwork.Mainnet.
|
|
1398
|
+
token: sdk_gov_1.tokenDataByNetwork.Mainnet.WETH,
|
|
1399
1399
|
},
|
|
1400
1400
|
},
|
|
1401
1401
|
allowedToObtain: {
|
|
@@ -1449,12 +1449,12 @@ describe("CreditAccount calcQuotaUpdate test", () => {
|
|
|
1449
1449
|
[sdk_gov_1.tokenDataByNetwork.Mainnet.STETH]: {
|
|
1450
1450
|
amountInTarget: 101345n,
|
|
1451
1451
|
balance: 0n,
|
|
1452
|
-
token: sdk_gov_1.tokenDataByNetwork.Mainnet.
|
|
1452
|
+
token: sdk_gov_1.tokenDataByNetwork.Mainnet.STETH,
|
|
1453
1453
|
},
|
|
1454
1454
|
[sdk_gov_1.tokenDataByNetwork.Mainnet.WETH]: {
|
|
1455
1455
|
amountInTarget: 0n * sdk_gov_1.PERCENTAGE_FACTOR,
|
|
1456
1456
|
balance: 0n,
|
|
1457
|
-
token: sdk_gov_1.tokenDataByNetwork.Mainnet.
|
|
1457
|
+
token: sdk_gov_1.tokenDataByNetwork.Mainnet.WETH,
|
|
1458
1458
|
},
|
|
1459
1459
|
},
|
|
1460
1460
|
allowedToObtain: {
|
|
@@ -1490,6 +1490,80 @@ describe("CreditAccount calcQuotaUpdate test", () => {
|
|
|
1490
1490
|
},
|
|
1491
1491
|
});
|
|
1492
1492
|
});
|
|
1493
|
+
it("should buy quota correctly when all assets listed in both buy and spend", () => {
|
|
1494
|
+
const result = creditAccount_1.CreditAccountData.calcQuotaUpdate({
|
|
1495
|
+
maxDebt: HUGE_MAX_DEBT,
|
|
1496
|
+
quotaReserve: QUOTA_RESERVE,
|
|
1497
|
+
quotas: cmQuotas,
|
|
1498
|
+
initialQuotas: {
|
|
1499
|
+
...caQuota,
|
|
1500
|
+
[sdk_gov_1.tokenDataByNetwork.Mainnet.DAI]: {
|
|
1501
|
+
quota: 0n * sdk_gov_1.PERCENTAGE_FACTOR,
|
|
1502
|
+
},
|
|
1503
|
+
[sdk_gov_1.tokenDataByNetwork.Mainnet.STETH]: {
|
|
1504
|
+
quota: 15n * sdk_gov_1.PERCENTAGE_FACTOR,
|
|
1505
|
+
},
|
|
1506
|
+
},
|
|
1507
|
+
assetsAfterUpdate: {
|
|
1508
|
+
[sdk_gov_1.tokenDataByNetwork.Mainnet.STETH]: {
|
|
1509
|
+
amountInTarget: 0n * sdk_gov_1.PERCENTAGE_FACTOR,
|
|
1510
|
+
balance: 0n,
|
|
1511
|
+
token: sdk_gov_1.tokenDataByNetwork.Mainnet.STETH,
|
|
1512
|
+
},
|
|
1513
|
+
[sdk_gov_1.tokenDataByNetwork.Mainnet.DAI]: {
|
|
1514
|
+
amountInTarget: 10n * sdk_gov_1.PERCENTAGE_FACTOR,
|
|
1515
|
+
balance: 0n,
|
|
1516
|
+
token: sdk_gov_1.tokenDataByNetwork.Mainnet.DAI,
|
|
1517
|
+
},
|
|
1518
|
+
[sdk_gov_1.tokenDataByNetwork.Mainnet.WETH]: {
|
|
1519
|
+
amountInTarget: 5n * sdk_gov_1.PERCENTAGE_FACTOR,
|
|
1520
|
+
balance: 0n,
|
|
1521
|
+
token: sdk_gov_1.tokenDataByNetwork.Mainnet.WETH,
|
|
1522
|
+
},
|
|
1523
|
+
},
|
|
1524
|
+
allowedToObtain: {
|
|
1525
|
+
[sdk_gov_1.tokenDataByNetwork.Mainnet.STETH]: {},
|
|
1526
|
+
[sdk_gov_1.tokenDataByNetwork.Mainnet.DAI]: {},
|
|
1527
|
+
[sdk_gov_1.tokenDataByNetwork.Mainnet.WETH]: {},
|
|
1528
|
+
},
|
|
1529
|
+
allowedToSpend: {
|
|
1530
|
+
[sdk_gov_1.tokenDataByNetwork.Mainnet.STETH]: {},
|
|
1531
|
+
[sdk_gov_1.tokenDataByNetwork.Mainnet.DAI]: {},
|
|
1532
|
+
[sdk_gov_1.tokenDataByNetwork.Mainnet.WETH]: {},
|
|
1533
|
+
},
|
|
1534
|
+
liquidationThresholds: DEFAULT_LT,
|
|
1535
|
+
});
|
|
1536
|
+
(0, chai_1.expect)(result.quotaIncrease).to.be.deep.eq([
|
|
1537
|
+
{
|
|
1538
|
+
balance: 10n * sdk_gov_1.PERCENTAGE_FACTOR,
|
|
1539
|
+
token: sdk_gov_1.tokenDataByNetwork.Mainnet.DAI,
|
|
1540
|
+
},
|
|
1541
|
+
]);
|
|
1542
|
+
(0, chai_1.expect)(result.quotaDecrease).to.be.deep.eq([
|
|
1543
|
+
{
|
|
1544
|
+
balance: creditAccount_1.MIN_INT96,
|
|
1545
|
+
token: sdk_gov_1.tokenDataByNetwork.Mainnet.STETH,
|
|
1546
|
+
},
|
|
1547
|
+
{
|
|
1548
|
+
balance: -5n * sdk_gov_1.PERCENTAGE_FACTOR,
|
|
1549
|
+
token: sdk_gov_1.tokenDataByNetwork.Mainnet.WETH,
|
|
1550
|
+
},
|
|
1551
|
+
]);
|
|
1552
|
+
(0, chai_1.expect)(result.desiredQuota).to.be.deep.eq({
|
|
1553
|
+
[sdk_gov_1.tokenDataByNetwork.Mainnet.DAI]: {
|
|
1554
|
+
balance: 10n * sdk_gov_1.PERCENTAGE_FACTOR,
|
|
1555
|
+
token: sdk_gov_1.tokenDataByNetwork.Mainnet.DAI,
|
|
1556
|
+
},
|
|
1557
|
+
[sdk_gov_1.tokenDataByNetwork.Mainnet.WETH]: {
|
|
1558
|
+
balance: 5n * sdk_gov_1.PERCENTAGE_FACTOR,
|
|
1559
|
+
token: sdk_gov_1.tokenDataByNetwork.Mainnet.WETH,
|
|
1560
|
+
},
|
|
1561
|
+
[sdk_gov_1.tokenDataByNetwork.Mainnet.STETH]: {
|
|
1562
|
+
balance: 0n * sdk_gov_1.PERCENTAGE_FACTOR,
|
|
1563
|
+
token: sdk_gov_1.tokenDataByNetwork.Mainnet.STETH,
|
|
1564
|
+
},
|
|
1565
|
+
});
|
|
1566
|
+
});
|
|
1493
1567
|
});
|
|
1494
1568
|
describe("CreditAccount calcAvgQuotaBorrowRate test", () => {
|
|
1495
1569
|
it("should calculate quota rate (same amounts, different rates)", () => {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gearbox-protocol/sdk",
|
|
3
|
-
"version": "3.0.0-next.
|
|
3
|
+
"version": "3.0.0-next.276",
|
|
4
4
|
"description": "Gearbox SDK",
|
|
5
5
|
"main": "./lib/index.js",
|
|
6
6
|
"types": "./lib/index.d.ts",
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"test": "npx mocha -r ts-node/register -r dotenv/config 'src/**/*.spec.ts'"
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@gearbox-protocol/sdk-gov": "v2.34.0-next.
|
|
31
|
+
"@gearbox-protocol/sdk-gov": "v2.34.0-next.21",
|
|
32
32
|
"@wagmi/cli": "^2.1.13",
|
|
33
33
|
"axios": "^1.2.6",
|
|
34
34
|
"decimal.js-light": "^2.5.1",
|