@indigo-labs/indigo-sdk 0.4.4 → 0.5.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.
- package/dist/index.d.mts +102 -40
- package/dist/index.d.ts +102 -40
- package/dist/index.js +900 -801
- package/dist/index.mjs +339 -256
- package/package.json +2 -2
- package/src/contracts/cdp/helpers.ts +7 -6
- package/src/contracts/cdp/transactions.ts +8 -29
- package/src/contracts/gov/transactions.ts +12 -16
- package/src/contracts/iasset/helpers.ts +2 -7
- package/src/contracts/initialize/actions.ts +0 -2
- package/src/contracts/initialize/helpers.ts +0 -4
- package/src/contracts/interest-collection/transactions.ts +2 -5
- package/src/contracts/interest-oracle/helpers.ts +4 -0
- package/src/contracts/interest-oracle/transactions.ts +1 -4
- package/src/contracts/price-oracle/helpers.ts +5 -11
- package/src/contracts/price-oracle/transactions.ts +2 -7
- package/src/contracts/rob/transactions.ts +0 -2
- package/src/contracts/rob-leverage/transactions.ts +1 -4
- package/src/contracts/stability-pool/transactions.ts +2 -8
- package/src/contracts/stableswap/helpers.ts +369 -1
- package/src/contracts/stableswap/transactions.ts +43 -191
- package/src/contracts/staking/transactions.ts +2 -7
- package/tests/cdp/actions.ts +0 -11
- package/tests/cdp/cdp-helpers.ts +2 -2
- package/tests/cdp/cdp-queries.ts +1 -3
- package/tests/cdp/cdp.test.ts +409 -620
- package/tests/cdp/transactions-mutated.ts +30 -25
- package/tests/endpoints/initialize.ts +0 -2
- package/tests/gov/actions.ts +7 -32
- package/tests/gov/gov.test.ts +169 -401
- package/tests/indigo-test-helpers.ts +0 -1
- package/tests/initialize.test.ts +15 -20
- package/tests/interest-collection/interest-collection.test.ts +0 -4
- package/tests/interest-oracle.test.ts +1 -8
- package/tests/price-oracle/actions.ts +6 -8
- package/tests/price-oracle/price-oracle.test.ts +1 -13
- package/tests/price-oracle/transactions-mutated.ts +1 -4
- package/tests/pyth/pyth-indigo.test.ts +8 -12
- package/tests/pyth/pyth.test.ts +1 -2
- package/tests/rob/actions.ts +0 -2
- package/tests/rob/rob-leverage.test.ts +164 -220
- package/tests/rob/rob.test.ts +158 -263
- package/tests/rob/transactions-mutated.ts +7 -18
- package/tests/stability-pool/actions.ts +4 -8
- package/tests/stability-pool.test.ts +164 -255
- package/tests/stableswap/stableswap-actions.ts +0 -1
- package/tests/stableswap/stableswap.test.ts +226 -4
- package/tests/staking.test.ts +2 -13
- package/tests/treasury/treasury.test.ts +6 -30
|
@@ -26,7 +26,6 @@ import {
|
|
|
26
26
|
fromText,
|
|
27
27
|
generateEmulatorAccount,
|
|
28
28
|
Lucid,
|
|
29
|
-
slotToUnixTime,
|
|
30
29
|
toHex,
|
|
31
30
|
UTxO,
|
|
32
31
|
} from '@lucid-evolution/lucid';
|
|
@@ -1314,26 +1313,22 @@ describe('LRP leverage', () => {
|
|
|
1314
1313
|
test<MyContext>('Open 2x leveraged CDP; 1 LRP; price ~1.1; f_r=.01; f_m=.005', async (context: MyContext) => {
|
|
1315
1314
|
context.lucid.selectWallet.fromSeed(context.users.admin.seedPhrase);
|
|
1316
1315
|
|
|
1317
|
-
const [sysParams, [iusdAssetInfo]] = await init(
|
|
1318
|
-
|
|
1319
|
-
|
|
1320
|
-
|
|
1321
|
-
|
|
1322
|
-
|
|
1323
|
-
|
|
1324
|
-
|
|
1325
|
-
|
|
1326
|
-
|
|
1327
|
-
|
|
1328
|
-
|
|
1329
|
-
|
|
1330
|
-
|
|
1331
|
-
|
|
1332
|
-
|
|
1333
|
-
},
|
|
1334
|
-
],
|
|
1335
|
-
context.emulator.slot,
|
|
1336
|
-
);
|
|
1316
|
+
const [sysParams, [iusdAssetInfo]] = await init(context.lucid, [
|
|
1317
|
+
{
|
|
1318
|
+
...iusdInitialAssetCfg(),
|
|
1319
|
+
collateralAssets: [
|
|
1320
|
+
{
|
|
1321
|
+
...mkBaseCollateralAsset(adaAssetClass, 0n, {
|
|
1322
|
+
numerator: 1_104_093n,
|
|
1323
|
+
denominator: 1_000_000n,
|
|
1324
|
+
}),
|
|
1325
|
+
maintenanceRatio: { numerator: 15n, denominator: 10n },
|
|
1326
|
+
},
|
|
1327
|
+
],
|
|
1328
|
+
debtMintingFeeRatio: { numerator: 1n, denominator: 200n },
|
|
1329
|
+
redemptionReimbursementRatio: { numerator: 1n, denominator: 100n },
|
|
1330
|
+
},
|
|
1331
|
+
]);
|
|
1337
1332
|
|
|
1338
1333
|
await openBuyRobs(
|
|
1339
1334
|
context,
|
|
@@ -1382,7 +1377,6 @@ describe('LRP leverage', () => {
|
|
|
1382
1377
|
sysParams,
|
|
1383
1378
|
context.lucid,
|
|
1384
1379
|
allRobs.map((lrps) => [lrps.utxo, lrps.datum]),
|
|
1385
|
-
context.emulator.slot,
|
|
1386
1380
|
),
|
|
1387
1381
|
context.lucid,
|
|
1388
1382
|
context.emulator,
|
|
@@ -1410,14 +1404,13 @@ describe('LRP leverage', () => {
|
|
|
1410
1404
|
// Assert collateral ratio
|
|
1411
1405
|
assertValueInRange(
|
|
1412
1406
|
cdpCollateralRatioPercentage(
|
|
1413
|
-
context.
|
|
1407
|
+
BigInt(context.lucid.slotToUnixTime(context.lucid.currentSlot())),
|
|
1414
1408
|
parsePriceOracleDatum(getInlineDatumOrThrow(priceOracleUtxo)).price,
|
|
1415
1409
|
res.utxo.assets,
|
|
1416
1410
|
res.datum,
|
|
1417
1411
|
parseInterestOracleDatum(
|
|
1418
1412
|
getInlineDatumOrThrow(orefs.interestOracleUtxo),
|
|
1419
1413
|
),
|
|
1420
|
-
context.lucid.config().network!,
|
|
1421
1414
|
),
|
|
1422
1415
|
{
|
|
1423
1416
|
min: 197,
|
|
@@ -1432,7 +1425,7 @@ describe('LRP leverage', () => {
|
|
|
1432
1425
|
const [sysParams, [iusdAssetInfo]] = await init(
|
|
1433
1426
|
context.lucid,
|
|
1434
1427
|
[],
|
|
1435
|
-
|
|
1428
|
+
|
|
1436
1429
|
(pythStateNft: AssetClass) => [
|
|
1437
1430
|
iusdInitialAssetCfgWithPyth(pythStateNft, (pythStatePolicyId) => [
|
|
1438
1431
|
mkBaseCollateralAsset(
|
|
@@ -1478,7 +1471,7 @@ describe('LRP leverage', () => {
|
|
|
1478
1471
|
);
|
|
1479
1472
|
|
|
1480
1473
|
const currentTime = BigInt(
|
|
1481
|
-
|
|
1474
|
+
context.lucid.slotToUnixTime(context.lucid.currentSlot()),
|
|
1482
1475
|
);
|
|
1483
1476
|
|
|
1484
1477
|
const iUsdFeed: ParsedFeedPayload = {
|
|
@@ -1523,7 +1516,7 @@ describe('LRP leverage', () => {
|
|
|
1523
1516
|
sysParams,
|
|
1524
1517
|
context.lucid,
|
|
1525
1518
|
allRobs.map((lrps) => [lrps.utxo, lrps.datum]),
|
|
1526
|
-
|
|
1519
|
+
|
|
1527
1520
|
message,
|
|
1528
1521
|
pythStateOref,
|
|
1529
1522
|
),
|
|
@@ -1553,14 +1546,13 @@ describe('LRP leverage', () => {
|
|
|
1553
1546
|
// Assert collateral ratio
|
|
1554
1547
|
assertValueInRange(
|
|
1555
1548
|
cdpCollateralRatioPercentage(
|
|
1556
|
-
context.
|
|
1549
|
+
BigInt(context.lucid.slotToUnixTime(context.lucid.currentSlot())),
|
|
1557
1550
|
price,
|
|
1558
1551
|
res.utxo.assets,
|
|
1559
1552
|
res.datum,
|
|
1560
1553
|
parseInterestOracleDatum(
|
|
1561
1554
|
getInlineDatumOrThrow(orefs.interestOracleUtxo),
|
|
1562
1555
|
),
|
|
1563
|
-
context.lucid.config().network!,
|
|
1564
1556
|
),
|
|
1565
1557
|
{
|
|
1566
1558
|
min: 197,
|
|
@@ -1572,26 +1564,22 @@ describe('LRP leverage', () => {
|
|
|
1572
1564
|
test<MyContext>('Open 2x leveraged CDP; 4 LRPs; price ~0.9; f_r=.01; f_m=.005', async (context: MyContext) => {
|
|
1573
1565
|
context.lucid.selectWallet.fromSeed(context.users.admin.seedPhrase);
|
|
1574
1566
|
|
|
1575
|
-
const [sysParams, [iusdAssetInfo]] = await init(
|
|
1576
|
-
|
|
1577
|
-
|
|
1578
|
-
|
|
1579
|
-
|
|
1580
|
-
|
|
1581
|
-
|
|
1582
|
-
|
|
1583
|
-
|
|
1584
|
-
|
|
1585
|
-
|
|
1586
|
-
|
|
1587
|
-
|
|
1588
|
-
|
|
1589
|
-
|
|
1590
|
-
|
|
1591
|
-
},
|
|
1592
|
-
],
|
|
1593
|
-
context.emulator.slot,
|
|
1594
|
-
);
|
|
1567
|
+
const [sysParams, [iusdAssetInfo]] = await init(context.lucid, [
|
|
1568
|
+
{
|
|
1569
|
+
...iusdInitialAssetCfg(),
|
|
1570
|
+
collateralAssets: [
|
|
1571
|
+
{
|
|
1572
|
+
...mkBaseCollateralAsset(adaAssetClass, 0n, {
|
|
1573
|
+
numerator: 904_093n,
|
|
1574
|
+
denominator: 1_000_000n,
|
|
1575
|
+
}),
|
|
1576
|
+
maintenanceRatio: { numerator: 15n, denominator: 10n },
|
|
1577
|
+
},
|
|
1578
|
+
],
|
|
1579
|
+
debtMintingFeeRatio: { numerator: 1n, denominator: 200n },
|
|
1580
|
+
redemptionReimbursementRatio: { numerator: 1n, denominator: 100n },
|
|
1581
|
+
},
|
|
1582
|
+
]);
|
|
1595
1583
|
|
|
1596
1584
|
await openBuyRobs(
|
|
1597
1585
|
context,
|
|
@@ -1639,7 +1627,6 @@ describe('LRP leverage', () => {
|
|
|
1639
1627
|
sysParams,
|
|
1640
1628
|
context.lucid,
|
|
1641
1629
|
allRobs.map((lrps) => [lrps.utxo, lrps.datum]),
|
|
1642
|
-
context.emulator.slot,
|
|
1643
1630
|
),
|
|
1644
1631
|
);
|
|
1645
1632
|
|
|
@@ -1665,14 +1652,13 @@ describe('LRP leverage', () => {
|
|
|
1665
1652
|
// Assert collateral ratio
|
|
1666
1653
|
assertValueInRange(
|
|
1667
1654
|
cdpCollateralRatioPercentage(
|
|
1668
|
-
context.
|
|
1655
|
+
BigInt(context.lucid.slotToUnixTime(context.lucid.currentSlot())),
|
|
1669
1656
|
parsePriceOracleDatum(getInlineDatumOrThrow(priceOracleUtxo)).price,
|
|
1670
1657
|
res.utxo.assets,
|
|
1671
1658
|
res.datum,
|
|
1672
1659
|
parseInterestOracleDatum(
|
|
1673
1660
|
getInlineDatumOrThrow(orefs.interestOracleUtxo),
|
|
1674
1661
|
),
|
|
1675
|
-
context.lucid.config().network!,
|
|
1676
1662
|
),
|
|
1677
1663
|
{
|
|
1678
1664
|
min: 197,
|
|
@@ -1695,26 +1681,22 @@ describe('LRP leverage', () => {
|
|
|
1695
1681
|
test<MyContext>('Open 2.3x leveraged CDP; 4 LRPs; price ~1.03; f_r=.01; f_m=.013', async (context: MyContext) => {
|
|
1696
1682
|
context.lucid.selectWallet.fromSeed(context.users.admin.seedPhrase);
|
|
1697
1683
|
|
|
1698
|
-
const [sysParams, [iusdAssetInfo]] = await init(
|
|
1699
|
-
|
|
1700
|
-
|
|
1701
|
-
|
|
1702
|
-
|
|
1703
|
-
|
|
1704
|
-
|
|
1705
|
-
|
|
1706
|
-
|
|
1707
|
-
|
|
1708
|
-
|
|
1709
|
-
|
|
1710
|
-
|
|
1711
|
-
|
|
1712
|
-
|
|
1713
|
-
|
|
1714
|
-
},
|
|
1715
|
-
],
|
|
1716
|
-
context.emulator.slot,
|
|
1717
|
-
);
|
|
1684
|
+
const [sysParams, [iusdAssetInfo]] = await init(context.lucid, [
|
|
1685
|
+
{
|
|
1686
|
+
...iusdInitialAssetCfg(),
|
|
1687
|
+
collateralAssets: [
|
|
1688
|
+
{
|
|
1689
|
+
...mkBaseCollateralAsset(adaAssetClass, 0n, {
|
|
1690
|
+
numerator: 1_037_093n,
|
|
1691
|
+
denominator: 1_000_000n,
|
|
1692
|
+
}),
|
|
1693
|
+
maintenanceRatio: { numerator: 15n, denominator: 10n },
|
|
1694
|
+
},
|
|
1695
|
+
],
|
|
1696
|
+
debtMintingFeeRatio: { numerator: 13n, denominator: 1_000n },
|
|
1697
|
+
redemptionReimbursementRatio: { numerator: 1n, denominator: 100n },
|
|
1698
|
+
},
|
|
1699
|
+
]);
|
|
1718
1700
|
|
|
1719
1701
|
await openBuyRobs(
|
|
1720
1702
|
context,
|
|
@@ -1762,7 +1744,6 @@ describe('LRP leverage', () => {
|
|
|
1762
1744
|
sysParams,
|
|
1763
1745
|
context.lucid,
|
|
1764
1746
|
allLrps.map((lrps) => [lrps.utxo, lrps.datum]),
|
|
1765
|
-
context.emulator.slot,
|
|
1766
1747
|
),
|
|
1767
1748
|
);
|
|
1768
1749
|
|
|
@@ -1788,14 +1769,13 @@ describe('LRP leverage', () => {
|
|
|
1788
1769
|
// Assert collateral ratio
|
|
1789
1770
|
assertValueInRange(
|
|
1790
1771
|
cdpCollateralRatioPercentage(
|
|
1791
|
-
context.
|
|
1772
|
+
BigInt(context.lucid.slotToUnixTime(context.lucid.currentSlot())),
|
|
1792
1773
|
parsePriceOracleDatum(getInlineDatumOrThrow(priceOracleUtxo)).price,
|
|
1793
1774
|
res.utxo.assets,
|
|
1794
1775
|
res.datum,
|
|
1795
1776
|
parseInterestOracleDatum(
|
|
1796
1777
|
getInlineDatumOrThrow(orefs.interestOracleUtxo),
|
|
1797
1778
|
),
|
|
1798
|
-
context.lucid.config().network!,
|
|
1799
1779
|
),
|
|
1800
1780
|
{
|
|
1801
1781
|
min: 172,
|
|
@@ -1818,26 +1798,22 @@ describe('LRP leverage', () => {
|
|
|
1818
1798
|
test<MyContext>('Open 1.2x leveraged CDP 3 LRPs price ~1.46; f_r=.02; f_m=.007', async (context: MyContext) => {
|
|
1819
1799
|
context.lucid.selectWallet.fromSeed(context.users.admin.seedPhrase);
|
|
1820
1800
|
|
|
1821
|
-
const [sysParams, [iusdAssetInfo]] = await init(
|
|
1822
|
-
|
|
1823
|
-
|
|
1824
|
-
|
|
1825
|
-
|
|
1826
|
-
|
|
1827
|
-
|
|
1828
|
-
|
|
1829
|
-
|
|
1830
|
-
|
|
1831
|
-
|
|
1832
|
-
|
|
1833
|
-
|
|
1834
|
-
|
|
1835
|
-
|
|
1836
|
-
|
|
1837
|
-
},
|
|
1838
|
-
],
|
|
1839
|
-
context.emulator.slot,
|
|
1840
|
-
);
|
|
1801
|
+
const [sysParams, [iusdAssetInfo]] = await init(context.lucid, [
|
|
1802
|
+
{
|
|
1803
|
+
...iusdInitialAssetCfg(),
|
|
1804
|
+
collateralAssets: [
|
|
1805
|
+
{
|
|
1806
|
+
...mkBaseCollateralAsset(adaAssetClass, 0n, {
|
|
1807
|
+
numerator: 1_461_093n,
|
|
1808
|
+
denominator: 1_000_000n,
|
|
1809
|
+
}),
|
|
1810
|
+
maintenanceRatio: { numerator: 15n, denominator: 10n },
|
|
1811
|
+
},
|
|
1812
|
+
],
|
|
1813
|
+
debtMintingFeeRatio: { numerator: 7n, denominator: 1_000n },
|
|
1814
|
+
redemptionReimbursementRatio: { numerator: 2n, denominator: 100n },
|
|
1815
|
+
},
|
|
1816
|
+
]);
|
|
1841
1817
|
|
|
1842
1818
|
await openBuyRobs(
|
|
1843
1819
|
context,
|
|
@@ -1885,7 +1861,6 @@ describe('LRP leverage', () => {
|
|
|
1885
1861
|
sysParams,
|
|
1886
1862
|
context.lucid,
|
|
1887
1863
|
allLrps.map((lrps) => [lrps.utxo, lrps.datum]),
|
|
1888
|
-
context.emulator.slot,
|
|
1889
1864
|
),
|
|
1890
1865
|
);
|
|
1891
1866
|
|
|
@@ -1911,14 +1886,13 @@ describe('LRP leverage', () => {
|
|
|
1911
1886
|
// Assert collateral ratio
|
|
1912
1887
|
assertValueInRange(
|
|
1913
1888
|
cdpCollateralRatioPercentage(
|
|
1914
|
-
context.
|
|
1889
|
+
BigInt(context.lucid.slotToUnixTime(context.lucid.currentSlot())),
|
|
1915
1890
|
parsePriceOracleDatum(getInlineDatumOrThrow(priceOracleUtxo)).price,
|
|
1916
1891
|
res.utxo.assets,
|
|
1917
1892
|
res.datum,
|
|
1918
1893
|
parseInterestOracleDatum(
|
|
1919
1894
|
getInlineDatumOrThrow(orefs.interestOracleUtxo),
|
|
1920
1895
|
),
|
|
1921
|
-
context.lucid.config().network!,
|
|
1922
1896
|
),
|
|
1923
1897
|
{
|
|
1924
1898
|
min: 583,
|
|
@@ -1941,26 +1915,22 @@ describe('LRP leverage', () => {
|
|
|
1941
1915
|
test<MyContext>('Open 2.1x leveraged CDP 3 LRPs price ~0.0589; f_r=.02; f_m=.007', async (context: MyContext) => {
|
|
1942
1916
|
context.lucid.selectWallet.fromSeed(context.users.admin.seedPhrase);
|
|
1943
1917
|
|
|
1944
|
-
const [sysParams, [iusdAssetInfo]] = await init(
|
|
1945
|
-
|
|
1946
|
-
|
|
1947
|
-
|
|
1948
|
-
|
|
1949
|
-
|
|
1950
|
-
|
|
1951
|
-
|
|
1952
|
-
|
|
1953
|
-
|
|
1954
|
-
|
|
1955
|
-
|
|
1956
|
-
|
|
1957
|
-
|
|
1958
|
-
|
|
1959
|
-
|
|
1960
|
-
},
|
|
1961
|
-
],
|
|
1962
|
-
context.emulator.slot,
|
|
1963
|
-
);
|
|
1918
|
+
const [sysParams, [iusdAssetInfo]] = await init(context.lucid, [
|
|
1919
|
+
{
|
|
1920
|
+
...iusdInitialAssetCfg(),
|
|
1921
|
+
collateralAssets: [
|
|
1922
|
+
{
|
|
1923
|
+
...mkBaseCollateralAsset(adaAssetClass, 0n, {
|
|
1924
|
+
numerator: 58_900n,
|
|
1925
|
+
denominator: 1_000_000n,
|
|
1926
|
+
}),
|
|
1927
|
+
maintenanceRatio: { numerator: 15n, denominator: 10n },
|
|
1928
|
+
},
|
|
1929
|
+
],
|
|
1930
|
+
debtMintingFeeRatio: { numerator: 7n, denominator: 1_000n },
|
|
1931
|
+
redemptionReimbursementRatio: { numerator: 2n, denominator: 100n },
|
|
1932
|
+
},
|
|
1933
|
+
]);
|
|
1964
1934
|
|
|
1965
1935
|
await openBuyRobs(
|
|
1966
1936
|
context,
|
|
@@ -2008,7 +1978,6 @@ describe('LRP leverage', () => {
|
|
|
2008
1978
|
sysParams,
|
|
2009
1979
|
context.lucid,
|
|
2010
1980
|
allLrps.map((lrps) => [lrps.utxo, lrps.datum]),
|
|
2011
|
-
context.emulator.slot,
|
|
2012
1981
|
),
|
|
2013
1982
|
);
|
|
2014
1983
|
|
|
@@ -2034,14 +2003,13 @@ describe('LRP leverage', () => {
|
|
|
2034
2003
|
// Assert collateral ratio
|
|
2035
2004
|
assertValueInRange(
|
|
2036
2005
|
cdpCollateralRatioPercentage(
|
|
2037
|
-
context.
|
|
2006
|
+
BigInt(context.lucid.slotToUnixTime(context.lucid.currentSlot())),
|
|
2038
2007
|
parsePriceOracleDatum(getInlineDatumOrThrow(priceOracleUtxo)).price,
|
|
2039
2008
|
res.utxo.assets,
|
|
2040
2009
|
res.datum,
|
|
2041
2010
|
parseInterestOracleDatum(
|
|
2042
2011
|
getInlineDatumOrThrow(orefs.interestOracleUtxo),
|
|
2043
2012
|
),
|
|
2044
|
-
context.lucid.config().network!,
|
|
2045
2013
|
),
|
|
2046
2014
|
{
|
|
2047
2015
|
min: 185,
|
|
@@ -2064,26 +2032,22 @@ describe('LRP leverage', () => {
|
|
|
2064
2032
|
test<MyContext>('Open 2.5x leveraged CDP 4 LRPs price ~103.973621; f_r=.01; f_m=.03', async (context: MyContext) => {
|
|
2065
2033
|
context.lucid.selectWallet.fromSeed(context.users.admin.seedPhrase);
|
|
2066
2034
|
|
|
2067
|
-
const [sysParams, [iusdAssetInfo]] = await init(
|
|
2068
|
-
|
|
2069
|
-
|
|
2070
|
-
|
|
2071
|
-
|
|
2072
|
-
|
|
2073
|
-
|
|
2074
|
-
|
|
2075
|
-
|
|
2076
|
-
|
|
2077
|
-
|
|
2078
|
-
|
|
2079
|
-
|
|
2080
|
-
|
|
2081
|
-
|
|
2082
|
-
|
|
2083
|
-
},
|
|
2084
|
-
],
|
|
2085
|
-
context.emulator.slot,
|
|
2086
|
-
);
|
|
2035
|
+
const [sysParams, [iusdAssetInfo]] = await init(context.lucid, [
|
|
2036
|
+
{
|
|
2037
|
+
...iusdInitialAssetCfg(),
|
|
2038
|
+
collateralAssets: [
|
|
2039
|
+
{
|
|
2040
|
+
...mkBaseCollateralAsset(adaAssetClass, 0n, {
|
|
2041
|
+
numerator: 103_973_621n,
|
|
2042
|
+
denominator: 1_000_000n,
|
|
2043
|
+
}),
|
|
2044
|
+
maintenanceRatio: { numerator: 15n, denominator: 10n },
|
|
2045
|
+
},
|
|
2046
|
+
],
|
|
2047
|
+
debtMintingFeeRatio: { numerator: 3n, denominator: 100n },
|
|
2048
|
+
redemptionReimbursementRatio: { numerator: 1n, denominator: 100n },
|
|
2049
|
+
},
|
|
2050
|
+
]);
|
|
2087
2051
|
|
|
2088
2052
|
await openBuyRobs(
|
|
2089
2053
|
context,
|
|
@@ -2131,7 +2095,6 @@ describe('LRP leverage', () => {
|
|
|
2131
2095
|
sysParams,
|
|
2132
2096
|
context.lucid,
|
|
2133
2097
|
allLrps.map((lrps) => [lrps.utxo, lrps.datum]),
|
|
2134
|
-
context.emulator.slot,
|
|
2135
2098
|
),
|
|
2136
2099
|
);
|
|
2137
2100
|
|
|
@@ -2157,14 +2120,13 @@ describe('LRP leverage', () => {
|
|
|
2157
2120
|
// Assert collateral ratio
|
|
2158
2121
|
assertValueInRange(
|
|
2159
2122
|
cdpCollateralRatioPercentage(
|
|
2160
|
-
context.
|
|
2123
|
+
BigInt(context.lucid.slotToUnixTime(context.lucid.currentSlot())),
|
|
2161
2124
|
parsePriceOracleDatum(getInlineDatumOrThrow(priceOracleUtxo)).price,
|
|
2162
2125
|
res.utxo.assets,
|
|
2163
2126
|
res.datum,
|
|
2164
2127
|
parseInterestOracleDatum(
|
|
2165
2128
|
getInlineDatumOrThrow(orefs.interestOracleUtxo),
|
|
2166
2129
|
),
|
|
2167
|
-
context.lucid.config().network!,
|
|
2168
2130
|
),
|
|
2169
2131
|
{
|
|
2170
2132
|
min: 160,
|
|
@@ -2187,33 +2149,29 @@ describe('LRP leverage', () => {
|
|
|
2187
2149
|
test<MyContext>('(non ADA collateral) Open 1.75x leveraged CDP 3 LRPs price ~2.397; f_r=.017; f_m=.0391', async (context: MyContext) => {
|
|
2188
2150
|
context.lucid.selectWallet.fromSeed(context.users.admin.seedPhrase);
|
|
2189
2151
|
|
|
2190
|
-
const [sysParams, [iusdAssetInfo]] = await init(
|
|
2191
|
-
|
|
2192
|
-
|
|
2193
|
-
|
|
2194
|
-
|
|
2195
|
-
|
|
2196
|
-
|
|
2197
|
-
|
|
2198
|
-
|
|
2199
|
-
|
|
2200
|
-
|
|
2201
|
-
|
|
2202
|
-
|
|
2203
|
-
|
|
2204
|
-
|
|
2205
|
-
|
|
2206
|
-
|
|
2207
|
-
|
|
2208
|
-
|
|
2209
|
-
|
|
2210
|
-
|
|
2211
|
-
|
|
2212
|
-
|
|
2213
|
-
},
|
|
2214
|
-
],
|
|
2215
|
-
context.emulator.slot,
|
|
2216
|
-
);
|
|
2152
|
+
const [sysParams, [iusdAssetInfo]] = await init(context.lucid, [
|
|
2153
|
+
{
|
|
2154
|
+
...iusdInitialAssetCfg(),
|
|
2155
|
+
collateralAssets: [
|
|
2156
|
+
{
|
|
2157
|
+
...mkBaseCollateralAsset(adaAssetClass, 0n, {
|
|
2158
|
+
numerator: 1_000_000n,
|
|
2159
|
+
denominator: 1_000_000n,
|
|
2160
|
+
}),
|
|
2161
|
+
maintenanceRatio: { numerator: 15n, denominator: 10n },
|
|
2162
|
+
},
|
|
2163
|
+
{
|
|
2164
|
+
...mkBaseCollateralAsset(collateralAssetA, 0n, {
|
|
2165
|
+
numerator: 2_397_000n,
|
|
2166
|
+
denominator: 1_000_000n,
|
|
2167
|
+
}),
|
|
2168
|
+
maintenanceRatio: { numerator: 15n, denominator: 10n },
|
|
2169
|
+
},
|
|
2170
|
+
],
|
|
2171
|
+
debtMintingFeeRatio: { numerator: 391n, denominator: 10_000n },
|
|
2172
|
+
redemptionReimbursementRatio: { numerator: 17n, denominator: 1000n },
|
|
2173
|
+
},
|
|
2174
|
+
]);
|
|
2217
2175
|
|
|
2218
2176
|
await openBuyRobs(
|
|
2219
2177
|
context,
|
|
@@ -2269,7 +2227,6 @@ describe('LRP leverage', () => {
|
|
|
2269
2227
|
sysParams,
|
|
2270
2228
|
context.lucid,
|
|
2271
2229
|
allLrps.map((lrps) => [lrps.utxo, lrps.datum]),
|
|
2272
|
-
context.emulator.slot,
|
|
2273
2230
|
),
|
|
2274
2231
|
);
|
|
2275
2232
|
|
|
@@ -2296,14 +2253,13 @@ describe('LRP leverage', () => {
|
|
|
2296
2253
|
// Assert collateral ratio
|
|
2297
2254
|
assertValueInRange(
|
|
2298
2255
|
cdpCollateralRatioPercentage(
|
|
2299
|
-
context.
|
|
2256
|
+
BigInt(context.lucid.slotToUnixTime(context.lucid.currentSlot())),
|
|
2300
2257
|
parsePriceOracleDatum(getInlineDatumOrThrow(priceOracleUtxo)).price,
|
|
2301
2258
|
res.utxo.assets,
|
|
2302
2259
|
res.datum,
|
|
2303
2260
|
parseInterestOracleDatum(
|
|
2304
2261
|
getInlineDatumOrThrow(orefs.interestOracleUtxo),
|
|
2305
2262
|
),
|
|
2306
|
-
context.lucid.config().network!,
|
|
2307
2263
|
),
|
|
2308
2264
|
{
|
|
2309
2265
|
min: 220,
|
|
@@ -2336,26 +2292,22 @@ describe('LRP leverage', () => {
|
|
|
2336
2292
|
test<MyContext>('Open max leverage leveraged CDP; 4 CDPs; price 1; f_r=.01; f_m=.005', async (context: MyContext) => {
|
|
2337
2293
|
context.lucid.selectWallet.fromSeed(context.users.admin.seedPhrase);
|
|
2338
2294
|
|
|
2339
|
-
const [sysParams, [iusdAssetInfo]] = await init(
|
|
2340
|
-
|
|
2341
|
-
|
|
2342
|
-
|
|
2343
|
-
|
|
2344
|
-
|
|
2345
|
-
|
|
2346
|
-
|
|
2347
|
-
|
|
2348
|
-
|
|
2349
|
-
|
|
2350
|
-
|
|
2351
|
-
|
|
2352
|
-
|
|
2353
|
-
|
|
2354
|
-
|
|
2355
|
-
},
|
|
2356
|
-
],
|
|
2357
|
-
context.emulator.slot,
|
|
2358
|
-
);
|
|
2295
|
+
const [sysParams, [iusdAssetInfo]] = await init(context.lucid, [
|
|
2296
|
+
{
|
|
2297
|
+
...iusdInitialAssetCfg(),
|
|
2298
|
+
collateralAssets: [
|
|
2299
|
+
{
|
|
2300
|
+
...mkBaseCollateralAsset(adaAssetClass, 0n, {
|
|
2301
|
+
numerator: 1n,
|
|
2302
|
+
denominator: 1n,
|
|
2303
|
+
}),
|
|
2304
|
+
maintenanceRatio: { numerator: 15n, denominator: 10n },
|
|
2305
|
+
},
|
|
2306
|
+
],
|
|
2307
|
+
debtMintingFeeRatio: { numerator: 5n, denominator: 1_000n },
|
|
2308
|
+
redemptionReimbursementRatio: { numerator: 1n, denominator: 100n },
|
|
2309
|
+
},
|
|
2310
|
+
]);
|
|
2359
2311
|
|
|
2360
2312
|
await openBuyRobs(
|
|
2361
2313
|
context,
|
|
@@ -2414,7 +2366,6 @@ describe('LRP leverage', () => {
|
|
|
2414
2366
|
sysParams,
|
|
2415
2367
|
context.lucid,
|
|
2416
2368
|
allLrps.map((lrps) => [lrps.utxo, lrps.datum]),
|
|
2417
|
-
context.emulator.slot,
|
|
2418
2369
|
),
|
|
2419
2370
|
context.lucid,
|
|
2420
2371
|
context.emulator,
|
|
@@ -2442,14 +2393,13 @@ describe('LRP leverage', () => {
|
|
|
2442
2393
|
// Assert collateral ratio
|
|
2443
2394
|
assertValueInRange(
|
|
2444
2395
|
cdpCollateralRatioPercentage(
|
|
2445
|
-
context.
|
|
2396
|
+
BigInt(context.lucid.slotToUnixTime(context.lucid.currentSlot())),
|
|
2446
2397
|
parsePriceOracleDatum(getInlineDatumOrThrow(priceOracleUtxo)).price,
|
|
2447
2398
|
res.utxo.assets,
|
|
2448
2399
|
res.datum,
|
|
2449
2400
|
parseInterestOracleDatum(
|
|
2450
2401
|
getInlineDatumOrThrow(orefs.interestOracleUtxo),
|
|
2451
2402
|
),
|
|
2452
|
-
context.lucid.config().network!,
|
|
2453
2403
|
),
|
|
2454
2404
|
{
|
|
2455
2405
|
min:
|
|
@@ -2475,26 +2425,22 @@ describe('LRP leverage', () => {
|
|
|
2475
2425
|
test<MyContext>('Open max leverage leveraged CDP; 2 CDPs; price 2.5; f_r=.014; f_m=.006', async (context: MyContext) => {
|
|
2476
2426
|
context.lucid.selectWallet.fromSeed(context.users.admin.seedPhrase);
|
|
2477
2427
|
|
|
2478
|
-
const [sysParams, [iusdAssetInfo]] = await init(
|
|
2479
|
-
|
|
2480
|
-
|
|
2481
|
-
|
|
2482
|
-
|
|
2483
|
-
|
|
2484
|
-
|
|
2485
|
-
|
|
2486
|
-
|
|
2487
|
-
|
|
2488
|
-
|
|
2489
|
-
|
|
2490
|
-
|
|
2491
|
-
|
|
2492
|
-
|
|
2493
|
-
|
|
2494
|
-
},
|
|
2495
|
-
],
|
|
2496
|
-
context.emulator.slot,
|
|
2497
|
-
);
|
|
2428
|
+
const [sysParams, [iusdAssetInfo]] = await init(context.lucid, [
|
|
2429
|
+
{
|
|
2430
|
+
...iusdInitialAssetCfg(),
|
|
2431
|
+
collateralAssets: [
|
|
2432
|
+
{
|
|
2433
|
+
...mkBaseCollateralAsset(adaAssetClass, 0n, {
|
|
2434
|
+
numerator: 25n,
|
|
2435
|
+
denominator: 10n,
|
|
2436
|
+
}),
|
|
2437
|
+
maintenanceRatio: { numerator: 13n, denominator: 10n },
|
|
2438
|
+
},
|
|
2439
|
+
],
|
|
2440
|
+
debtMintingFeeRatio: { numerator: 6n, denominator: 1_000n },
|
|
2441
|
+
redemptionReimbursementRatio: { numerator: 14n, denominator: 1000n },
|
|
2442
|
+
},
|
|
2443
|
+
]);
|
|
2498
2444
|
|
|
2499
2445
|
await openBuyRobs(
|
|
2500
2446
|
context,
|
|
@@ -2553,7 +2499,6 @@ describe('LRP leverage', () => {
|
|
|
2553
2499
|
sysParams,
|
|
2554
2500
|
context.lucid,
|
|
2555
2501
|
allLrps.map((lrps) => [lrps.utxo, lrps.datum]),
|
|
2556
|
-
context.emulator.slot,
|
|
2557
2502
|
),
|
|
2558
2503
|
);
|
|
2559
2504
|
|
|
@@ -2579,14 +2524,13 @@ describe('LRP leverage', () => {
|
|
|
2579
2524
|
// Assert collateral ratio
|
|
2580
2525
|
assertValueInRange(
|
|
2581
2526
|
cdpCollateralRatioPercentage(
|
|
2582
|
-
context.
|
|
2527
|
+
BigInt(context.lucid.slotToUnixTime(context.lucid.currentSlot())),
|
|
2583
2528
|
parsePriceOracleDatum(getInlineDatumOrThrow(priceOracleUtxo)).price,
|
|
2584
2529
|
res.utxo.assets,
|
|
2585
2530
|
res.datum,
|
|
2586
2531
|
parseInterestOracleDatum(
|
|
2587
2532
|
getInlineDatumOrThrow(orefs.interestOracleUtxo),
|
|
2588
2533
|
),
|
|
2589
|
-
context.lucid.config().network!,
|
|
2590
2534
|
),
|
|
2591
2535
|
{
|
|
2592
2536
|
min:
|