{"version":3,"file":"cancelResponse.cjs","sources":["../../../../../src/plugins/rfqModule/operations/cancelResponse.ts"],"sourcesContent":["import { createCancelResponseInstruction } from '@convergence-rfq/rfq';\nimport { 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 { TransactionBuilder, TransactionBuilderOptions } from '../../../utils';\nimport { SendAndConfirmTransactionResponse } from '@/plugins';\nimport { addComputeBudgetIxsIfNeeded } from '@/utils/helpers';\n\nconst Key = 'cancelResponseOperation' as const;\n\n/**\n * Cancel multiple response.\n *\n * ```ts\n * await convergence.rfqs().cancelResponses({ responses });\n * ```\n *\n * @group Operations\n * @category Constructors\n */\nexport const cancelResponseOperation =\n  useOperation<CancelResponseOperation>(Key);\n\n/**\n * @group Operations\n * @category Types\n */\nexport type CancelResponseOperation = Operation<\n  typeof Key,\n  CancelResponseInput,\n  CancelResponseOutput\n>;\n\n/**\n * @group Operations\n * @category Inputs\n */\nexport type CancelResponseInput = {\n  /**\n   * The addresses of the reponses.\n   */\n  response: 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 CancelResponseOutput = {\n  response: SendAndConfirmTransactionResponse;\n};\n\n/**\n * @group Operations\n * @category Handlers\n */\nexport const cancelResponseOperationHandler: OperationHandler<CancelResponseOperation> =\n  {\n    handle: async (\n      operation: CancelResponseOperation,\n      convergence: Convergence,\n      scope: OperationScope\n    ) => {\n      const builder = await cancelResponseBuilder(\n        convergence,\n        {\n          ...operation.input,\n        },\n        scope\n      );\n      const output = await builder.sendAndConfirm(\n        convergence,\n        scope.confirmOptions\n      );\n      scope.throwIfCanceled();\n\n      return output;\n    },\n  };\n\n/**\n * @group Transaction Builders\n * @category Inputs\n */\nexport type CancelResponsesBuilderParams = CancelResponseInput;\n\n/**\n * Cancels an existing Response.\n *\n * ```ts\n * const builder = convergence\n *   .rfqs()\n *   .builders()\n *   .cancel({\n *     response: <publicKey>\n *   });\n * ```\n *\n * @group Transaction Builders\n * @category Constructors\n */\nexport const cancelResponseBuilder = async (\n  convergence: Convergence,\n  params: CancelResponsesBuilderParams,\n  options: TransactionBuilderOptions = {}\n) => {\n  const { programs, payer = convergence.rpc().getDefaultFeePayer() } = options;\n  const {\n    response,\n    maker = convergence.identity(),\n    protocol = convergence.protocol().pdas().protocol(),\n  } = params;\n\n  const responseModel = await convergence\n    .rfqs()\n    .findResponseByAddress({ address: response });\n\n  const txBuilder = TransactionBuilder.make()\n    .setFeePayer(payer)\n    .add({\n      instruction: createCancelResponseInstruction(\n        {\n          protocol,\n          response: responseModel.address,\n          rfq: responseModel.rfq,\n          maker: responseModel.maker,\n        },\n        convergence.programs().getRfq(programs).address\n      ),\n      signers: [maker],\n      key: 'cancelResponse',\n    });\n\n  await addComputeBudgetIxsIfNeeded(txBuilder, convergence);\n  return txBuilder;\n};\n"],"names":["Key","cancelResponseOperation","useOperation","cancelResponseOperationHandler","handle","_handle","_asyncToGenerator","_regeneratorRuntime","mark","_callee","operation","convergence","scope","builder","output","wrap","_callee$","_context","prev","next","cancelResponseBuilder","_objectSpread","input","sent","sendAndConfirm","confirmOptions","throwIfCanceled","abrupt","stop","_x","_x2","_x3","apply","arguments","_ref","_callee2","params","options","programs","_options$payer","payer","response","_params$maker","maker","_params$protocol","protocol","responseModel","txBuilder","_args2","_callee2$","_context2","length","undefined","rpc","getDefaultFeePayer","identity","pdas","rfqs","findResponseByAddress","address","TransactionBuilder","make","setFeePayer","add","instruction","createCancelResponseInstruction","rfq","getRfq","signers","key","addComputeBudgetIxsIfNeeded","_x4","_x5"],"mappings":"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"}