{"version":3,"sources":["../src/core-plugins/evm-send-transaction.ts"],"sourcesContent":["import { z } from \"zod\";\nimport type { Plugin } from \"../plugins\";\nimport type { Chain, EVMTransaction, EVMWalletClient } from \"../wallets\";\n\nexport function sendTransaction(): Plugin<EVMWalletClient> {\n    return {\n        name: \"EVM send transaction\",\n        supportsSmartWallets: () => true,\n        supportsChain: (chain: Chain) => chain.type === \"evm\",\n        getTools: async (walletClient: EVMWalletClient) => {\n            return [\n                {\n                    name: \"send_transaction\",\n                    description: \"This {{tool}} signs and sends an EVM transaction.\",\n                    parameters: EVMSendTransactionSchema,\n                    method: (parameters: z.infer<typeof EVMSendTransactionSchema>) => {\n                        return evmSendTransactionMethod(walletClient, parameters);\n                    },\n                },\n            ];\n        },\n    };\n}\n\nexport const EVMSendTransactionSchema = z.object({\n    to: z.string().describe(\"The address to send the transaction to\"),\n    functionName: z.string().optional().describe(\"The function name to call\"),\n    args: z.array(z.unknown()).optional().describe(\"The arguments to pass to the function\"),\n    value: z.bigint().optional().describe(\"The value to send\"),\n    abi: z.any().optional().describe(\"The ABI of the contract\"),\n    options: z\n        .object({\n            paymaster: z\n                .object({\n                    address: z.string().describe(\"The address of the paymaster\"),\n                    input: z.string().describe(\"The input for the paymaster\"),\n                })\n                .optional()\n                .describe(\"The paymaster info for the transaction\"),\n        })\n        .optional()\n        .describe(\"The options for the transaction\"),\n});\n\nexport async function evmSendTransactionMethod(\n    walletClient: EVMWalletClient,\n    transaction: z.infer<typeof EVMSendTransactionSchema>,\n): Promise<string> {\n    const txHash = await walletClient.sendTransaction(transaction as EVMTransaction);\n    return txHash.hash;\n}\n"],"mappings":";AAAA,SAAS,SAAS;AAIX,SAAS,kBAA2C;AACvD,SAAO;AAAA,IACH,MAAM;AAAA,IACN,sBAAsB,MAAM;AAAA,IAC5B,eAAe,CAAC,UAAiB,MAAM,SAAS;AAAA,IAChD,UAAU,OAAO,iBAAkC;AAC/C,aAAO;AAAA,QACH;AAAA,UACI,MAAM;AAAA,UACN,aAAa;AAAA,UACb,YAAY;AAAA,UACZ,QAAQ,CAAC,eAAyD;AAC9D,mBAAO,yBAAyB,cAAc,UAAU;AAAA,UAC5D;AAAA,QACJ;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AACJ;AAEO,IAAM,2BAA2B,EAAE,OAAO;AAAA,EAC7C,IAAI,EAAE,OAAO,EAAE,SAAS,wCAAwC;AAAA,EAChE,cAAc,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,2BAA2B;AAAA,EACxE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,SAAS,EAAE,SAAS,uCAAuC;AAAA,EACtF,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,mBAAmB;AAAA,EACzD,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,yBAAyB;AAAA,EAC1D,SAAS,EACJ,OAAO;AAAA,IACJ,WAAW,EACN,OAAO;AAAA,MACJ,SAAS,EAAE,OAAO,EAAE,SAAS,8BAA8B;AAAA,MAC3D,OAAO,EAAE,OAAO,EAAE,SAAS,6BAA6B;AAAA,IAC5D,CAAC,EACA,SAAS,EACT,SAAS,wCAAwC;AAAA,EAC1D,CAAC,EACA,SAAS,EACT,SAAS,iCAAiC;AACnD,CAAC;AAED,eAAsB,yBAClB,cACA,aACe;AACf,QAAM,SAAS,MAAM,aAAa,gBAAgB,WAA6B;AAC/E,SAAO,OAAO;AAClB;","names":[]}