{"version":3,"sources":["../src/core-plugins/send-sol.ts"],"sourcesContent":["import { PublicKey } from \"@solana/web3.js\";\nimport { SystemProgram } from \"@solana/web3.js\";\nimport { parseUnits } from \"viem\";\nimport { z } from \"zod\";\nimport type { Plugin } from \"../plugins\";\nimport type { SolanaWalletClient } from \"../wallets\";\n\nexport function sendSOL(): Plugin<SolanaWalletClient> {\n    return {\n        name: \"send_sol\",\n        supportsSmartWallets: () => true,\n        supportsChain: (chain) => chain.type === \"solana\",\n        getTools: async (walletClient: SolanaWalletClient) => {\n            return [\n                {\n                    name: \"send_sol\",\n                    description: \"This {{tool}} sends SOL to an address.\",\n                    parameters: sendSOLParametersSchema,\n                    method: (parameters: z.infer<typeof sendSOLParametersSchema>) =>\n                        sendSOLMethod(walletClient, parameters),\n                },\n            ];\n        },\n    };\n}\n\nconst sendSOLParametersSchema = z.object({\n    to: z.string().describe(\"The address to send SOL to\"),\n    amount: z.string().describe(\"The amount of SOL to send\"),\n});\n\nasync function sendSOLMethod(\n    walletClient: SolanaWalletClient,\n    parameters: z.infer<typeof sendSOLParametersSchema>,\n): Promise<string> {\n    try {\n        const { to, amount } = parameters;\n\n        const senderAddress = walletClient.getAddress();\n        const lamports = parseUnits(amount, 9);\n\n        const transferInstruction = SystemProgram.transfer({\n            fromPubkey: new PublicKey(senderAddress),\n            toPubkey: new PublicKey(to),\n            lamports,\n        });\n\n        const txResult = await walletClient.sendTransaction({\n            instructions: [transferInstruction],\n        });\n\n        return txResult.hash;\n    } catch (error) {\n        throw new Error(`Failed to send SOL: ${error}`);\n    }\n}\n"],"mappings":";AAAA,SAAS,iBAAiB;AAC1B,SAAS,qBAAqB;AAC9B,SAAS,kBAAkB;AAC3B,SAAS,SAAS;AAIX,SAAS,UAAsC;AAClD,SAAO;AAAA,IACH,MAAM;AAAA,IACN,sBAAsB,MAAM;AAAA,IAC5B,eAAe,CAAC,UAAU,MAAM,SAAS;AAAA,IACzC,UAAU,OAAO,iBAAqC;AAClD,aAAO;AAAA,QACH;AAAA,UACI,MAAM;AAAA,UACN,aAAa;AAAA,UACb,YAAY;AAAA,UACZ,QAAQ,CAAC,eACL,cAAc,cAAc,UAAU;AAAA,QAC9C;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AACJ;AAEA,IAAM,0BAA0B,EAAE,OAAO;AAAA,EACrC,IAAI,EAAE,OAAO,EAAE,SAAS,4BAA4B;AAAA,EACpD,QAAQ,EAAE,OAAO,EAAE,SAAS,2BAA2B;AAC3D,CAAC;AAED,eAAe,cACX,cACA,YACe;AACf,MAAI;AACA,UAAM,EAAE,IAAI,OAAO,IAAI;AAEvB,UAAM,gBAAgB,aAAa,WAAW;AAC9C,UAAM,WAAW,WAAW,QAAQ,CAAC;AAErC,UAAM,sBAAsB,cAAc,SAAS;AAAA,MAC/C,YAAY,IAAI,UAAU,aAAa;AAAA,MACvC,UAAU,IAAI,UAAU,EAAE;AAAA,MAC1B;AAAA,IACJ,CAAC;AAED,UAAM,WAAW,MAAM,aAAa,gBAAgB;AAAA,MAChD,cAAc,CAAC,mBAAmB;AAAA,IACtC,CAAC;AAED,WAAO,SAAS;AAAA,EACpB,SAAS,OAAO;AACZ,UAAM,IAAI,MAAM,uBAAuB,KAAK,EAAE;AAAA,EAClD;AACJ;","names":[]}