import { ApiClient } from '..'; import BigNumber from 'bignumber.js'; /** * Loan RPCs for DeFi Blockchain */ export declare class Vault { private readonly client; constructor(client: ApiClient); /** * Creates a vault transaction. * * @param {CreateVault} vault * @param {string} vault.ownerAddress Any valid address or "" to generate a new address * @param {number} [vault.loanSchemeId] Unique identifier of the loan scheme (8 chars max). If empty, the default loan scheme will be selected * @param {UTXO[]} [utxos = []] Specific UTXOs to spend * @param {string} utxos.txid Transaction Id * @param {number} utxos.vout Output number * @return {Promise} Transaction id of the transaction */ createVault(vault: CreateVault, utxos?: UTXO[]): Promise; /** * Create update vault transaction. * * @param {string} vaultId * @param {UpdateVault} vault * @param {string} [vault.ownerAddress] Any valid address * @param {string} [vault.loanSchemeId] Unique identifier of the loan scheme (8 chars max) * @param {UTXO[]} [utxos = []] Specific UTXOs to spend * @param {string} utxos.txid Transaction Id * @param {number} utxos.vout Output number * @return {Promise} Transaction id of the transaction */ updateVault(vaultId: string, vault: UpdateVault, utxos?: UTXO[]): Promise; /** * Returns information about vault. * * @param {string} vaultId vault hex id * @param {boolean} [verbose] request verbose info (nextCollateralRatio, interestPerBlockValue, interestsPerBlock) * @return {Promise} */ getVault(vaultId: string, verbose?: boolean): Promise; /** * List all available vaults. * * @param {VaultPagination} [pagination] * @param {string} [pagination.start] * @param {boolean} [pagination.including_start] * @param {number} [pagination.limit=100] * @param {ListVaultOptions} [options] * @param {string} [options.ownerAddress] Address of the vault owner * @param {string} [options.loanSchemeId] Vault's loan scheme id * @param {VaultState} [options.state = VaultState.UNKNOWN] vault's state * @param {boolean} [options.verbose = false] true to return same information as getVault * @return {Promise} Array of objects including details of the vaults. */ listVaults(pagination?: VaultPagination, options?: ListVaultOptions): Promise>; /** * Close vault * * @param {CloseVault} closeVault * @param {string} closeVault.vaultId Vault id * @param {string} closeVault.to Valid address to receive collateral tokens * @param {UTXO[]} [utxos = []] Specific UTXOs to spend * @param {string} utxos.txid Transaction Id * @param {number} utxos.vout Output number * @return {Promise} */ closeVault(closeVault: CloseVault, utxos?: UTXO[]): Promise; /** * Deposit to vault * * @param {DepositVault} depositVault * @param {string} depositVault.vaultId Vault id * @param {string} depositVault.from Collateral address * @param {string} depositVault.amount In "amount@symbol" format * @param {UTXO[]} [utxos = []] Specific UTXOs to spend * @param {string} utxos.txid Transaction Id * @param {number} utxos.vout Output number * @return {Promise} */ depositToVault(depositVault: DepositVault, utxos?: UTXO[]): Promise; /** * Withdraw from vault * * @param {WithdrawVault} withdrawVault * @param {string} withdrawVault.vaultId Vault id * @param {string} withdrawVault.to Collateral address * @param {string} withdrawVault.amount In "amount@symbol" format * @param {UTXO[]} [utxos = []] Specific UTXOs to spend * @param {string} utxos.txid Transaction Id * @param {number} utxos.vout Output number * @return {Promise} */ withdrawFromVault(withdrawVault: WithdrawVault, utxos?: UTXO[]): Promise; /** * Bid to vault in auction * * @param {PlaceAuctionBid} placeAuctionBid * @param {string} placeAuctionBid.vaultId Vault Id * @param {index} placeAuctionBid.index Auction index * @param {from} placeAuctionBid.from Address to get token * @param {amount} placeAuctionBid.amount in "amount@symbol" format * @param {UTXO[]} [utxos = []] Specific UTXOs to spend * @param {string} utxos.txid Transaction Id * @param {number} utxos.vout Output number * @return {Promise} The transaction id */ placeAuctionBid(placeAuctionBid: PlaceAuctionBid, utxos?: UTXO[]): Promise; /** * List all available auctions. * * @param {AuctionPagination} pagination * @param {AuctionPaginationStart} [pagination.start] * @param {string} [pagination.start.vaultId] * @param {number} [pagination.start.height] * @param {boolean} [pagination.including_start] * @param {number} [pagination.limit=100] * @return {Promise} */ listAuctions(pagination?: AuctionPagination): Promise; /** * Returns information about auction history. * * @param {string} [owner] address or reserved word : mine / all (Default to mine) * @param {ListAuctionHistoryPagination} pagination * @param {number} [pagination.maxBlockHeight] Maximum block height * @param {string} [pagination.vaultId] Vault Id * @param {number} [pagination.index] Auction index * @param {number} [pagination.limit = 100] * @return {Promise} */ listAuctionHistory(owner?: string, pagination?: ListAuctionHistoryPagination): Promise; /** * Returns amount of collateral tokens needed to take an amount of loan tokens for a target collateral ratio. * * @param {string[]} loanAmounts Amount as array. Example: [ "amount@token" ] * @param {number} targetRatio Target collateral ratio. * @param {TokenPercentageSplit} [tokenSplit] Object with loans token as key and their percent split as value * @return {Promise} Array of strings */ estimateCollateral(loanAmounts: string[], targetRatio: number, tokenSplit?: TokenPercentageSplit): Promise; /** * Returns amount of loan tokens a vault can take depending on a target collateral ratio. * * @param {string} vaultId vault hex id * @param {TokenPercentageSplit} tokenSplit Object with loans token as key and their percent split as value * @param {number} [targetRatio] Target collateral ratio. (defaults to vault's loan scheme ratio) * @return {Promise} Array of `token@amount` */ estimateLoan(vaultId: string, tokenSplit: TokenPercentageSplit, targetRatio?: number): Promise; /** * Returns estimated vault for given collateral and loan amounts. * * @param {string[]} collateralAmounts Collateral amounts as string array. [ "amount@token" ] * @param {string[]} loanAmounts Loan amounts as string array. [ "amount@token" ] * @return {Promise} */ estimateVault(collateralAmounts: string[], loanAmounts: string[]): Promise; } export interface CreateVault { ownerAddress: string; loanSchemeId?: string; } export interface UpdateVault { ownerAddress?: string; loanSchemeId?: string; } export declare enum VaultState { UNKNOWN = "unknown", ACTIVE = "active", IN_LIQUIDATION = "inLiquidation", FROZEN = "frozen", MAY_LIQUIDATE = "mayLiquidate" } export interface Vault { vaultId: string; loanSchemeId: string; ownerAddress: string; state: VaultState; } export interface VaultActive extends Vault { collateralAmounts: string[]; loanAmounts: string[]; interestAmounts: string[]; collateralValue: BigNumber; loanValue: BigNumber; interestValue: BigNumber; collateralRatio: number; informativeRatio: BigNumber; nextCollateralRatio?: BigNumber; interestPerBlockValue?: string; interestsPerBlock?: string[]; } export interface VaultLiquidation extends Vault { liquidationHeight: number; liquidationPenalty: number; batchCount: number; batches: VaultLiquidationBatch[]; } export interface UTXO { txid: string; vout: number; } export interface DepositVault { vaultId: string; from: string; amount: string; } export interface WithdrawVault { vaultId: string; to: string; amount: string; } export interface VaultPagination { start?: string; including_start?: boolean; limit?: number; } export interface ListVaultOptions { ownerAddress?: string; loanSchemeId?: string; state?: VaultState; verbose?: boolean; } export interface CloseVault { vaultId: string; to: string; } export interface PlaceAuctionBid { vaultId: string; index: number; from: string; amount: string; } export interface AuctionPagination { start?: AuctionPaginationStart; including_start?: boolean; limit?: number; } export interface AuctionPaginationStart { vaultId?: string; height?: number; } export interface VaultLiquidationBatch { index: number; collaterals: string[]; loan: string; highestBid?: HighestBid; } export interface HighestBid { amount: string; owner: string; } export interface ListAuctionHistoryPagination { maxBlockHeight?: number; vaultId?: string; index?: number; limit?: number; } export interface ListAuctionHistoryDetail { winner: string; blockHeight: number; blockHash: string; blockTime: number; vaultId: string; batchIndex: number; auctionBid: string; auctionWon: string[]; } export interface VaultEstimation { collateralValue: BigNumber; loanValue: BigNumber; informativeRatio: BigNumber; collateralRatio: number; } export interface TokenPercentageSplit { [token: string]: number; } export interface Interest { token: string; realizedInterestPerBlock: BigNumber; totalInterest: BigNumber; interestPerBlock: BigNumber; } //# sourceMappingURL=vault.d.ts.map