{"version":3,"file":"findResponsesByOwner.mjs","sources":["../../../../../src/plugins/rfqModule/operations/findResponsesByOwner.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 = 'FindResponsesByOwnerOperation' as const;\n\n/**\n * Finds all Responses for a given maker (owner).\n *\n * ```ts\n * const rfq = await convergence\n *   .rfqs()\n *   .findResponsesByOwner({\n *     address: maker.publicKey\n *   });\n * ```\n *\n * @group Operations\n * @category Constructors\n */\nexport const findResponsesByOwnerOperation =\n  useOperation<FindResponsesByOwnerOperation>(Key);\n\n/**\n * @group Operations\n * @category Types\n */\nexport type FindResponsesByOwnerOperation = Operation<\n  typeof Key,\n  FindResponsesByOwnerInput,\n  FindResponsesByOwnerOutput\n>;\n\n/**\n * @group Operations\n * @category Inputs\n */\nexport type FindResponsesByOwnerInput = {\n  /** The address of the maker of the responses. */\n  owner: PublicKey;\n\n  /** Optional number of Responses to return per page. */\n  responsesPerPage?: number;\n\n  /** Optional number of pages to return. */\n  numPages?: number;\n};\n\n/**\n * @group Operations\n * @category Outputs\n */\nexport type FindResponsesByOwnerOutput = Response[];\n\n/**\n * @group Operations\n * @category Handlers\n */\nexport const findResponsesByOwnerOperationHandler: OperationHandler<FindResponsesByOwnerOperation> =\n  {\n    handle: async (\n      operation: FindResponsesByOwnerOperation,\n      convergence: Convergence,\n      // eslint-disable-next-line no-unused-vars\n      scope: OperationScope\n    ): Promise<FindResponsesByOwnerOutput> => {\n      const { commitment } = scope;\n      const { owner } = operation.input;\n\n      const responseGpaBuilder = new ResponseGpaBuilder(convergence);\n      const unparsedAccounts = await responseGpaBuilder\n        .withoutData()\n        .whereMaker(owner)\n        .get();\n      const unparsedAddresses = unparsedAccounts.map((acc) => acc.publicKey);\n\n      const collateralMint = await collateralMintCache.get(convergence);\n\n      const responses = [];\n\n      const callCount = Math.ceil(unparsedAddresses.length / 100);\n\n      for (let i = 0; i < callCount; i++) {\n        const accounts = await convergence\n          .rpc()\n          .getMultipleAccounts(\n            unparsedAddresses.slice(i * 100, (i + 1) * 100),\n            commitment\n          );\n\n        for (const account of accounts) {\n          const responseAccount = toResponseAccount(account);\n\n          if (responseAccount.data.maker.toBase58() !== owner.toBase58()) {\n            continue;\n          }\n\n          responses.push(\n            convergence\n              .rfqs()\n              .findRfqByAddress({ address: responseAccount.data.rfq })\n              .then((rfq) =>\n                toResponse(responseAccount, collateralMint.decimals, rfq)\n              )\n          );\n        }\n      }\n\n      return await Promise.all(responses);\n    },\n  };\n"],"names":["Key","findResponsesByOwnerOperation","useOperation","findResponsesByOwnerOperationHandler","handle","_handle","_asyncToGenerator","_regeneratorRuntime","mark","_callee","operation","convergence","scope","commitment","owner","responseGpaBuilder","unparsedAccounts","unparsedAddresses","collateralMint","responses","callCount","i","accounts","_iterator","_step","_loop","wrap","_callee$","_context2","prev","next","input","ResponseGpaBuilder","withoutData","whereMaker","get","sent","map","acc","publicKey","collateralMintCache","Math","ceil","length","rpc","getMultipleAccounts","slice","_createForOfIteratorHelper","account","responseAccount","_loop$","_context","value","toResponseAccount","data","maker","toBase58","abrupt","push","rfqs","findRfqByAddress","address","rfq","then","toResponse","decimals","stop","s","n","done","delegateYield","t0","t1","e","f","finish","Promise","all","_x","_x2","_x3","apply","arguments"],"mappings":"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"}