UNPKG

@coinbase/agentkit

Version:

Coinbase AgentKit core primitives

195 lines (194 loc) 4.97 kB
import { EvmWalletProvider } from "../../wallet-providers"; import { VaultsSdk } from "@vaultsfyi/sdk"; /** * Get the link to the vaults.fyi page for a vault * * @param vault - The vault * @returns The link to the vaults.fyi page */ export declare function getVaultsLink(vault: Awaited<ReturnType<VaultsSdk["getVault"]>>): string; /** * Execute a list of actions * * @param wallet - The wallet provider * @param actions - The list of actions to execute * @returns nothing */ export declare function executeActions(wallet: EvmWalletProvider, actions: Awaited<ReturnType<VaultsSdk["getActions"]>>): Promise<void>; type Apy = { base: number; reward: number; total: number; }; type ApyObject = { "1day": Apy; "7day": Apy; "30day": Apy; "1hour"?: Apy; }; /** * Transform the apy object to a more readable format * * @param apy - The apy * @returns The transformed apy */ export declare function transformApyObject(apy: ApyObject): Record<string, { base: string; reward: string; total: string; }>; /** * Transform the apy to a more readable format * * @param apy - The apy * @returns The transformed apy */ export declare function transformApy(apy: Apy): { base: string; reward: string; total: string; }; /** * Transform the vault to a more readable format * * @param vault - The vault * @returns The transformed vault */ export declare function transformVault(vault: Awaited<ReturnType<VaultsSdk["getVault"]>>): { apy: Record<string, { base: string; reward: string; total: string; }>; link: string; lastUpdateTimestamp: string; address: string; network: { name: "mainnet" | "optimism" | "arbitrum" | "polygon" | "gnosis" | "base" | "unichain" | "swellchain" | "celo" | "worldchain" | "berachain" | "ink" | "bsc" | "hyperliquid" | "plasma" | "avalanche"; chainId: number; networkCaip: string; }; asset: { address: string; assetCaip: string; name: string; symbol: string; decimals: number; assetLogo?: string; assetPriceInUsd?: string; assetGroup: string; }; isTransactional: boolean; isAppFeatured: boolean; name: string; protocol: { name: string; product?: string; version?: string; protocolUrl?: string; description?: string; protocolLogo?: string; }; lendUrl?: string; description?: string; protocolVaultUrl?: string; tags: string[]; holdersData: { totalCount?: number; totalBalance?: string; topHolders?: { address: string; lpTokenBalance: string; }[]; }; tvl: { usd: string; native: string; }; rewards: { asset: { address: string; assetCaip: string; name: string; symbol: string; decimals: number; assetLogo?: string; assetPriceInUsd?: string; assetGroup: string; }; apy: { "1hour": number; "1day": number; "7day": number; "30day": number; }; }[]; score?: { vaultScore: number; vaultTvlScore: number; protocolTvlScore: number; holderScore: number; networkScore: number; assetScore: number; }; additionalIncentives?: string; curator?: { name: string; description?: string; websiteUrl?: string; }; lpToken?: { address: string; tokenCaip: string; name: string; symbol: string; decimals: number; }; childrenVaults?: { address: string; asset: { address: string; assetCaip: string; name: string; symbol: string; decimals: number; assetLogo?: string; assetPriceInUsd?: string; assetGroup: string; }; lpToken?: { address: string; tokenCaip: string; name: string; symbol: string; decimals: number; }; additionalAssets?: { address: string; assetCaip: string; name: string; symbol: string; decimals: number; assetLogo?: string; assetPriceInUsd?: string; assetGroup: string; }[]; }[]; additionalAssets?: { address: string; assetCaip: string; name: string; symbol: string; decimals: number; assetLogo?: string; assetPriceInUsd?: string; assetGroup: string; }[]; transactionalProperties?: { depositStepsType: "instant" | "complex"; redeemStepsType: "instant" | "complex"; rewardsSupported: boolean; }; warnings: string[]; }; export {};