UNPKG

@defindex/sdk

Version:

Official TypeScript SDK for DeFindex API

211 lines 5.84 kB
import { BaseVaultTransactionResponse } from "./base.types"; export interface AssetStrategySet { address: string; strategies: Strategy[]; } export interface Strategy { address: string; name: string; paused: boolean; } export interface CreateDefindexVault { roles: Record<number, string>; vault_fee_bps: number; assets: AssetStrategySet[]; soroswap_router?: string; name_symbol: Record<string, string>; upgradable: boolean; caller: string; amounts?: number[]; } export interface CreateDefindexVaultResponse { call_params: CreateDefindexVault; xdr: string | null; simulation_result: string; error?: string; } interface BaseCallerParams { caller: string; } interface BaseStrategyParams extends BaseCallerParams { strategy_address: string; } interface BaseAmountParams extends BaseCallerParams { amounts: number[]; slippageBps?: number; } export interface DepositToVaultParams extends BaseAmountParams { invest: boolean; } export interface WithdrawParams extends BaseAmountParams { } export interface WithdrawSharesParams extends BaseCallerParams { shares: number; slippageBps?: number; } export interface RescueFromVaultParams extends BaseStrategyParams { } export interface PauseStrategyParams extends BaseStrategyParams { } export interface UnpauseStrategyParams extends BaseStrategyParams { } export interface LockFeesParams extends BaseCallerParams { new_fee_bps?: number; } export interface ReleaseFeesParams extends BaseStrategyParams { amount: number; strategy_address: string; } export interface DistributeFeesParams extends BaseCallerParams { } export interface SetVaultRoleParams extends BaseCallerParams { new_address: string; } export interface UpgradeWasmParams extends BaseCallerParams { new_wasm_hash: string; } export interface RebalanceParams extends BaseCallerParams { instructions: InstructionParam[]; } export type Instruction = { type: "Unwind"; strategy_address: string; amount: number; } | { type: "Invest"; strategy_address: string; amount: number; } | { type: "SwapExactIn"; token_in: string; token_out: string; amount_in: number; amount_out_min: number; deadline: number; } | { type: "SwapExactOut"; token_in: string; token_out: string; amount_out: number; amount_in_max: number; deadline: number; }; export type InstructionParam = { type: "Unwind"; strategy_address: string; amount: number; } | { type: "Invest"; strategy_address: string; amount: number; } | { type: "SwapExactIn" | "SwapExactOut"; token_in: string; token_out: string; amount: number; slippageToleranceBps?: number; deadline?: number; }; export interface VaultRole { manager: string; emergencyManager: string; rebalanceManager: string; feeReceiver: string; } export interface VaultStrategy { address: string; name: string; paused: boolean; } export interface VaultAsset { address: string; name: string; symbol: string; strategies: VaultStrategy[]; } export interface VaultFees { vaultFee: number; defindexFee: number; } export interface VaultInfoResponse { name: string; symbol: string; roles: VaultRole; assets: VaultAsset[]; totalManagedFunds: any[]; feesBps: VaultFees; apy: number; } export interface VaultBalanceResponse { dfTokens: number; underlyingBalance: number[]; } export interface VaultTransactionResponse extends BaseVaultTransactionResponse { } export interface VaultApyResponse { apy: number; } export declare enum VaultMethods { DEPOSIT = "deposit", WITHDRAW = "withdraw", RESCUE = "rescue", PAUSE_STRATEGY = "pause_strategy", UNPAUSE_STRATEGY = "unpause_strategy", GET_ASSETS = "get_assets", FETCH_TOTAL_MANAGED_FUNDS = "fetch_total_managed_funds", GET_ASSET_AMOUNTS_PER_SHARES = "get_asset_amounts_per_shares", GET_FEES = "get_fees", REPORT = "report", SET_FEE_RECEIVER = "set_fee_receiver", GET_FEE_RECEIVER = "get_fee_receiver", SET_MANAGER = "set_manager", GET_MANAGER = "get_manager", SET_EMERGENCY_MANAGER = "set_emergency_manager", GET_EMERGENCY_MANAGER = "get_emergency_manager", SET_REBALANCE_MANAGER = "set_rebalance_manager", GET_REBALANCE_MANAGER = "get_rebalance_manager", UPGRADE = "upgrade", REBALANCE = "rebalance", LOCK_FEES = "lock_fees", RELEASE_FEES = "release_fees", DISTRIBUTE_FEES = "distribute_fees", TOTAL_SUPPLY = "total_supply", BALANCE = "balance", NAME = "name", SYMBOL = "symbol" } export declare enum VaultInfoInvocationMethods { GET_ASSETS = "get_assets", FETCH_TOTAL_MANAGED_FUNDS = "fetch_total_managed_funds", GET_FEES = "get_fees", GET_MANAGER = "get_manager", GET_EMERGENCY_MANAGER = "get_emergency_manager", GET_REBALANCE_MANAGER = "get_rebalance_manager", GET_FEE_RECEIVER = "get_fee_receiver", NAME = "name", SYMBOL = "symbol" } export declare enum VaultGetRoleMethods { GET_EMERGENCY_MANAGER = "get_emergency_manager", GET_REBALANCE_MANAGER = "get_rebalance_manager", GET_MANAGER = "get_manager", GET_FEE_RECEIVER = "get_fee_receiver" } export declare enum VaultSetRoleMethods { SET_MANAGER = "set_manager", SET_EMERGENCY_MANAGER = "set_emergency_manager", SET_REBALANCE_MANAGER = "set_rebalance_manager", SET_FEE_RECEIVER = "set_fee_receiver" } export interface VaultRoleResponse { function_called: VaultGetRoleMethods; address: string; } export declare enum VaultRoles { MANAGER = "manager", EMERGENCY_MANAGER = "emergency-manager", REBALANCE_MANAGER = "rebalance-manager", FEE_RECEIVER = "fee-receiver" } export {}; //# sourceMappingURL=vault.types.d.ts.map