@indigo-labs/indigo-sdk
v0.3.10
Published
Indigo SDK for interacting with Indigo endpoints via lucid-evolution
Downloads
1,697
Maintainers
Readme
Indigo SDK
** Not ready for production yet **
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 library.
Installation
npm install @indigo-labs/indigo-sdkDevelopment
Prerequisites
- Node.js (version specified in
.nvmrc) - pnpm package manager
Setup
- Clone this repository
- Install dependencies:
pnpm install - Build the project:
pnpm run build
Available Scripts
pnpm run build- Build the project using tsuppnpm run lint- Run ESLint to check code qualitypnpm run format- Format code using Prettierpnpm run format:check- Check if code is properly formattedpnpm run test- Run tests using Vitest
Code Quality
This project uses:
- ESLint for code linting and quality checks
- Prettier for code formatting
- TypeScript for type safety
Running Tests
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.
Instructions:
- Clone this repository
- Run
pnpm install - Run
pnpm run test
Transaction endpoints
The SDK exposes transaction builders (mostly async functions that return a Lucid TxBuilder, or attach to an existing builder). They are grouped below by on-chain contract module under src/contracts/.
CDP (cdp)
| Function | Summary |
| -------------- | -------------------------------------------------------------------------------- |
| openCdp | Open a new CDP: deposit collateral, mint iAsset. |
| depositCdp | Add collateral to an existing CDP. |
| withdrawCdp | Withdraw collateral from an existing CDP |
| mintCdp | Mint additional iAsset debt with an existing CDP. |
| burnCdp | Burn iAsset to pay down existing CDP's debt. |
| closeCdp | Close a CDP, burn remaining debt and withdraw collateral. |
| redeemCdp | Redeem iAsset for collateral (burning CDP debt and withdrawing collateral). |
| freezeCdp | Freeze a CDP marking it for liquidation. |
| liquidateCdp | Liquidate a frozen CDP via the stability pool: absorb debt, move collateral. |
| mergeCdps | Merge several frozen CDPs for the same iAsset into a single combined frozen CDP. |
Collector (collector)
| Function | Summary |
| ---------------- | ----------------------------------------------------------- |
| collectorFeeTx | Attach a collector fee payment to an in-flight transaction. |
Governance (gov)
| Function | Summary |
| -------------------- | ------------------------------------------ |
| createProposal | Create a governance proposal. |
| createShardsChunks | Create poll shards for voting. |
| vote | Vote on a poll shard. |
| mergeShards | Merge poll shards to a poll manager. |
| endProposal | End the poll and prepare it for execution. |
| executeProposal | Execute a passed proposal. |
Stability pool (stability-pool)
| Function | Summary |
| ---------------------------- | ----------------------------------------------------- |
| requestSpAccountCreation | Create request for Stability pool account creation. |
| requestSpAccountAdjustment | Create request for Stability pool account adjustment. |
| requestSpAccountClosure | Create request for Stability pool account closure. |
| processSpRequest | Process a request against a Stability pool. |
| createE2s2sSnapshots | Record new epoch–scale–sum snapshot. |
Staking (staking)
| Function | Summary |
| ----------------------- | -------------------------------------------------------- |
| openStakingPosition | Create INDY staking position. |
| adjustStakingPosition | Adjust the stake in your INDY staking position. |
| closeStakingPosition | Close your staking position and withdraw your stake. |
| distributeAda | Distribute ADA from collector to INDY stakers as reward. |
Interest oracle (interest-oracle)
| Function | Summary |
| --------------------- | -------------------------------------------------------- |
| startInterestOracle | Bootstrap an interest oracle UTxO. |
| feedInterestOracle | Update the oracle’s interest rate and last-updated time. |
Interest collection (interest-collection)
| Function | Summary |
| ---------------------- | ------------------------------------------------------------------------------------------- |
| batchCollectInterest | Settle and collect interest for multiple CDPs in a single Tx. |
| distributeInterest | Distribute funds held by interest collector UTxOs according to the interest admin multisig. |
| updatePermissions | Update interest admin permissions. |
Treasury (treasury)
| Function | Summary |
| --------------------------- | ---------------------------------------------------------------------------- |
| treasuryFeeTx | Attach a treasury fee payment to an in-flight transaction. |
| treasuryMerge | Merge multiple treasury UTxOs into one. |
| treasurySplit | Split one treasury UTxO into separate outputs per asset. |
| treasuryPrepareWithdrawal | Prepare treasury UTXO tied to a proposal execution and requested withdrawal. |
ROB — Indigo order book (rob)
| Function | Summary |
| ----------- | ------------------------------------------------------------------------------------- |
| openRob | Create a buy-iAsset or sell-iAsset order. |
| cancelRob | Cancel an open order and recover the deposit. |
| redeemRob | Fill market order using current oracle price. |
| adjustRob | Adjust deposit on an order, update limit price and claim proceeds from order filling. |
| claimRob | Claim proceeds from a filled or partially filled order. |
