{"version":3,"file":"cancelResponses.cjs","sources":["../../../../../src/plugins/rfqModule/operations/cancelResponses.ts"],"sourcesContent":["import { PublicKey } from '@solana/web3.js';\n\nimport { SendAndConfirmTransactionResponse } from '../../rpcModule';\nimport { Convergence } from '../../../Convergence';\nimport {\n  Operation,\n  OperationHandler,\n  OperationScope,\n  useOperation,\n  Signer,\n} from '../../../types';\nimport { cancelResponseBuilder } from './cancelResponse';\n\nconst Key = 'cancelResponsesOperation' as const;\n\n/**\n * Cancel multiple response.\n *\n * ```ts\n * await convergence.\n *   rfqs()\n *   .cancelResponses({\n *     responses: [<publicKey>]\n * });\n * ```\n *\n * @group Operations\n * @category Constructors\n */\nexport const cancelResponsesOperation =\n  useOperation<CancelResponsesOperation>(Key);\n\n/**\n * @group Operations\n * @category Types\n */\nexport type CancelResponsesOperation = Operation<\n  typeof Key,\n  CancelResponsesInput,\n  CancelResponsesOutput\n>;\n\n/**\n * @group Operations\n * @category Inputs\n */\nexport type CancelResponsesInput = {\n  /**\n   * The addresses of the reponses.\n   */\n  responses: PublicKey[];\n\n  /**\n   * The maker as a signer.\n   *\n   * @defaultValue `convergence.identity()`\n   */\n  maker?: Signer;\n\n  /**\n   * The protocol address.\n   *\n   * @defaultValue `convergence.protocol().pdas().get()`\n   */\n  protocol?: PublicKey;\n};\n\n/**\n * @group Operations\n * @category Outputs\n */\nexport type CancelResponsesOutput = {\n  responses: SendAndConfirmTransactionResponse[];\n};\n\n/**\n * @group Operations\n * @category Handlers\n */\nexport const cancelResponsesOperationHandler: OperationHandler<CancelResponsesOperation> =\n  {\n    handle: async (\n      operation: CancelResponsesOperation,\n      convergence: Convergence,\n      scope: OperationScope\n    ) => {\n      const { responses: rfqResponses } = operation.input;\n\n      const builders = await Promise.all(\n        rfqResponses.map((response) =>\n          cancelResponseBuilder(\n            convergence,\n            {\n              response,\n              ...operation,\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","cancelResponsesOperation","useOperation","cancelResponsesOperationHandler","handle","_handle","_asyncToGenerator","_regeneratorRuntime","mark","_callee","operation","convergence","scope","rfqResponses","builders","lastValidBlockHeight","signedTxs","responses","wrap","_callee$","_context","prev","next","input","Promise","all","map","response","cancelResponseBuilder","_objectSpread","sent","rpc","getLatestBlockhash","identity","signAllTransactions","b","toTransaction","signedTx","serializeAndSendTransaction","confirmOptions","throwIfCanceled","abrupt","stop","_x","_x2","_x3","apply","arguments"],"mappings":"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"}