@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.
Files changed (49) hide show
  1. package/dist/index.d.mts +102 -40
  2. package/dist/index.d.ts +102 -40
  3. package/dist/index.js +900 -801
  4. package/dist/index.mjs +339 -256
  5. package/package.json +2 -2
  6. package/src/contracts/cdp/helpers.ts +7 -6
  7. package/src/contracts/cdp/transactions.ts +8 -29
  8. package/src/contracts/gov/transactions.ts +12 -16
  9. package/src/contracts/iasset/helpers.ts +2 -7
  10. package/src/contracts/initialize/actions.ts +0 -2
  11. package/src/contracts/initialize/helpers.ts +0 -4
  12. package/src/contracts/interest-collection/transactions.ts +2 -5
  13. package/src/contracts/interest-oracle/helpers.ts +4 -0
  14. package/src/contracts/interest-oracle/transactions.ts +1 -4
  15. package/src/contracts/price-oracle/helpers.ts +5 -11
  16. package/src/contracts/price-oracle/transactions.ts +2 -7
  17. package/src/contracts/rob/transactions.ts +0 -2
  18. package/src/contracts/rob-leverage/transactions.ts +1 -4
  19. package/src/contracts/stability-pool/transactions.ts +2 -8
  20. package/src/contracts/stableswap/helpers.ts +369 -1
  21. package/src/contracts/stableswap/transactions.ts +43 -191
  22. package/src/contracts/staking/transactions.ts +2 -7
  23. package/tests/cdp/actions.ts +0 -11
  24. package/tests/cdp/cdp-helpers.ts +2 -2
  25. package/tests/cdp/cdp-queries.ts +1 -3
  26. package/tests/cdp/cdp.test.ts +409 -620
  27. package/tests/cdp/transactions-mutated.ts +30 -25
  28. package/tests/endpoints/initialize.ts +0 -2
  29. package/tests/gov/actions.ts +7 -32
  30. package/tests/gov/gov.test.ts +169 -401
  31. package/tests/indigo-test-helpers.ts +0 -1
  32. package/tests/initialize.test.ts +15 -20
  33. package/tests/interest-collection/interest-collection.test.ts +0 -4
  34. package/tests/interest-oracle.test.ts +1 -8
  35. package/tests/price-oracle/actions.ts +6 -8
  36. package/tests/price-oracle/price-oracle.test.ts +1 -13
  37. package/tests/price-oracle/transactions-mutated.ts +1 -4
  38. package/tests/pyth/pyth-indigo.test.ts +8 -12
  39. package/tests/pyth/pyth.test.ts +1 -2
  40. package/tests/rob/actions.ts +0 -2
  41. package/tests/rob/rob-leverage.test.ts +164 -220
  42. package/tests/rob/rob.test.ts +158 -263
  43. package/tests/rob/transactions-mutated.ts +7 -18
  44. package/tests/stability-pool/actions.ts +4 -8
  45. package/tests/stability-pool.test.ts +164 -255
  46. package/tests/stableswap/stableswap-actions.ts +0 -1
  47. package/tests/stableswap/stableswap.test.ts +226 -4
  48. package/tests/staking.test.ts +2 -13
  49. 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
- context.lucid,
1319
- [
1320
- {
1321
- ...iusdInitialAssetCfg(),
1322
- collateralAssets: [
1323
- {
1324
- ...mkBaseCollateralAsset(adaAssetClass, 0n, {
1325
- numerator: 1_104_093n,
1326
- denominator: 1_000_000n,
1327
- }),
1328
- maintenanceRatio: { numerator: 15n, denominator: 10n },
1329
- },
1330
- ],
1331
- debtMintingFeeRatio: { numerator: 1n, denominator: 200n },
1332
- redemptionReimbursementRatio: { numerator: 1n, denominator: 100n },
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.emulator.slot,
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
- context.emulator.slot,
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
- slotToUnixTime(context.lucid.config().network!, context.emulator.slot),
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
- context.emulator.slot,
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.emulator.slot,
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
- context.lucid,
1577
- [
1578
- {
1579
- ...iusdInitialAssetCfg(),
1580
- collateralAssets: [
1581
- {
1582
- ...mkBaseCollateralAsset(adaAssetClass, 0n, {
1583
- numerator: 904_093n,
1584
- denominator: 1_000_000n,
1585
- }),
1586
- maintenanceRatio: { numerator: 15n, denominator: 10n },
1587
- },
1588
- ],
1589
- debtMintingFeeRatio: { numerator: 1n, denominator: 200n },
1590
- redemptionReimbursementRatio: { numerator: 1n, denominator: 100n },
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.emulator.slot,
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
- context.lucid,
1700
- [
1701
- {
1702
- ...iusdInitialAssetCfg(),
1703
- collateralAssets: [
1704
- {
1705
- ...mkBaseCollateralAsset(adaAssetClass, 0n, {
1706
- numerator: 1_037_093n,
1707
- denominator: 1_000_000n,
1708
- }),
1709
- maintenanceRatio: { numerator: 15n, denominator: 10n },
1710
- },
1711
- ],
1712
- debtMintingFeeRatio: { numerator: 13n, denominator: 1_000n },
1713
- redemptionReimbursementRatio: { numerator: 1n, denominator: 100n },
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.emulator.slot,
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
- context.lucid,
1823
- [
1824
- {
1825
- ...iusdInitialAssetCfg(),
1826
- collateralAssets: [
1827
- {
1828
- ...mkBaseCollateralAsset(adaAssetClass, 0n, {
1829
- numerator: 1_461_093n,
1830
- denominator: 1_000_000n,
1831
- }),
1832
- maintenanceRatio: { numerator: 15n, denominator: 10n },
1833
- },
1834
- ],
1835
- debtMintingFeeRatio: { numerator: 7n, denominator: 1_000n },
1836
- redemptionReimbursementRatio: { numerator: 2n, denominator: 100n },
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.emulator.slot,
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
- context.lucid,
1946
- [
1947
- {
1948
- ...iusdInitialAssetCfg(),
1949
- collateralAssets: [
1950
- {
1951
- ...mkBaseCollateralAsset(adaAssetClass, 0n, {
1952
- numerator: 58_900n,
1953
- denominator: 1_000_000n,
1954
- }),
1955
- maintenanceRatio: { numerator: 15n, denominator: 10n },
1956
- },
1957
- ],
1958
- debtMintingFeeRatio: { numerator: 7n, denominator: 1_000n },
1959
- redemptionReimbursementRatio: { numerator: 2n, denominator: 100n },
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.emulator.slot,
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
- context.lucid,
2069
- [
2070
- {
2071
- ...iusdInitialAssetCfg(),
2072
- collateralAssets: [
2073
- {
2074
- ...mkBaseCollateralAsset(adaAssetClass, 0n, {
2075
- numerator: 103_973_621n,
2076
- denominator: 1_000_000n,
2077
- }),
2078
- maintenanceRatio: { numerator: 15n, denominator: 10n },
2079
- },
2080
- ],
2081
- debtMintingFeeRatio: { numerator: 3n, denominator: 100n },
2082
- redemptionReimbursementRatio: { numerator: 1n, denominator: 100n },
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.emulator.slot,
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
- context.lucid,
2192
- [
2193
- {
2194
- ...iusdInitialAssetCfg(),
2195
- collateralAssets: [
2196
- {
2197
- ...mkBaseCollateralAsset(adaAssetClass, 0n, {
2198
- numerator: 1_000_000n,
2199
- denominator: 1_000_000n,
2200
- }),
2201
- maintenanceRatio: { numerator: 15n, denominator: 10n },
2202
- },
2203
- {
2204
- ...mkBaseCollateralAsset(collateralAssetA, 0n, {
2205
- numerator: 2_397_000n,
2206
- denominator: 1_000_000n,
2207
- }),
2208
- maintenanceRatio: { numerator: 15n, denominator: 10n },
2209
- },
2210
- ],
2211
- debtMintingFeeRatio: { numerator: 391n, denominator: 10_000n },
2212
- redemptionReimbursementRatio: { numerator: 17n, denominator: 1000n },
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.emulator.slot,
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
- context.lucid,
2341
- [
2342
- {
2343
- ...iusdInitialAssetCfg(),
2344
- collateralAssets: [
2345
- {
2346
- ...mkBaseCollateralAsset(adaAssetClass, 0n, {
2347
- numerator: 1n,
2348
- denominator: 1n,
2349
- }),
2350
- maintenanceRatio: { numerator: 15n, denominator: 10n },
2351
- },
2352
- ],
2353
- debtMintingFeeRatio: { numerator: 5n, denominator: 1_000n },
2354
- redemptionReimbursementRatio: { numerator: 1n, denominator: 100n },
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.emulator.slot,
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
- context.lucid,
2480
- [
2481
- {
2482
- ...iusdInitialAssetCfg(),
2483
- collateralAssets: [
2484
- {
2485
- ...mkBaseCollateralAsset(adaAssetClass, 0n, {
2486
- numerator: 25n,
2487
- denominator: 10n,
2488
- }),
2489
- maintenanceRatio: { numerator: 13n, denominator: 10n },
2490
- },
2491
- ],
2492
- debtMintingFeeRatio: { numerator: 6n, denominator: 1_000n },
2493
- redemptionReimbursementRatio: { numerator: 14n, denominator: 1000n },
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.emulator.slot,
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: