{"version":3,"file":"utils.mjs","names":[],"sources":["../../src/links/utils.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { Transaction, TransactionObjectArgument } from '@mysten/sui/transactions';\n\n/** A claimed asset paired with its on-chain type, available for composition within a claim transaction. */\nexport interface ClaimedAsset {\n\t/** Transaction argument representing the claimed object — pass to moveCall or transferObjects. */\n\targument: TransactionObjectArgument;\n\t/** Full Move type of the object (e.g. \"0x...::record::Record\"). */\n\ttype: string;\n\t/** Object ID of the asset in the link's bag. */\n\tobjectId: string;\n}\n\nexport interface LinkAssets {\n\tbalances: {\n\t\tcoinType: string;\n\t\tamount: bigint;\n\t}[];\n\n\tnfts: {\n\t\tobjectId: string;\n\t\ttype: string;\n\t\tversion: string;\n\t\tdigest: string;\n\t}[];\n\n\tcoins: {\n\t\tobjectId: string;\n\t\ttype: string;\n\t\tversion: string;\n\t\tdigest: string;\n\t}[];\n}\n\nexport function isClaimTransaction(\n\ttx: Transaction,\n\toptions: {\n\t\tpackageId: string;\n\t},\n) {\n\tlet transfers = 0;\n\n\tfor (const command of tx.getData().commands) {\n\t\tswitch (command.$kind) {\n\t\t\tcase 'TransferObjects':\n\t\t\t\t// Ensure that we are only transferring results of a claim\n\t\t\t\tif (\n\t\t\t\t\t!command.TransferObjects.objects.every(\n\t\t\t\t\t\t(o) => o.$kind === 'Result' || o.$kind === 'NestedResult',\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\ttransfers++;\n\t\t\t\tbreak;\n\t\t\tcase 'MoveCall':\n\t\t\t\tif (command.MoveCall.package !== options.packageId) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tif (command.MoveCall.module !== 'zk_bag') {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tconst fn = command.MoveCall.function;\n\t\t\t\tif (fn !== 'init_claim' && fn !== 'reclaim' && fn !== 'claim' && fn !== 'finalize') {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn transfers === 1;\n}\n"],"mappings":";AAoCA,SAAgB,mBACf,IACA,SAGC;CACD,IAAI,YAAY;AAEhB,MAAK,MAAM,WAAW,GAAG,SAAS,CAAC,SAClC,SAAQ,QAAQ,OAAhB;EACC,KAAK;AAEJ,OACC,CAAC,QAAQ,gBAAgB,QAAQ,OAC/B,MAAM,EAAE,UAAU,YAAY,EAAE,UAAU,eAC3C,CAED,QAAO;AAER;AACA;EACD,KAAK;AACJ,OAAI,QAAQ,SAAS,YAAY,QAAQ,UACxC,QAAO;AAGR,OAAI,QAAQ,SAAS,WAAW,SAC/B,QAAO;GAER,MAAM,KAAK,QAAQ,SAAS;AAC5B,OAAI,OAAO,gBAAgB,OAAO,aAAa,OAAO,WAAW,OAAO,WACvE,QAAO;AAER;EACD,QACC,QAAO;;AAIV,QAAO,cAAc"}