@elmntl/vaults-v2
v1.0.10
Published
SDK for Elemental Vault V2 (ELE6) - Multi-mint vault with swap adapters
Downloads
1,241
Readme
@elmntl/vaults-v2
SDK for Elemental Vault V2 (ELE6) - Multi-mint vault with swap adapters on Solana.
Installation
npm install @elmntl/vaults-v2
# or
pnpm add @elmntl/vaults-v2Usage
import { Connection, PublicKey } from "@solana/web3.js";
import { AnchorProvider, Wallet } from "@coral-xyz/anchor";
import { ElementalV2Context, Pool, Position } from "@elmntl/vaults-v2";
// Initialize
const connection = new Connection("https://api.mainnet-beta.solana.com");
const provider = new AnchorProvider(connection, wallet, {});
const ctx = new ElementalV2Context(provider);
// Load pool
const poolAddress = new PublicKey("7cXYCSLPQqJDLeUQMYgJ2crM7KiCs9g7z71qvGVjS7F8");
const pool = await ctx.loadPool(poolAddress);
console.log(`APR: ${pool.aprPercent}%`);
console.log(`TVL: ${pool.currentSupply}`);
console.log(`Max Supply: ${pool.maxSupply}`);
// Load user position
const position = await ctx.loadPosition(pool);
console.log(`Status: ${position.status}`);
console.log(`Deposited: ${position.amount}`);
console.log(`Claimable: ${position.claimableAmount}`);
// Deposit
const depositTx = await ctx.deposit(position, "100"); // 100 tokens
// Deactivate (request withdrawal)
const deactivateTx = await ctx.deactivate(position, "50"); // 50 tokens
// Withdraw (after cooldown)
const withdrawTx = await ctx.withdraw(position);API Reference
ElementalV2Context
Main entry point for interacting with the Elemental V2 vault program.
Pool Operations
loadPool(address: PublicKey): Promise<Pool>- Load a single poolloadPools(addresses: PublicKey[]): Promise<Pool[]>- Load multiple pools
Position Operations
loadPosition(pool: Pool, owner?: PublicKey): Promise<Position>- Load user positionloadPositions(pools: Pool[], owner?: PublicKey): Promise<Position[]>- Load multiple positions
Actions
deposit(position, amount, minOutput?)- Deposit tokens into the vaultdeactivate(position, amount)- Request withdrawal (starts cooldown)claim(position)- Claim accumulated rewardswithdraw(position)- Withdraw tokens (after cooldown)fundFaucet(pool, amount)- Fund the withdrawal faucet (admin)updateEpoch(pool)- Advance the epochupdateConfig(pool, params)- Update pool configuration (admin)
Pool
Wrapper for pool account data with helper methods.
Properties
address- Pool public keyaprPercent- APR as percentage string (e.g., "10.00")currentSupply- Current TVL (human-readable)maxSupply- Maximum supply capepochIndex- Current epoch numberepochDuration- Epoch duration in millisecondsnextEpochDate- Date of next epochadapterType- Swap adapter type (Direct, OnRe, Jupiter, External)
Position
Wrapper for position account data.
Properties
status- Position status: "inactive", "queued", "farming", "unstaking", "unstaked", "claiming", "claimed"amount- Currently staked amountclaimableAmount- Rewards available to claimwithdrawableAmount- Amount ready to withdrawunstakingAmount- Amount in cooldowncanDeposit,canUnstake,canWithdraw,canClaim- Action availability
Program
- Program ID:
ELE6rYCZUaegWxVhWM4ef9pXZBAgGUVaVKkTbDvX6BMU - Network: Solana Mainnet
License
MIT
