{"version":3,"file":"findTokenWithMintByAddress.mjs","sources":["../../../../../src/plugins/tokenModule/operations/findTokenWithMintByAddress.ts"],"sourcesContent":["import type { PublicKey } from '@solana/web3.js';\n\nimport { toMintAccount, toTokenAccount } from '../accounts';\nimport { toMint } from '../models/Mint';\nimport { TokenWithMint, toTokenWithMint } from '../models/Token';\nimport {\n  Operation,\n  OperationHandler,\n  OperationScope,\n  useOperation,\n} from '../../../types';\nimport { Convergence } from '../../../Convergence';\n\nconst Key = 'FindTokenWithMintByAddressOperation' as const;\n\n/**\n * Finds a token account and its associated mint account\n * by providing the token address.\n *\n * ```ts\n * const tokenWithMint = await convergence.tokens().findTokenWithMintByAddress({ address });\n * ```\n *\n * @group Operations\n * @category Constructors\n */\nexport const findTokenWithMintByAddressOperation =\n  useOperation<FindTokenWithMintByAddressOperation>(Key);\n\n/**\n * @group Operations\n * @category Types\n */\nexport type FindTokenWithMintByAddressOperation = Operation<\n  typeof Key,\n  FindTokenWithMintByAddressInput,\n  TokenWithMint\n>;\n\n/**\n * @group Operations\n * @category Inputs\n */\nexport type FindTokenWithMintByAddressInput = {\n  /** The address of the token account. */\n  address: PublicKey;\n};\n\n/**\n * @group Operations\n * @category Handlers\n */\nexport const findTokenWithMintByAddressOperationHandler: OperationHandler<FindTokenWithMintByAddressOperation> =\n  {\n    handle: async (\n      operation: FindTokenWithMintByAddressOperation,\n      convergence: Convergence,\n      scope: OperationScope\n    ): Promise<TokenWithMint> => {\n      const { commitment } = scope;\n      const { address } = operation.input;\n\n      const tokenAccount = toTokenAccount(\n        await convergence.rpc().getAccount(address, commitment)\n      );\n\n      const mintAccount = toMintAccount(\n        await convergence.rpc().getAccount(tokenAccount.data.mint, commitment)\n      );\n\n      return toTokenWithMint(tokenAccount, toMint(mintAccount));\n    },\n  };\n"],"names":["Key","findTokenWithMintByAddressOperation","useOperation","findTokenWithMintByAddressOperationHandler","handle","_handle","_asyncToGenerator","_regeneratorRuntime","mark","_callee","operation","convergence","scope","commitment","address","tokenAccount","mintAccount","wrap","_callee$","_context","prev","next","input","t0","toTokenAccount","rpc","getAccount","t1","sent","t2","toMintAccount","data","mint","t3","abrupt","toTokenWithMint","toMint","stop","_x","_x2","_x3","apply","arguments"],"mappings":";;;;;;AAaA,IAAMA,GAAG,GAAG,qCAA8C,CAAA;;AAE1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACaC,mCAAmC,GAC9CC,YAAY,CAAsCF,GAAG,EAAC;;AAExD;AACA;AACA;AACA;;AAOA;AACA;AACA;AACA;;AAMA;AACA;AACA;AACA;AACO,IAAMG,0CAAiG,GAC5G;EACEC,MAAM,EAAA,YAAA;AAAA,IAAA,IAAAC,OAAA,GAAAC,iBAAA,eAAAC,mBAAA,EAAAC,CAAAA,IAAA,CAAE,SAAAC,OACNC,CAAAA,SAA8C,EAC9CC,WAAwB,EACxBC,KAAqB,EAAA;AAAA,MAAA,IAAAC,UAAA,EAAAC,OAAA,EAAAC,YAAA,EAAAC,WAAA,CAAA;AAAA,MAAA,OAAAT,mBAAA,EAAA,CAAAU,IAAA,CAAA,SAAAC,SAAAC,QAAA,EAAA;AAAA,QAAA,OAAA,CAAA,EAAA,QAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;AAAA,UAAA,KAAA,CAAA;YAEbR,UAAU,GAAKD,KAAK,CAApBC,UAAU,CAAA;AACVC,YAAAA,OAAO,GAAKJ,SAAS,CAACY,KAAK,CAA3BR,OAAO,CAAA;YAAAK,QAAA,CAAAI,EAAA,GAEMC,cAAc,CAAA;AAAAL,YAAAA,QAAA,CAAAE,IAAA,GAAA,CAAA,CAAA;YAAA,OAC3BV,WAAW,CAACc,GAAG,EAAE,CAACC,UAAU,CAACZ,OAAO,EAAED,UAAU,CAAC,CAAA;AAAA,UAAA,KAAA,CAAA;AAAAM,YAAAA,QAAA,CAAAQ,EAAA,GAAAR,QAAA,CAAAS,IAAA,CAAA;AADnDb,YAAAA,YAAY,OAAAI,QAAA,CAAAI,EAAA,EAAAJ,QAAA,CAAAQ,EAAA,CAAA,CAAA;YAAAR,QAAA,CAAAU,EAAA,GAIEC,aAAa,CAAA;AAAAX,YAAAA,QAAA,CAAAE,IAAA,GAAA,EAAA,CAAA;AAAA,YAAA,OACzBV,WAAW,CAACc,GAAG,EAAE,CAACC,UAAU,CAACX,YAAY,CAACgB,IAAI,CAACC,IAAI,EAAEnB,UAAU,CAAC,CAAA;AAAA,UAAA,KAAA,EAAA;AAAAM,YAAAA,QAAA,CAAAc,EAAA,GAAAd,QAAA,CAAAS,IAAA,CAAA;AADlEZ,YAAAA,WAAW,OAAAG,QAAA,CAAAU,EAAA,EAAAV,QAAA,CAAAc,EAAA,CAAA,CAAA;AAAA,YAAA,OAAAd,QAAA,CAAAe,MAAA,CAAA,QAAA,EAIVC,eAAe,CAACpB,YAAY,EAAEqB,MAAM,CAACpB,WAAW,CAAC,CAAC,CAAA,CAAA;AAAA,UAAA,KAAA,EAAA,CAAA;AAAA,UAAA,KAAA,KAAA;YAAA,OAAAG,QAAA,CAAAkB,IAAA,EAAA,CAAA;AAAA,SAAA;AAAA,OAAA,EAAA5B,OAAA,CAAA,CAAA;KAC1D,CAAA,CAAA,CAAA;AAAA,IAAA,SAAAL,MAAAkC,CAAAA,EAAA,EAAAC,GAAA,EAAAC,GAAA,EAAA;AAAA,MAAA,OAAAnC,OAAA,CAAAoC,KAAA,CAAA,IAAA,EAAAC,SAAA,CAAA,CAAA;AAAA,KAAA;AAAA,IAAA,OAAAtC,MAAA,CAAA;AAAA,GAAA,EAAA;AACH;;;;"}