{"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"]}