{"version":3,"file":"findVaults.mjs","sources":["../../../../../src/plugins/vaultOperatorModule/operations/findVaults.ts"],"sourcesContent":["import { PublicKey } from '@solana/web3.js';\n\nimport { VaultParameters, toVaultParams } from '../models';\nimport { toVaultParamsAccount } from '../accounts';\n\nimport {\n  Operation,\n  OperationHandler,\n  OperationScope,\n  useOperation,\n} from '../../../types';\nimport { Convergence } from '../../../Convergence';\nimport { VaultGpaBuilder } from '../gpa';\nimport { EscrowRfq, toRfq, toRfqAccount } from '@/plugins/rfqModule';\n\nconst Key = 'FindVaultsOperation' as const;\n\nexport const findVaultsOperation = useOperation<FindVaultsOperation>(Key);\n\nexport type FindVaultsOperation = Operation<\n  typeof Key,\n  FindVaultsInput,\n  FindVaultsOutput\n>;\n\nexport type FindVaultsInput = {\n  creator?: PublicKey;\n  // Defaults to 100\n  chunkSize?: number;\n};\n\nexport type FindVaultsOutput = {\n  vault: VaultParameters;\n  rfq: EscrowRfq;\n}[];\n\n/**\n * @group Operations\n * @category Handlers\n */\nexport const findVaultsOperationHandler: OperationHandler<FindVaultsOperation> =\n  {\n    async handle(\n      operation: FindVaultsOperation,\n      cvg: Convergence,\n      scope: OperationScope\n    ) {\n      const { commitment } = scope;\n      const { creator, chunkSize = 100 } = operation.input;\n\n      scope.throwIfCanceled();\n\n      const rfqGpaBuilder = new VaultGpaBuilder(cvg)\n        .whereTokensWithdrawn(false)\n        .withoutData();\n      if (creator !== undefined) {\n        rfqGpaBuilder.whereCreator(creator);\n      }\n\n      const unparsedAccounts = await rfqGpaBuilder.get();\n      const unparsedAddresses = unparsedAccounts.map(\n        (account) => account.publicKey\n      );\n\n      const result = [];\n\n      for (let i = 0; i < unparsedAddresses.length; i += chunkSize) {\n        const chunk = unparsedAddresses.slice(i, i + chunkSize);\n\n        const vaultRawAccounts = await cvg\n          .rpc()\n          .getMultipleAccounts(chunk, commitment);\n        const vaultSolitaAccounts = await Promise.all(\n          vaultRawAccounts.map((account) => toVaultParamsAccount(account))\n        );\n        const rfqAddresses = vaultSolitaAccounts.map(\n          (account) => account.data.rfq\n        );\n        const rfqRawAccounts = await cvg\n          .rpc()\n          .getMultipleAccounts(rfqAddresses, commitment);\n        const rfqs = await Promise.all(\n          rfqRawAccounts.map((account) => toRfq(cvg, toRfqAccount(account)))\n        );\n\n        const vaultRfqPairs = vaultSolitaAccounts.map((solVault, index) => {\n          const rfq = rfqs[index];\n          if (rfq.model !== 'escrowRfq') {\n            throw new Error('Unexpected rfq type');\n          }\n\n          const vault = toVaultParams(solVault, rfq);\n          return { vault, rfq };\n        });\n\n        result.push(...vaultRfqPairs);\n      }\n\n      return result;\n    },\n  };\n"],"names":["Key","findVaultsOperation","useOperation","findVaultsOperationHandler","handle","operation","cvg","scope","_asyncToGenerator","_regeneratorRuntime","mark","_callee","commitment","_operation$input","creator","_operation$input$chun","chunkSize","rfqGpaBuilder","unparsedAccounts","unparsedAddresses","result","_loop","i","wrap","_callee$","_context2","prev","next","input","throwIfCanceled","VaultGpaBuilder","whereTokensWithdrawn","withoutData","undefined","whereCreator","get","sent","map","account","publicKey","chunk","vaultRawAccounts","vaultSolitaAccounts","rfqAddresses","rfqRawAccounts","rfqs","vaultRfqPairs","_loop$","_context","slice","rpc","getMultipleAccounts","Promise","all","toVaultParamsAccount","data","rfq","toRfq","toRfqAccount","solVault","index","model","Error","vault","toVaultParams","push","apply","_toConsumableArray","stop","length","delegateYield","abrupt"],"mappings":"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"}