@defindex/sdk
Version:
Official TypeScript SDK for DeFindex API
211 lines • 5.84 kB
TypeScript
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