{"version":3,"file":"functions.mjs","names":["data"],"sources":["../../../src/transaction-analyzer/rules/functions.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ClientWithCoreApi, SuiClientTypes } from '@mysten/sui/client';\nimport type { TransactionAnalysisIssue } from '../analyzer.js';\nimport { createAnalyzer } from '../analyzer.js';\nimport { data } from './core.js';\n\nexport const moveFunctions = createAnalyzer({\n\tcacheKey: 'moveFunctions@1.0.0',\n\tdependencies: { data },\n\tanalyze:\n\t\t({ client }: { client: ClientWithCoreApi }) =>\n\t\tasync ({ data }) => {\n\t\t\tconst issues: TransactionAnalysisIssue[] = [];\n\n\t\t\tconst functions = new Set(\n\t\t\t\tdata.commands\n\t\t\t\t\t.filter((cmd) => cmd.$kind === 'MoveCall')\n\t\t\t\t\t.map(\n\t\t\t\t\t\t(cmd) => `${cmd.MoveCall.package}::${cmd.MoveCall.module}::${cmd.MoveCall.function}`,\n\t\t\t\t\t),\n\t\t\t);\n\n\t\t\tconst results = await Promise.all(\n\t\t\t\tArray.from(functions).map(async (functionId) => {\n\t\t\t\t\tconst [packageId, moduleName, name] = functionId.split('::');\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst res = await client.core.getMoveFunction({ packageId, moduleName, name });\n\t\t\t\t\t\treturn res.function;\n\t\t\t\t\t} catch {\n\t\t\t\t\t\tissues.push({ message: `Failed to fetch Move function: ${functionId}` });\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t);\n\n\t\t\tif (issues.length) {\n\t\t\t\treturn { issues };\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tresult: results.filter((fn): fn is SuiClientTypes.FunctionResponse => fn !== null),\n\t\t\t};\n\t\t},\n});\n"],"mappings":";;;;AAQA,MAAa,gBAAgB,eAAe;CAC3C,UAAU;CACV,cAAc,EAAE,MAAM;CACtB,UACE,EAAE,aACH,OAAO,EAAE,mBAAW;EACnB,MAAM,SAAqC,EAAE;EAE7C,MAAM,YAAY,IAAI,IACrBA,OAAK,SACH,QAAQ,QAAQ,IAAI,UAAU,WAAW,CACzC,KACC,QAAQ,GAAG,IAAI,SAAS,QAAQ,IAAI,IAAI,SAAS,OAAO,IAAI,IAAI,SAAS,WAC1E,CACF;EAED,MAAM,UAAU,MAAM,QAAQ,IAC7B,MAAM,KAAK,UAAU,CAAC,IAAI,OAAO,eAAe;GAC/C,MAAM,CAAC,WAAW,YAAY,QAAQ,WAAW,MAAM,KAAK;AAC5D,OAAI;AAEH,YADY,MAAM,OAAO,KAAK,gBAAgB;KAAE;KAAW;KAAY;KAAM,CAAC,EACnE;WACJ;AACP,WAAO,KAAK,EAAE,SAAS,kCAAkC,cAAc,CAAC;AACxE,WAAO;;IAEP,CACF;AAED,MAAI,OAAO,OACV,QAAO,EAAE,QAAQ;AAGlB,SAAO,EACN,QAAQ,QAAQ,QAAQ,OAA8C,OAAO,KAAK,EAClF;;CAEH,CAAC"}