UNPKG

@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 1.89 kB
{"version":3,"sources":["../src/ai/tools/suiWalletBalanceTool.ts"],"names":[],"mappings":";;;;;;AAMO,IAAM,uBAAuB,IAAK,CAAA;AAAA,EACvC,WACE,EAAA,wFAAA;AAAA,EACF,UAAY,EAAA,CAAA,CAAE,MAAO,CAAA,EAAE,CAAA;AAAA,EACvB,SAAS,MAAY,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AAGnB,IAAA,MAAM,qBAAqB,iBAAkB,EAAA;AAE7C,IAAM,MAAA,WAAA,GAAc,IAAI,WAAY,EAAA;AACpC,IAAM,MAAA,QAAA,GAAW,MAAM,WAAA,CAAY,qBAAsB,EAAA;AAGzD,IAAA,gBAAA,CAAiB,kBAAkB,CAAA;AAEnC,IAAM,MAAA,iBAAA,GAAoB,IAAI,iBAAkB,EAAA;AAChD,IAAM,MAAA,gBAAA,GAAmB,MAAM,iBAAA,CAAkB,qBAAsB,EAAA;AACvE,IAAI,IAAA,MAAA,CAAO,gBAAgB,CAAA,GAAI,CAAG,EAAA;AAChC,MAAA,QAAA,CAAS,qBAAqB,CAAI,GAAA,gBAAA;AAAA;AAGpC,IAAO,OAAA;AAAA,MACL;AAAA,KACF;AAAA,GACF;AACF,CAAC","file":"chunk-ICA6CUNG.mjs","sourcesContent":["import { tool } from 'ai'\nimport z from 'zod'\nimport { disableConsoleLog, enableConsoleLog } from '../../core/utils/utils'\nimport { NaviService } from '../../services/NaviService'\nimport { SuiStakingService } from '../../services/SuiStakingService'\n\nexport const suiWalletBalanceTool = tool({\n description:\n 'Get non-zero wallet balances. Note that the nUSDC balance should be displayed as USDC.',\n parameters: z.object({}),\n execute: async () => {\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 const balances = await naviService.getWalletNonZeroCoins()\n\n // Get the logs back.\n enableConsoleLog(originalConsoleLog)\n\n const suiStakingService = new SuiStakingService()\n const stakedSuiBalance = await suiStakingService.getTotalStakedBalance()\n if (Number(stakedSuiBalance) > 0) {\n balances['Natively Staked SUI'] = stakedSuiBalance\n }\n\n return {\n balances: balances,\n }\n },\n})\n"]}