@indigo-labs/indigo-sdk 0.1.1 → 0.1.3

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 (92) hide show
  1. package/.github/workflows/ci.yml +62 -0
  2. package/.github/workflows/test.yml +44 -0
  3. package/.husky/pre-commit +1 -0
  4. package/.prettierrc +1 -1
  5. package/README.md +52 -7
  6. package/dist/index.d.mts +1064 -182
  7. package/dist/index.d.ts +1064 -182
  8. package/dist/index.js +2565 -561
  9. package/dist/index.mjs +2546 -593
  10. package/eslint.config.mjs +35 -0
  11. package/package.json +61 -43
  12. package/src/contracts/cdp.ts +208 -359
  13. package/src/contracts/collector.ts +13 -6
  14. package/src/contracts/gov.ts +1 -58
  15. package/src/contracts/interest-oracle.ts +139 -39
  16. package/src/contracts/lrp.ts +223 -0
  17. package/src/contracts/one-shot.ts +67 -0
  18. package/src/contracts/stability-pool.ts +684 -0
  19. package/src/contracts/staking.ts +348 -0
  20. package/src/contracts/treasury.ts +30 -13
  21. package/src/helpers/asset-helpers.ts +51 -22
  22. package/src/helpers/helper-txs.ts +30 -0
  23. package/src/helpers/helpers.ts +29 -8
  24. package/src/helpers/indigo-helpers.ts +19 -0
  25. package/src/helpers/interest-oracle.ts +57 -0
  26. package/src/helpers/lucid-utils.ts +62 -16
  27. package/src/helpers/price-oracle-helpers.ts +36 -0
  28. package/src/helpers/stability-pool-helpers.ts +207 -0
  29. package/src/helpers/staking-helpers.ts +94 -0
  30. package/src/helpers/time-helpers.ts +4 -3
  31. package/src/helpers/value-helpers.ts +16 -0
  32. package/src/index.ts +15 -4
  33. package/src/scripts/always-fail-validator.ts +7 -0
  34. package/src/scripts/auth-token-policy.ts +23 -0
  35. package/src/scripts/cdp-creator-validator.ts +46 -2
  36. package/src/scripts/collector-validator.ts +2 -2
  37. package/src/scripts/execute-validator.ts +52 -0
  38. package/src/scripts/gov-validator.ts +44 -0
  39. package/src/scripts/iasset-policy.ts +22 -0
  40. package/src/scripts/interest-oracle-validator.ts +18 -3
  41. package/src/scripts/lrp-validator.ts +23 -0
  42. package/src/scripts/one-shot-policy.ts +62 -0
  43. package/src/scripts/poll-manager-validator.ts +52 -0
  44. package/src/scripts/poll-shard-validator.ts +47 -0
  45. package/src/scripts/price-oracle-validator.ts +26 -0
  46. package/src/scripts/stability-pool-validator.ts +60 -0
  47. package/src/scripts/staking-validator.ts +8 -0
  48. package/src/scripts/version-record-policy.ts +26 -0
  49. package/src/scripts/version-registry.ts +15 -0
  50. package/src/types/generic.ts +99 -6
  51. package/src/types/indigo/cdp-creator.ts +46 -0
  52. package/src/types/indigo/cdp.ts +86 -31
  53. package/src/types/indigo/execute.ts +21 -0
  54. package/src/types/indigo/gov.ts +50 -20
  55. package/src/types/indigo/interest-oracle.ts +55 -5
  56. package/src/types/indigo/lrp.ts +54 -0
  57. package/src/types/indigo/poll-manager.ts +21 -0
  58. package/src/types/indigo/poll-shard.ts +16 -0
  59. package/src/types/indigo/price-oracle.ts +38 -4
  60. package/src/types/indigo/stability-pool.ts +233 -0
  61. package/src/types/indigo/staking.ts +99 -0
  62. package/src/types/indigo/version-record.ts +17 -0
  63. package/src/types/on-chain-decimal.ts +23 -0
  64. package/src/types/one-shot.ts +22 -0
  65. package/src/types/system-params.ts +95 -77
  66. package/tests/data/system-params.json +972 -972
  67. package/tests/datums.test.ts +279 -44
  68. package/tests/endpoints/initialize.ts +1013 -0
  69. package/tests/hash-checks.test.ts +71 -15
  70. package/tests/indigo-test-helpers.ts +115 -0
  71. package/tests/initialize.test.ts +27 -0
  72. package/tests/interest-calculations.test.ts +110 -133
  73. package/tests/interest-oracle.test.ts +90 -0
  74. package/tests/lrp.test.ts +149 -0
  75. package/tests/queries/governance-queries.ts +31 -0
  76. package/tests/queries/iasset-queries.ts +39 -0
  77. package/tests/queries/interest-oracle-queries.ts +13 -0
  78. package/tests/queries/lrp-queries.ts +39 -0
  79. package/tests/queries/price-oracle-queries.ts +27 -0
  80. package/tests/queries/stability-pool-queries.ts +75 -0
  81. package/tests/queries/staking-queries.ts +43 -0
  82. package/tests/stability-pool.test.ts +364 -0
  83. package/tests/staking.test.ts +105 -0
  84. package/tests/test-helpers.ts +38 -0
  85. package/tsconfig.build.json +4 -0
  86. package/tsconfig.json +8 -27
  87. package/vitest.config.ts +9 -0
  88. package/babel.config.cjs +0 -13
  89. package/jest.config.js +0 -13
  90. package/src/contracts/cdp-creator.ts +0 -86
  91. package/src/contracts/price-oracle.ts +0 -24
  92. package/src/helpers/cdp-helpers.ts +0 -9
@@ -0,0 +1,62 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ pull_request:
7
+ branches: [main]
8
+
9
+ jobs:
10
+ lint-and-build:
11
+ runs-on: ubuntu-latest
12
+
13
+ steps:
14
+ - name: Checkout code
15
+ uses: actions/checkout@v4
16
+
17
+ - name: Setup Node.js
18
+ uses: actions/setup-node@v4
19
+ with:
20
+ node-version-file: '.nvmrc'
21
+
22
+ - name: Setup pnpm
23
+ uses: pnpm/action-setup@v4
24
+ with:
25
+ version: latest
26
+
27
+ - name: Get pnpm store directory
28
+ shell: bash
29
+ run: |
30
+ echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
31
+
32
+ - name: Setup pnpm cache
33
+ uses: actions/cache@v4
34
+ with:
35
+ path: ${{ env.STORE_PATH }}
36
+ key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
37
+ restore-keys: |
38
+ ${{ runner.os }}-pnpm-store-
39
+
40
+ - name: Install dependencies
41
+ run: pnpm install --frozen-lockfile
42
+
43
+ - name: Check formatting
44
+ run: pnpm run format:check
45
+
46
+ - name: Check linting
47
+ run: pnpm run lint
48
+
49
+ - name: Build project
50
+ run: pnpm run build
51
+
52
+ - name: Verify build output
53
+ run: |
54
+ if [ ! -d "dist" ]; then
55
+ echo "Build failed: dist directory not found"
56
+ exit 1
57
+ fi
58
+ if [ ! -f "dist/index.js" ] || [ ! -f "dist/index.mjs" ] || [ ! -f "dist/index.d.ts" ]; then
59
+ echo "Build failed: expected output files not found"
60
+ exit 1
61
+ fi
62
+ echo "Build verification passed"
@@ -0,0 +1,44 @@
1
+ name: Tests
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ pull_request:
7
+ branches: [main]
8
+
9
+ jobs:
10
+ test:
11
+ runs-on: ubuntu-latest
12
+
13
+ steps:
14
+ - name: Checkout code
15
+ uses: actions/checkout@v4
16
+
17
+ - name: Setup Node.js
18
+ uses: actions/setup-node@v4
19
+ with:
20
+ node-version-file: '.nvmrc'
21
+
22
+ - name: Setup pnpm
23
+ uses: pnpm/action-setup@v4
24
+ with:
25
+ version: latest
26
+
27
+ - name: Get pnpm store directory
28
+ shell: bash
29
+ run: |
30
+ echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
31
+
32
+ - name: Setup pnpm cache
33
+ uses: actions/cache@v4
34
+ with:
35
+ path: ${{ env.STORE_PATH }}
36
+ key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
37
+ restore-keys: |
38
+ ${{ runner.os }}-pnpm-store-
39
+
40
+ - name: Install dependencies
41
+ run: pnpm install --frozen-lockfile
42
+
43
+ - name: Run tests
44
+ run: pnpm run test
@@ -0,0 +1 @@
1
+ pnpm exec lint-staged
package/.prettierrc CHANGED
@@ -3,4 +3,4 @@
3
3
  "trailingComma": "all",
4
4
  "tabWidth": 2,
5
5
  "semi": true
6
- }
6
+ }
package/README.md CHANGED
@@ -2,7 +2,52 @@
2
2
 
3
3
  ** Not ready for production yet **
4
4
 
5
- `indigo-sdk` is a TypeScript SDK designed to interact with Indigo endpoints for managing CDPs (Collateralized Debt Positions) by integrating the [lucid-evolution](https://github.com/Anastasia-Labs/lucid-evolution) library.
5
+ `indigo-sdk` is a TypeScript SDK designed to interact with Indigo endpoints for managing CDPs (Collateralized Debt Positions), Staking Positions, and Stability Pool Accounts by integrating the [lucid-evolution](https://github.com/Anastasia-Labs/lucid-evolution) library.
6
+
7
+ ## Installation
8
+
9
+ ```bash
10
+ npm install @indigo-labs/indigo-sdk
11
+ ```
12
+
13
+ ## Development
14
+
15
+ ### Prerequisites
16
+
17
+ - Node.js (version specified in `.nvmrc`)
18
+ - pnpm package manager
19
+
20
+ ### Setup
21
+
22
+ 1. Clone this repository
23
+ 2. Install dependencies: `pnpm install`
24
+ 3. Build the project: `pnpm run build`
25
+
26
+ ### Available Scripts
27
+
28
+ - `pnpm run build` - Build the project using tsup
29
+ - `pnpm run lint` - Run ESLint to check code quality
30
+ - `pnpm run format` - Format code using Prettier
31
+ - `pnpm run format:check` - Check if code is properly formatted
32
+ - `pnpm run test` - Run tests using Vitest
33
+
34
+ ### Code Quality
35
+
36
+ This project uses:
37
+
38
+ - **ESLint** for code linting and quality checks
39
+ - **Prettier** for code formatting
40
+ - **TypeScript** for type safety
41
+
42
+ ### Running Tests
43
+
44
+ There are currently a few unit tests available for datums, hash checks, and interest calculations. Additionally, acceptance tests have been published for CDPs, Staking Positions, and Stability Pool accounts. These tests initialize the Indigo Protocol and positively test that the transaction building is working in an emulated Cardano Blockchain.
45
+
46
+ Instructions:
47
+
48
+ 1. Clone this repository
49
+ 2. Run `pnpm install`
50
+ 3. Run `pnpm run test`
6
51
 
7
52
  ## Endpoints
8
53
 
@@ -13,9 +58,9 @@
13
58
  - **Mint against CDP**
14
59
  - **Burn against CDP**
15
60
  - **Pay CDP Interest**
16
-
17
- ## Installation
18
-
19
- ```bash
20
- npm install @indigo-labs/indigo-sdk
21
- ```
61
+ - **Open a Staking Position**
62
+ - **Adjust a Staking Position**
63
+ - **Close a Staking Position**
64
+ - **Open a Stability Pool Account**
65
+ - **Adjust a Stability Pool Account**
66
+ - **Close a Stability Pool Account**