UNPKG

@kamino-finance/klend-sdk

Version:

Typescript SDK for interacting with the Kamino Lending (klend) protocol

52 lines (48 loc) 2.07 kB
import { VaultState } from '../idl_codegen_kamino_vault/accounts/VaultState'; import { VaultAllocation } from '../idl_codegen_kamino_vault/types/VaultAllocation'; export function decodeVaultState(data: Buffer): VaultState { if (!VaultState.discriminator.equals(data.slice(0, 8))) { throw new Error('invalid account discriminator'); } const dec = VaultState.layout.decode(data.slice(8)); return new VaultState({ vaultAdminAuthority: dec.vaultAdminAuthority, baseVaultAuthority: dec.baseVaultAuthority, baseVaultAuthorityBump: dec.baseVaultAuthorityBump, tokenMint: dec.tokenMint, tokenMintDecimals: dec.tokenMintDecimals, tokenVault: dec.tokenVault, tokenProgram: dec.tokenProgram, sharesMint: dec.sharesMint, sharesMintDecimals: dec.sharesMintDecimals, tokenAvailable: dec.tokenAvailable, sharesIssued: dec.sharesIssued, availableCrankFunds: dec.availableCrankFunds, padding0: dec.padding0, performanceFeeBps: dec.performanceFeeBps, managementFeeBps: dec.managementFeeBps, lastFeeChargeTimestamp: dec.lastFeeChargeTimestamp, prevAumSf: dec.prevAumSf, pendingFeesSf: dec.pendingFeesSf, vaultAllocationStrategy: dec.vaultAllocationStrategy.map( (item: any /* eslint-disable-line @typescript-eslint/no-explicit-any */) => VaultAllocation.fromDecoded(item) ), padding1: dec.padding1, minDepositAmount: dec.minDepositAmount, minWithdrawAmount: dec.minWithdrawAmount, minInvestAmount: dec.minInvestAmount, minInvestDelaySlots: dec.minInvestDelaySlots, crankFundFeePerReserve: dec.crankFundFeePerReserve, pendingAdmin: dec.pendingAdmin, cumulativeEarnedInterestSf: dec.cumulativeEarnedInterestSf, cumulativeMgmtFeesSf: dec.cumulativeMgmtFeesSf, cumulativePerfFeesSf: dec.cumulativePerfFeesSf, name: dec.name, vaultLookupTable: dec.vaultLookupTable, vaultFarm: dec.vaultFarm, creationTimestamp: dec.creationTimestamp, padding2: dec.padding2, allocationAdmin: dec.allocationAdmin, padding3: dec.padding3, }); }