{"version":3,"file":"findResponsesByRfq.cjs","sources":["../../../../../src/plugins/rfqModule/operations/findResponsesByRfq.ts"],"sourcesContent":["import { PublicKey } from '@solana/web3.js';\n\nimport { Response, toResponse } from '../models/Response';\nimport { toResponseAccount } from '../accounts';\nimport { ResponseGpaBuilder } from '../ResponseGpaBuilder';\nimport {\n  Operation,\n  OperationHandler,\n  OperationScope,\n  useOperation,\n} from '../../../types';\nimport { Convergence } from '../../../Convergence';\nimport { collateralMintCache } from '../../collateralModule';\n\nconst Key = 'FindResponsesByRfqOperation' as const;\n\n/**\n * Finds Responses for a given RFQ address.\n *\n * ```ts\n * const rfq = await convergence.rfqs().findResponsesByRfq({ address });\n * ```\n *\n * @group Operations\n * @category Constructors\n */\nexport const findResponsesByRfqOperation =\n  useOperation<FindResponsesByRfqOperation>(Key);\n\n/**\n * @group Operations\n * @category Types\n */\nexport type FindResponsesByRfqOperation = Operation<\n  typeof Key,\n  FindResponsesByRfqInput,\n  FindResponsesByRfqOutput\n>;\n\n/**\n * @group Operations\n * @category Inputs\n */\nexport type FindResponsesByRfqInput = {\n  /** The address of the Rfq. */\n  address: PublicKey;\n};\n\n/**\n * @group Operations\n * @category Outputs\n */\nexport type FindResponsesByRfqOutput = Response[];\n\n/**\n * @group Operations\n * @category Handlers\n */\nexport const findResponsesByRfqOperationHandler: OperationHandler<FindResponsesByRfqOperation> =\n  {\n    handle: async (\n      operation: FindResponsesByRfqOperation,\n      convergence: Convergence,\n      scope: OperationScope\n    ): Promise<FindResponsesByRfqOutput> => {\n      const { commitment } = scope;\n      const { address } = operation.input;\n\n      const responseGpaBuilder = new ResponseGpaBuilder(convergence);\n      const unparsedAccounts = await responseGpaBuilder\n        .withoutData()\n        .whereRfq(address)\n        .get();\n      const responseAddresses = unparsedAccounts.map((acc) => acc.publicKey);\n\n      const rfq = await convergence.rfqs().findRfqByAddress({ address });\n      const collateralMint = await collateralMintCache.get(convergence);\n\n      const responses: Response[] = [];\n\n      for (let i = 0; i < Math.ceil(responseAddresses.length / 100); i++) {\n        const accounts = await convergence\n          .rpc()\n          .getMultipleAccounts(\n            responseAddresses.slice(i * 100, (i + 1) * 100),\n            commitment\n          );\n\n        for (const account of accounts) {\n          responses.push(\n            toResponse(toResponseAccount(account), collateralMint.decimals, rfq)\n          );\n        }\n      }\n\n      return responses;\n    },\n  };\n"],"names":["Key","findResponsesByRfqOperation","useOperation","findResponsesByRfqOperationHandler","handle","_handle","_asyncToGenerator","_regeneratorRuntime","mark","_callee","operation","convergence","scope","commitment","address","responseGpaBuilder","unparsedAccounts","responseAddresses","rfq","collateralMint","responses","i","accounts","_iterator","_step","account","wrap","_callee$","_context","prev","next","input","ResponseGpaBuilder","withoutData","whereRfq","get","sent","map","acc","publicKey","rfqs","findRfqByAddress","collateralMintCache","Math","ceil","length","rpc","getMultipleAccounts","slice","_createForOfIteratorHelper","s","n","done","value","push","toResponse","toResponseAccount","decimals","err","e","f","abrupt","stop","_x","_x2","_x3","apply","arguments"],"mappings":"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"}