{"version":3,"file":"findRfqs.cjs","sources":["../../../../../src/plugins/rfqModule/operations/findRfqs.ts"],"sourcesContent":["import { Rfq, toRfq } from '../models';\nimport { RfqGpaBuilder } from '../RfqGpaBuilder';\nimport {\n  Operation,\n  OperationHandler,\n  OperationScope,\n  PublicKey,\n  UnparsedAccount,\n  useOperation,\n} from '../../../types';\nimport { Convergence } from '../../../Convergence';\nimport { toRfqAccount } from '../accounts';\n\nconst Key = 'FindRfqsOperation' as const;\n\n/**\n * Finds all RFQs.\n *\n * ```ts\n * const rfq = await convergence\n *   .rfqs()\n *   .find();\n * ```\n *\n * @group Operations\n * @category Constructors\n */\nexport const findRfqsOperation = useOperation<FindRfqsOperation>(Key);\n\n/**\n * @group Operations\n * @category Types\n */\nexport type FindRfqsOperation = Operation<\n  typeof Key,\n  FindRfqsInput,\n  FindRfqsOutput\n>;\n\n/**\n * @group Operations\n * @category Inputs\n */\nexport type FindRfqsInput = {\n  /**\n   * Optional RFQ owner.\n   */\n  owner?: PublicKey;\n\n  /*\n   * Specifies the number of RFQs returned per interation.\n   * Defaults to 100\n   */\n  chunkSize?: number;\n};\n\n/**\n * @group Operations\n * @category Outputs\n */\nexport type FindRfqsOutput = Rfq[];\n\n/**\n * @group Operations\n * @category Handlers\n */\nexport const findRfqsOperationHandler: OperationHandler<FindRfqsOperation> = {\n  async *handle(\n    operation: FindRfqsOperation,\n    convergence: Convergence,\n    scope: OperationScope\n  ) {\n    const { programs, commitment } = scope;\n    const {\n      input: { chunkSize = 100, owner },\n    } = operation;\n\n    const rfqProgram = convergence.programs().getRfq(programs);\n    const rfqGpaBuilder = new RfqGpaBuilder(convergence, rfqProgram.address);\n\n    const unparsedAccounts: UnparsedAccount[] = [];\n    if (owner) {\n      const result = await rfqGpaBuilder.whereTaker(owner).get();\n      unparsedAccounts.push(...result);\n    } else {\n      const result = await rfqGpaBuilder.withoutData().get();\n      unparsedAccounts.push(...result);\n    }\n\n    const unparsedAddresses = unparsedAccounts.map(\n      (account) => account.publicKey\n    );\n\n    for (let i = 0; i < unparsedAddresses.length; i += chunkSize) {\n      const chunk = unparsedAddresses.slice(i, i + chunkSize);\n\n      const accounts = await convergence\n        .rpc()\n        .getMultipleAccounts(chunk, commitment);\n      yield await Promise.all(\n        accounts.map((account) => toRfq(convergence, toRfqAccount(account)))\n      );\n    }\n  },\n};\n"],"names":["Key","findRfqsOperation","useOperation","findRfqsOperationHandler","handle","operation","convergence","scope","_wrapAsyncGenerator","_regeneratorRuntime","mark","_callee","programs","commitment","_operation$input","_operation$input$chun","chunkSize","owner","rfqProgram","rfqGpaBuilder","unparsedAccounts","result","_result","unparsedAddresses","i","chunk","accounts","wrap","_callee$","_context","prev","next","input","getRfq","RfqGpaBuilder","address","_awaitAsyncGenerator","whereTaker","get","sent","push","apply","_toConsumableArray","withoutData","map","account","publicKey","length","slice","rpc","getMultipleAccounts","Promise","all","toRfq","toRfqAccount","stop"],"mappings":"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"}