{"version":3,"file":"coins.mjs","names":["objects","data","objectsById"],"sources":["../../../src/transaction-analyzer/rules/coins.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { Coin, objects, objectsById } from './objects.js';\nimport type { AnalyzedObject } from './objects.js';\nimport { createAnalyzer } from '../analyzer.js';\nimport { normalizeStructTag, parseStructTag } from '@mysten/sui/utils';\nimport { data } from './core.js';\n\nexport type AnalyzedCoin = AnalyzedObject & { balance: bigint; coinType: string };\n\nconst parsedCoinStruct = parseStructTag('0x2::coin::Coin<0x2::sui::SUI>');\n\nfunction isCoinObject(obj: AnalyzedObject): boolean {\n\tconst parsed = parseStructTag(obj.type);\n\treturn (\n\t\tparsed.address === parsedCoinStruct.address &&\n\t\tparsed.module === parsedCoinStruct.module &&\n\t\tparsed.name === parsedCoinStruct.name &&\n\t\tparsed.typeParams.length === 1\n\t);\n}\n\nfunction toAnalyzedCoin(obj: AnalyzedObject): AnalyzedCoin {\n\treturn {\n\t\t...obj,\n\t\tcoinType: normalizeStructTag(parseStructTag(obj.type).typeParams[0]),\n\t\tbalance: BigInt(Coin.parse(obj.content).balance),\n\t};\n}\n\nexport const coins = createAnalyzer({\n\tdependencies: { objects },\n\tanalyze:\n\t\t() =>\n\t\t({ objects }) => {\n\t\t\tconst result: Record<string, AnalyzedCoin> = {};\n\t\t\tfor (const obj of objects) {\n\t\t\t\tif (!isCoinObject(obj)) continue;\n\t\t\t\tresult[obj.objectId] = toAnalyzedCoin(obj);\n\t\t\t}\n\t\t\treturn { result };\n\t\t},\n});\n\nexport const gasCoins = createAnalyzer({\n\tdependencies: { objectsById, data },\n\tanalyze:\n\t\t() =>\n\t\t({ objectsById, data }) => {\n\t\t\tconst result: AnalyzedCoin[] = [];\n\t\t\tfor (const ref of data.gasData.payment ?? []) {\n\t\t\t\tconst obj = objectsById.get(ref.objectId);\n\t\t\t\tif (!obj) continue;\n\t\t\t\tresult.push(toAnalyzedCoin(obj));\n\t\t\t}\n\t\t\treturn { result };\n\t\t},\n});\n"],"mappings":";;;;;;AAWA,MAAM,mBAAmB,eAAe,iCAAiC;AAEzE,SAAS,aAAa,KAA8B;CACnD,MAAM,SAAS,eAAe,IAAI,KAAK;AACvC,QACC,OAAO,YAAY,iBAAiB,WACpC,OAAO,WAAW,iBAAiB,UACnC,OAAO,SAAS,iBAAiB,QACjC,OAAO,WAAW,WAAW;;AAI/B,SAAS,eAAe,KAAmC;AAC1D,QAAO;EACN,GAAG;EACH,UAAU,mBAAmB,eAAe,IAAI,KAAK,CAAC,WAAW,GAAG;EACpE,SAAS,OAAO,KAAK,MAAM,IAAI,QAAQ,CAAC,QAAQ;EAChD;;AAGF,MAAa,QAAQ,eAAe;CACnC,cAAc,EAAE,SAAS;CACzB,gBAEE,EAAE,yBAAc;EAChB,MAAM,SAAuC,EAAE;AAC/C,OAAK,MAAM,OAAOA,WAAS;AAC1B,OAAI,CAAC,aAAa,IAAI,CAAE;AACxB,UAAO,IAAI,YAAY,eAAe,IAAI;;AAE3C,SAAO,EAAE,QAAQ;;CAEnB,CAAC;AAEF,MAAa,WAAW,eAAe;CACtC,cAAc;EAAE;EAAa;EAAM;CACnC,gBAEE,EAAE,4BAAa,mBAAW;EAC1B,MAAM,SAAyB,EAAE;AACjC,OAAK,MAAM,OAAOC,OAAK,QAAQ,WAAW,EAAE,EAAE;GAC7C,MAAM,MAAMC,cAAY,IAAI,IAAI,SAAS;AACzC,OAAI,CAAC,IAAK;AACV,UAAO,KAAK,eAAe,IAAI,CAAC;;AAEjC,SAAO,EAAE,QAAQ;;CAEnB,CAAC"}