@coinbase/agentkit
Version:
Coinbase AgentKit core primitives
68 lines (67 loc) • 2.97 kB
TypeScript
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;