{"version":3,"file":"cleanUpRfqs.cjs","sources":["../../../../../src/plugins/rfqModule/operations/cleanUpRfqs.ts"],"sourcesContent":["import { PublicKey } from '@solana/web3.js';\n\nimport { Convergence } from '../../../Convergence';\nimport {\n  Operation,\n  OperationHandler,\n  OperationScope,\n  useOperation,\n} from '../../../types';\nimport { cleanUpRfqBuilder } from './cleanUpRfq';\nimport { SendAndConfirmTransactionResponse } from '@/plugins';\n\nconst Key = 'CleanUpRfqsOperation' as const;\n\n/**\n * Cleans up Rfqs.\n *\n * ```ts\n * await convergence\n *   .rfqs()\n *   .cleanUpRfqs({\n *     rfqs: [<address>]\n *   });\n * ```\n *\n * @group Operations\n * @category Constructors\n */\nexport const cleanUpRfqsOperation = useOperation<CleanUpRfqsOperation>(Key);\n\n/**\n * @group Operations\n * @category Types\n */\nexport type CleanUpRfqsOperation = Operation<\n  typeof Key,\n  CleanUpRfqsInput,\n  CleanUpRfqsOutput\n>;\n\n/**\n * @group Operations\n * @category Inputs\n */\nexport type CleanUpRfqsInput = {\n  /** The address of the Rfq account. */\n  rfqs: PublicKey[];\n\n  /**\n   * The protocol address.\n   *\n   * @defaultValue `convergence.protocol().pdas().protocol()`\n   */\n  protocol?: PublicKey;\n};\n\n/**\n * @group Operations\n * @category Outputs\n */\nexport type CleanUpRfqsOutput = {\n  responses: SendAndConfirmTransactionResponse[];\n};\n\n/**\n * @group Operations\n * @category Handlers\n */\nexport const cleanUpRfqsOperationHandler: OperationHandler<CleanUpRfqsOperation> =\n  {\n    handle: async (\n      operation: CleanUpRfqsOperation,\n      convergence: Convergence,\n      scope: OperationScope\n    ) => {\n      const { rfqs } = operation.input;\n\n      const builders = await Promise.all(\n        rfqs.map((rfq) =>\n          cleanUpRfqBuilder(\n            convergence,\n            {\n              rfq,\n              ...operation.input,\n            },\n            scope\n          )\n        )\n      );\n\n      const lastValidBlockHeight = await convergence.rpc().getLatestBlockhash();\n      const signedTxs = await convergence\n        .identity()\n        .signAllTransactions(\n          builders.map((b) => b.toTransaction(lastValidBlockHeight))\n        );\n\n      const responses = await Promise.all(\n        signedTxs.map((signedTx) =>\n          convergence\n            .rpc()\n            .serializeAndSendTransaction(\n              signedTx,\n              lastValidBlockHeight,\n              scope.confirmOptions\n            )\n        )\n      );\n      scope.throwIfCanceled();\n\n      return { responses };\n    },\n  };\n"],"names":["Key","cleanUpRfqsOperation","useOperation","cleanUpRfqsOperationHandler","handle","_handle","_asyncToGenerator","_regeneratorRuntime","mark","_callee","operation","convergence","scope","rfqs","builders","lastValidBlockHeight","signedTxs","responses","wrap","_callee$","_context","prev","next","input","Promise","all","map","rfq","cleanUpRfqBuilder","_objectSpread","sent","rpc","getLatestBlockhash","identity","signAllTransactions","b","toTransaction","signedTx","serializeAndSendTransaction","confirmOptions","throwIfCanceled","abrupt","stop","_x","_x2","_x3","apply","arguments"],"mappings":"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"}