@coinbase/agentkit
Version:
Coinbase AgentKit core primitives
67 lines (65 loc) • 3.5 kB
JavaScript
;
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.zeroDevWalletActionProvider = exports.ZeroDevWalletActionProvider = void 0;
const wallet_providers_1 = require("../../wallet-providers");
const actionProvider_1 = require("../actionProvider");
const actionDecorator_1 = require("../actionDecorator");
const schemas_1 = require("./schemas");
const zod_1 = require("zod");
/**
* ZeroDevWalletActionProvider is an action provider for ZeroDevWalletProvider.
*
* This provider is used for any action that requires a ZeroDevWalletProvider.
*/
class ZeroDevWalletActionProvider extends actionProvider_1.ActionProvider {
/**
* Constructs a new ZeroDevWalletActionProvider.
*/
constructor() {
super("zeroDevWallet", []);
/**
* Checks if the ZeroDevWalletActionProvider supports the given network.
*
* @param network - The network to check.
* @returns True if the ZeroDevWalletActionProvider supports the network, false otherwise.
*/
this.supportsNetwork = (network) => network.protocolFamily === "evm";
}
/**
* Gets the chain abstracted balance for the wallet.
*
* @param walletProvider - The wallet provider to get the balance for.
* @param args - The arguments for the action.
* @returns The chain abstracted balance for the wallet.
*/
async getCAB(walletProvider, args) {
return walletProvider.getCAB(args);
}
}
exports.ZeroDevWalletActionProvider = ZeroDevWalletActionProvider;
__decorate([
(0, actionDecorator_1.CreateAction)({
name: "get_cab",
description: `This tool retrieves the chain abstracted balance (CAB) for specified tokens across multiple networks.
It takes the following inputs:
- tokenTickers: An array of token symbols (e.g., ["ETH", "USDC"]) to get balances for
- networks (optional): An array of network IDs to check balances on. If not provided, will check all supported networks
- networkType (optional): Filter networks by type ("mainnet" or "testnet"). If not provided, will check both types
The tool will return the aggregated balance across all specified networks for each token ticker. This is useful for getting a complete picture of a wallet's holdings across different chains in a single call.`,
schema: schemas_1.GetCABSchema,
}),
__metadata("design:type", Function),
__metadata("design:paramtypes", [wallet_providers_1.ZeroDevWalletProvider, void 0]),
__metadata("design:returntype", Promise)
], ZeroDevWalletActionProvider.prototype, "getCAB", null);
const zeroDevWalletActionProvider = () => new ZeroDevWalletActionProvider();
exports.zeroDevWalletActionProvider = zeroDevWalletActionProvider;