{"version":3,"file":"findRegisteredMintByAddress.mjs","sources":["../../../../../src/plugins/protocolModule/operations/findRegisteredMintByAddress.ts"],"sourcesContent":["import { PublicKey } from '@solana/web3.js';\n\nimport { RegisteredMint } from '../models/RegisteredMint';\nimport {\n  Operation,\n  OperationHandler,\n  OperationScope,\n  useOperation,\n} from '../../../types';\nimport { Convergence } from '../../../Convergence';\nimport { registeredMintsCache } from '../cache';\n\nconst Key = 'FindRegisteredMintByAddressOperation' as const;\n\n/**\n * Finds RegisteredMint by a given address.\n *\n * ```ts\n * const rfq = await convergence\n *   .rfqs()\n *   .findRegisteredMintByAddress({ address };\n * ```\n *\n * @group Operations\n * @category Constructors\n */\nexport const findRegisteredMintByAddressOperation =\n  useOperation<FindRegisteredMintByAddressOperation>(Key);\n\n/**\n * @group Operations\n * @category Types\n */\nexport type FindRegisteredMintByAddressOperation = Operation<\n  typeof Key,\n  FindRegisteredMintByAddressInput,\n  FindRegisteredMintByAddressOutput\n>;\n\n/**\n * @group Operations\n * @category Inputs\n */\nexport type FindRegisteredMintByAddressInput = {\n  /** The address of the RegisteredMint. */\n  address: PublicKey; // TODO rework to accept mint address instead of RegisteredMint\n};\n\n/**\n * @group Operations\n * @category Outputs\n */\nexport type FindRegisteredMintByAddressOutput = RegisteredMint;\n\n/**\n * @group Operations\n * @category Handlers\n */\nexport const findRegisteredMintByAddressOperationHandler: OperationHandler<FindRegisteredMintByAddressOperation> =\n  {\n    handle: async (\n      operation: FindRegisteredMintByAddressOperation,\n      convergence: Convergence,\n      scope: OperationScope\n    ): Promise<FindRegisteredMintByAddressOutput> => {\n      const { address } = operation.input;\n\n      const mintInfos = await registeredMintsCache.get(convergence);\n      scope.throwIfCanceled();\n\n      const mintInfo = mintInfos.find((mintInfo) =>\n        mintInfo.address.equals(address)\n      );\n      if (mintInfo === undefined) {\n        throw Error(\n          `Missing registered mint by the address ${address.toString()}`\n        );\n      }\n      return mintInfo;\n    },\n  };\n"],"names":["Key","findRegisteredMintByAddressOperation","useOperation","findRegisteredMintByAddressOperationHandler","handle","_handle","_asyncToGenerator","_regeneratorRuntime","mark","_callee","operation","convergence","scope","address","mintInfos","mintInfo","wrap","_callee$","_context","prev","next","input","registeredMintsCache","get","sent","throwIfCanceled","find","equals","undefined","Error","concat","toString","abrupt","stop","_x","_x2","_x3","apply","arguments"],"mappings":";;;;AAYA,IAAMA,GAAG,GAAG,sCAA+C,CAAA;;AAE3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACaC,oCAAoC,GAC/CC,YAAY,CAAuCF,GAAG,EAAC;;AAEzD;AACA;AACA;AACA;;AAOA;AACA;AACA;AACA;;AAMA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACO,IAAMG,2CAAmG,GAC9G;EACEC,MAAM,EAAA,YAAA;AAAA,IAAA,IAAAC,OAAA,GAAAC,iBAAA,eAAAC,mBAAA,EAAAC,CAAAA,IAAA,CAAE,SAAAC,OACNC,CAAAA,SAA+C,EAC/CC,WAAwB,EACxBC,KAAqB,EAAA;AAAA,MAAA,IAAAC,OAAA,EAAAC,SAAA,EAAAC,QAAA,CAAA;AAAA,MAAA,OAAAR,mBAAA,EAAA,CAAAS,IAAA,CAAA,SAAAC,SAAAC,QAAA,EAAA;AAAA,QAAA,OAAA,CAAA,EAAA,QAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;AAAA,UAAA,KAAA,CAAA;AAEbP,YAAAA,OAAO,GAAKH,SAAS,CAACW,KAAK,CAA3BR,OAAO,CAAA;AAAAK,YAAAA,QAAA,CAAAE,IAAA,GAAA,CAAA,CAAA;AAAA,YAAA,OAESE,oBAAoB,CAACC,GAAG,CAACZ,WAAW,CAAC,CAAA;AAAA,UAAA,KAAA,CAAA;YAAvDG,SAAS,GAAAI,QAAA,CAAAM,IAAA,CAAA;YACfZ,KAAK,CAACa,eAAe,EAAE,CAAA;AAEjBV,YAAAA,QAAQ,GAAGD,SAAS,CAACY,IAAI,CAAC,UAACX,QAAQ,EAAA;AAAA,cAAA,OACvCA,QAAQ,CAACF,OAAO,CAACc,MAAM,CAACd,OAAO,CAAC,CAAA;AAAA,aAClC,CAAC,CAAA;YAAA,IACGE,EAAAA,QAAQ,KAAKa,SAAS,CAAA,EAAA;AAAAV,cAAAA,QAAA,CAAAE,IAAA,GAAA,CAAA,CAAA;AAAA,cAAA,MAAA;AAAA,aAAA;YAAA,MAClBS,KAAK,CAAAC,yCAAAA,CAAAA,MAAA,CACiCjB,OAAO,CAACkB,QAAQ,EAAE,CAC9D,CAAC,CAAA;AAAA,UAAA,KAAA,CAAA;AAAA,YAAA,OAAAb,QAAA,CAAAc,MAAA,CAAA,QAAA,EAEIjB,QAAQ,CAAA,CAAA;AAAA,UAAA,KAAA,CAAA,CAAA;AAAA,UAAA,KAAA,KAAA;YAAA,OAAAG,QAAA,CAAAe,IAAA,EAAA,CAAA;AAAA,SAAA;AAAA,OAAA,EAAAxB,OAAA,CAAA,CAAA;KAChB,CAAA,CAAA,CAAA;AAAA,IAAA,SAAAL,MAAA8B,CAAAA,EAAA,EAAAC,GAAA,EAAAC,GAAA,EAAA;AAAA,MAAA,OAAA/B,OAAA,CAAAgC,KAAA,CAAA,IAAA,EAAAC,SAAA,CAAA,CAAA;AAAA,KAAA;AAAA,IAAA,OAAAlC,MAAA,CAAA;AAAA,GAAA,EAAA;AACH;;;;"}