@elmntl/voltr-codama-sdk
v1.0.0
Published
TypeScript SDK for Voltr Protocol - Generated with Codama
Readme
@elmntl/voltr-codama-sdk
TypeScript SDK for interacting with Voltr Protocol vaults on Solana.
Note: This SDK is generated using Codama and uses the modern
@solana/kit(web3.js 2.0) library.
Installation
npm install @elmntl/voltr-codama-sdk @solana/kitQuick Start
import { createSolanaRpc, address, createKeyPairSignerFromBytes } from "@solana/kit";
import { getDepositVaultInstructionAsync, fetchVault, VOLTR_VAULT_PROGRAM_ADDRESS } from "@elmntl/voltr-codama-sdk";
// Connect to Solana
const rpc = createSolanaRpc("https://api.mainnet-beta.solana.com");
// Fetch a vault
const vaultAddress = address("YOUR_VAULT_ADDRESS");
const vault = await fetchVault(rpc, vaultAddress);
// Create a deposit instruction
const depositIx = await getDepositVaultInstructionAsync({
userTransferAuthority: signer,
vault: vaultAddress,
vaultAssetMint: vault.data.asset.mint,
assetTokenProgram: vault.data.asset.tokenProgram,
amount: 1_000_000n, // Amount in base units
});Available Instructions
User Instructions
depositVault- Deposit assets into a vaultrequestWithdrawVault- Request withdrawal from a vaultwithdrawVault- Complete a withdrawalcancelRequestWithdrawVault- Cancel a pending withdrawal request
Admin Instructions
initializeVault- Initialize a new vaultupdateVault- Update vault parametersupdateVaultConfig- Update vault configurationaddAdaptor- Add a strategy adaptorremoveAdaptor- Remove a strategy adaptorharvestFee- Harvest protocol fees
Strategy Instructions
initializeStrategy- Initialize a strategy positiondepositStrategy- Deposit into a strategywithdrawStrategy- Withdraw from a strategydirectWithdrawStrategy- Direct withdrawal from strategycloseStrategy- Close a strategy position
Account Types
import { fetchVault, fetchProtocol } from "@elmntl/voltr-codama-sdk";
// Fetch and decode vault account
const vault = await fetchVault(rpc, vaultAddress);
console.log(vault.data.asset.mint);
console.log(vault.data.lp.supply);
// Fetch protocol account
const protocol = await fetchProtocol(rpc);Type Definitions
All instruction arguments, account data, and custom types are fully typed:
import type {
Vault,
VaultConfiguration,
FeeConfiguration,
DepositVaultInstructionDataArgs,
} from "@elmntl/voltr-codama-sdk";Program Address
import { VOLTR_VAULT_PROGRAM_ADDRESS } from "@elmntl/voltr-codama-sdk";
// vVoLTRjQmtFpiYoegx285Ze4gsLJ8ZxgFKVcuvmG1a8Requirements
- Node.js >= 18
@solana/kit>= 2.0.0
License
MIT
