@coinbase/agentkit
Version:
Coinbase AgentKit core primitives
195 lines (194 loc) • 4.97 kB
TypeScript
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 {};