{"version":3,"file":"cleanUpRfq.mjs","sources":["../../../../../src/plugins/rfqModule/operations/cleanUpRfq.ts"],"sourcesContent":["import { createCleanUpRfqInstruction } from '@convergence-rfq/rfq';\nimport { PublicKey } from '@solana/web3.js';\n\nimport { SendAndConfirmTransactionResponse } from '../../rpcModule';\nimport { Convergence } from '../../../Convergence';\nimport {\n  Operation,\n  OperationHandler,\n  OperationScope,\n  useOperation,\n} from '../../../types';\nimport {\n  TransactionBuilder,\n  TransactionBuilderOptions,\n} from '../../../utils/TransactionBuilder';\nimport { rfqProgram } from '../program';\nimport { addComputeBudgetIxsIfNeeded } from '@/utils/helpers';\nconst Key = 'CleanUpRfqOperation' as const;\n\n/**\n * Cleans up an Rfq.\n *\n * ```ts\n *\n * const { rfq } = await convergence.rfqs.create(...);\n *\n * await convergence\n *   .rfqs()\n *   .cleanUpRfq({\n *     rfq: rfq.address\n *   });\n * ```\n *\n * @group Operations\n * @category Constructors\n */\nexport const cleanUpRfqOperation = useOperation<CleanUpRfqOperation>(Key);\n\n/**\n * @group Operations\n * @category Types\n */\nexport type CleanUpRfqOperation = Operation<\n  typeof Key,\n  CleanUpRfqInput,\n  CleanUpRfqOutput\n>;\n\n/**\n * @group Operations\n * @category Inputs\n */\nexport type CleanUpRfqInput = {\n  /** The address of the Rfq account. */\n  rfq: PublicKey;\n\n  /**\n   * The Taker of the Rfq\n   *\n   *  @defaultValue `convergence.identity().publicKey`\n   */\n  taker?: 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 CleanUpRfqOutput = {\n  /** The blockchain response from sending and confirming the transaction. */\n  response: SendAndConfirmTransactionResponse;\n};\n\n/**\n * @group Operations\n * @category Handlers\n */\nexport const cleanUpRfqOperationHandler: OperationHandler<CleanUpRfqOperation> =\n  {\n    handle: async (\n      operation: CleanUpRfqOperation,\n      convergence: Convergence,\n      scope: OperationScope\n    ): Promise<CleanUpRfqOutput> => {\n      const builder = await cleanUpRfqBuilder(\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 CleanUpRfqBuilderParams = CleanUpRfqInput;\n\n/**\n * Cancels an existing Response.\n *\n * ```ts\n * const transactionBuilder = convergence\n *   .rfqs()\n *   .builders()\n *   .cleanUpRfq();\n * ```\n *\n * @group Transaction Builders\n * @category Constructors\n */\nexport const cleanUpRfqBuilder = async (\n  convergence: Convergence,\n  params: CleanUpRfqBuilderParams,\n  options: TransactionBuilderOptions = {}\n): Promise<TransactionBuilder> => {\n  const { programs, payer = convergence.rpc().getDefaultFeePayer() } = options;\n  const { taker = convergence.identity().publicKey, rfq } = params;\n  const rfqModel = await convergence.rfqs().findRfqByAddress({\n    address: rfq,\n  });\n\n  const defaultPubkey = PublicKey.default;\n  const whitelist =\n    rfqModel.whitelist.toBase58() !== defaultPubkey.toBase58()\n      ? rfqModel.whitelist\n      : rfqProgram.address;\n  const txBuilder = TransactionBuilder.make()\n    .setFeePayer(payer)\n    .add({\n      instruction: createCleanUpRfqInstruction(\n        {\n          taker,\n          protocol: convergence.protocol().pdas().protocol(),\n          rfq,\n          whitelist,\n        },\n        convergence.programs().getRfq(programs).address\n      ),\n      signers: [],\n      key: 'cleanUpRfq',\n    });\n\n  await addComputeBudgetIxsIfNeeded(txBuilder, convergence);\n  return txBuilder;\n};\n"],"names":["Key","cleanUpRfqOperation","useOperation","cleanUpRfqOperationHandler","handle","_handle","_asyncToGenerator","_regeneratorRuntime","mark","_callee","operation","convergence","scope","builder","output","wrap","_callee$","_context","prev","next","cleanUpRfqBuilder","_objectSpread","input","sent","sendAndConfirm","confirmOptions","throwIfCanceled","abrupt","stop","_x","_x2","_x3","apply","arguments","_ref","_callee2","params","options","programs","_options$payer","payer","_params$taker","taker","rfq","rfqModel","defaultPubkey","whitelist","txBuilder","_args2","_callee2$","_context2","length","undefined","rpc","getDefaultFeePayer","identity","publicKey","rfqs","findRfqByAddress","address","PublicKey","toBase58","rfqProgram","TransactionBuilder","make","setFeePayer","add","instruction","createCleanUpRfqInstruction","protocol","pdas","getRfq","signers","key","addComputeBudgetIxsIfNeeded","_x4","_x5"],"mappings":"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"}