{"version":3,"file":"cancelRfqs.mjs","sources":["../../../../../src/plugins/rfqModule/operations/cancelRfqs.ts"],"sourcesContent":["import { PublicKey } from '@solana/web3.js';\n\nimport { Convergence } from '../../../Convergence';\nimport {\n  Operation,\n  OperationHandler,\n  OperationScope,\n  useOperation,\n  Signer,\n} from '../../../types';\nimport { cancelRfqBuilder } from './cancelRfq';\nimport { SendAndConfirmTransactionResponse } from '@/plugins';\n\nconst Key = 'CancelRfqsOperation' as const;\n\n/**\n * Cancels existing Rfqs.\n *\n * ```ts\n *\n * await convergence\n *   .rfqs()\n *   .cancelRfqs({ rfqs: [<publicKey>] });\n * ```\n *\n * @group Operations\n * @category Constructors\n */\nexport const cancelRfqsOperation = useOperation<CancelRfqsOperation>(Key);\n\n/**\n * @group Operations\n * @category Types\n */\nexport type CancelRfqsOperation = Operation<\n  typeof Key,\n  CancelRfqsInput,\n  CancelRfqsOutput\n>;\n\n/**\n * @group Operations\n * @category Inputs\n */\nexport type CancelRfqsInput = {\n  /** The address of the Rfq account. */\n  rfqs: PublicKey[];\n\n  /**\n   * The Taker of the Rfq as a Signer.\n   *\n   * @defaultValue `convergence.identity()`\n   */\n  taker?: Signer;\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 CancelRfqsOutput = {\n  responses: SendAndConfirmTransactionResponse[];\n};\n\n/**\n * @group Operations\n * @category Handlers\n */\nexport const cancelRfqsOperationHandler: OperationHandler<CancelRfqsOperation> =\n  {\n    handle: async (\n      operation: CancelRfqsOperation,\n      convergence: Convergence,\n      scope: OperationScope\n    ) => {\n      const { rfqs } = operation.input;\n\n      const builders = await Promise.all(\n        rfqs.map((rfq) =>\n          cancelRfqBuilder(convergence, { rfq, ...operation.input }, scope)\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","cancelRfqsOperation","useOperation","cancelRfqsOperationHandler","handle","_handle","_asyncToGenerator","_regeneratorRuntime","mark","_callee","operation","convergence","scope","rfqs","builders","lastValidBlockHeight","signedTxs","responses","wrap","_callee$","_context","prev","next","input","Promise","all","map","rfq","cancelRfqBuilder","_objectSpread","sent","rpc","getLatestBlockhash","identity","signAllTransactions","b","toTransaction","signedTx","serializeAndSendTransaction","confirmOptions","throwIfCanceled","abrupt","stop","_x","_x2","_x3","apply","arguments"],"mappings":"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"}