@augustdigital/vaults
Version:
JS SDK for web3 interactions with the August Digital Lending Pools
122 lines (121 loc) • 3.87 kB
TypeScript
import { IAddress, IContractRunner, INormalizedNumber, IPoolFunctions, ITokenizedVault, IVault } from '@augustdigital/types';
export declare const VAULT_AgoraAUSD = "0x828BC5895b78b2fb591018Ca5bDC2064742D6D0f";
export declare const SUBACCOUNT_CALEB = "0xFff71B0b66f076C60Fa2f176a34a6EA709ccF21B";
export declare const MULTI_ASSET_VAULTS: string[];
export declare function promiseSettle<T>(promises: Promise<T>[], maxRetries?: number, baseDelay?: number): Promise<T[]>;
export declare const filterOutBySize: (usdAmount: number) => boolean;
export declare const determineBlockCutoff: (chain: number) => 120000 | 150000;
export declare const determineBlockSkipInternal: (chain: number) => 8000 | 50000;
export declare const POOL_FUNCTIONS: IPoolFunctions[];
export declare function getVaultRewards(tokenizedVault: ITokenizedVault): {
upshiftPoints: string;
latestUpshiftPointMultiplier: number;
upshiftPointsMultipliers: {
timestamp: number;
multiplier: number;
}[];
additionalPoints: string[];
};
export declare function getIdleAssets(provider: IContractRunner, vaultAddress: IAddress, underlying: IAddress, totalAssets: INormalizedNumber): Promise<bigint>;
export declare function buildFormattedVault(provider: IContractRunner, tokenizedVault: ITokenizedVault, contractCalls: Record<IPoolFunctions, string | number | INormalizedNumber | boolean>): Promise<IVault>;
export declare function fetchVaultWithFallback<T>(vaultAddress: string, fetchFn: () => Promise<T>, options?: {
maxRetries?: number;
baseDelay?: number;
fallbackStrategies?: Array<() => Promise<T>>;
timeout?: number;
}): Promise<{
success: boolean;
data?: T;
error?: Error;
strategy: string;
}>;
export declare function fetchVaultsBatch<T>(vaults: Array<{
address: string;
fetchFn: () => Promise<T>;
}>, options?: {
maxRetries?: number;
baseDelay?: number;
batchSize?: number;
parallelLimit?: number;
}): Promise<{
successful: Array<{
index: number;
data: T;
strategy: string;
}>;
failed: Array<{
index: number;
error: Error;
address: string;
}>;
totalAttempted: number;
successRate: number;
}>;
export declare function fetchVaultsComprehensive<T>(vaults: Array<{
address: string;
chain: number;
}>, fetchFn: (vault: {
address: string;
chain: number;
fallbackRpc?: string;
minimal?: boolean;
}) => Promise<T>, options?: {
maxRetries?: number;
baseDelay?: number;
batchSize?: number;
parallelLimit?: number;
includeClosed?: boolean;
includeInvisible?: boolean;
fallbackRpcUrls?: Record<number, string[]>;
timeout?: number;
}): Promise<{
successful: Array<{
index: number;
data: T;
strategy: string;
attempts: number;
}>;
failed: Array<{
index: number;
error: Error;
address: string;
chain: number;
attempts: number;
}>;
totalAttempted: number;
successRate: number;
coverageReport: {
totalVaults: number;
successfulVaults: number;
failedVaults: number;
closedVaults: number;
invisibleVaults: number;
rpcFailures: Record<number, number>;
};
}>;
export declare function filterVaultsIntelligently<T extends {
status?: string;
isVisible?: boolean;
is_visible?: boolean;
}>(vaults: (T | null)[], options?: {
includeClosed?: boolean;
includeInvisible?: boolean;
includeNull?: boolean;
minStatus?: string[];
}): {
active: T[];
closed: T[];
invisible: T[];
failed: Array<{
index: number;
reason: string;
}>;
summary: {
total: number;
active: number;
closed: number;
invisible: number;
failed: number;
successRate: number;
};
};