UNPKG

@coinbase/agentkit

Version:

Coinbase AgentKit core primitives

68 lines (67 loc) 2.97 kB
import { z } from "zod"; import { ActionProvider } from "../actionProvider"; import { EvmWalletProvider } from "../../wallet-providers"; import { Network } from "../../network"; import { CompoundSupplySchema, CompoundWithdrawSchema, CompoundBorrowSchema, CompoundRepaySchema, CompoundPortfolioSchema } from "./schemas"; /** * CompoundActionProvider is an action provider for Compound protocol interactions. */ export declare class CompoundActionProvider extends ActionProvider<EvmWalletProvider> { /** * Constructs a new CompoundActionProvider instance. */ constructor(); /** * Supplies collateral assets to Compound. * * @param wallet - The wallet instance to perform the transaction. * @param args - The input arguments including assetId and amount. * @returns A message indicating success or an error message. */ supply(wallet: EvmWalletProvider, args: z.infer<typeof CompoundSupplySchema>): Promise<string>; /** * Withdraws collateral assets from Compound. * * @param wallet - The wallet instance to perform the transaction. * @param args - The input arguments including assetId and amount. * @returns A message indicating success or an error message. */ withdraw(wallet: EvmWalletProvider, args: z.infer<typeof CompoundWithdrawSchema>): Promise<string>; /** * Borrows base assets from Compound. * * @param wallet - The wallet instance to perform the transaction. * @param args - The input arguments including assetId and amount. * @returns A message indicating success or an error message. */ borrow(wallet: EvmWalletProvider, args: z.infer<typeof CompoundBorrowSchema>): Promise<string>; /** * Repays borrowed assets to Compound. * * @param wallet - The wallet instance to perform the transaction. * @param args - The input arguments including assetId and amount. * @returns A message indicating success or an error message. */ repay(wallet: EvmWalletProvider, args: z.infer<typeof CompoundRepaySchema>): Promise<string>; /** * Retrieves portfolio details from Compound. * * @param wallet - The wallet instance to fetch portfolio details. * @param _ - No input is required for this action. * @returns A Markdown formatted string with portfolio details or an error message. */ getPortfolio(wallet: EvmWalletProvider, _: z.infer<typeof CompoundPortfolioSchema>): Promise<string>; /** * Checks if the Compound action provider supports the given network. * * @param network - The network to check. * @returns True if the network is supported, false otherwise. */ supportsNetwork: (network: Network) => boolean; } /** * Factory function to create a new instance of CompoundActionProvider. * * @returns A new CompoundActionProvider instance. */ export declare const compoundActionProvider: () => CompoundActionProvider;