@suiware/ai-tools
Version:
Pluggable tools for Vercel AI SDK which allow AI assistants to interact with Sui Network and perform various actions.
1 lines • 2.78 kB
Source Map (JSON)
{"version":3,"sources":["../src/ai/tools/suiTransferTool.ts"],"names":[],"mappings":";;;;;AAOO,IAAM,kBAAkB,IAAK,CAAA;AAAA,EAClC,WACE,EAAA,oEAAA;AAAA,EACF,UAAA,EAAY,EAAE,MAAO,CAAA;AAAA,IACnB,IAAA,EAAM,CACH,CAAA,MAAA,EACA,CAAA,MAAA,CAAO,CAAC,KAAkB,KAAA,WAAA,CAAY,eAAgB,CAAA,KAAK,CAAG,EAAA;AAAA,MAC7D,OAAS,EAAA;AAAA,KACV,CACA,CAAA,QAAA;AAAA,MACC;AAAA,KACF;AAAA,IACF,MAAQ,EAAA,CAAA,CAAE,MAAO,EAAA,CAAE,SAAS,mBAAmB,CAAA;AAAA,IAC/C,OAAA,EAAS,CACN,CAAA,MAAA,EACA,CAAA,MAAA;AAAA,MACC,CAAC,UACC,UAAW,CAAA,iBAAA,CAAkB,KAAK,CAClC,IAAA,YAAA,CAAa,iBAAiB,KAAK,CAAA;AAAA,MACrC,EAAE,SAAS,qBAAsB;AAAA,KAElC,CAAA,QAAA;AAAA,MACC;AAAA;AACF,GACH,CAAA;AAAA,EACD,OAAA,EAAS,CAAO,EAAA,KAA8B,OAA9B,CAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAA8B,WAA9B,EAAE,IAAA,EAAM,MAAQ,EAAA,OAAA,EAAc,EAAA;AAG5C,IAAA,MAAM,qBAAqB,iBAAkB,EAAA;AAE7C,IAAM,MAAA,WAAA,GAAc,IAAI,WAAY,EAAA;AAEpC,IAAM,MAAA,QAAA,GAAW,MAAM,WAAY,CAAA,QAAA;AAAA,MACjC,IAAA;AAAA,MACA,OAAA;AAAA,MACA;AAAA,KACF;AAGA,IAAA,gBAAA,CAAiB,kBAAkB,CAAA;AAEnC,IAAO,OAAA;AAAA,MACL,MAAQ,EAAA;AAAA,KACV;AAAA,GACF;AACF,CAAC","file":"chunk-AW62QHE5.mjs","sourcesContent":["import { tool } from 'ai'\nimport z from 'zod'\nimport { disableConsoleLog, enableConsoleLog } from '../../core/utils/utils'\nimport { NaviService } from '../../services/NaviService'\nimport { SuiService } from '../../services/SuiService'\nimport { SuinsService } from '../../services/SuinsService'\n\nexport const suiTransferTool = tool({\n description:\n 'Transfer the amount of the specified coin to the specified address',\n parameters: z.object({\n coin: z\n .string()\n .refine((value: string) => NaviService.isSupportedCoin(value), {\n message: 'The coin not supported',\n })\n .describe(\n 'The target address. Suins names starting with @ or ending with .sui are supported.'\n ),\n amount: z.number().describe('The amount of SUI'),\n address: z\n .string()\n .refine(\n (value: string) =>\n SuiService.isValidSuiAddress(value) ||\n SuinsService.isValidSuinsName(value),\n { message: 'Invalid Sui address' }\n )\n .describe(\n 'The target address. Suins names starting with @ or ending with .sui are supported.'\n ),\n }),\n execute: async ({ coin, amount, address }) => {\n // We need to suppress the Navi's console log messages to prevent polluting the output.\n // See https://github.com/naviprotocol/navi-sdk/issues/82\n const originalConsoleLog = disableConsoleLog()\n\n const naviService = new NaviService()\n\n const txDigest = await naviService.transfer(\n coin,\n address as `0x{string}`,\n amount\n )\n\n // Get the logs back.\n enableConsoleLog(originalConsoleLog)\n\n return {\n digest: txDigest,\n }\n },\n})\n"]}