{"version":3,"file":"cleanupWhitelist.mjs","sources":["../../../../../src/plugins/whitelistModule/operations/cleanupWhitelist.ts"],"sourcesContent":["import { createCleanUpWhitelistInstruction } from '@convergence-rfq/rfq';\nimport { PublicKey, Signer } from '@solana/web3.js';\n\nimport {\n  Operation,\n  OperationHandler,\n  OperationScope,\n  makeConfirmOptionsFinalizedOnMainnet,\n  useOperation,\n} from '../../../types';\nimport { SendAndConfirmTransactionResponse } from '@/plugins/rpcModule';\nimport { Convergence } from '@/Convergence';\nimport {\n  TransactionBuilder,\n  TransactionBuilderOptions,\n} from '@/utils/TransactionBuilder';\nimport { addComputeBudgetIxsIfNeeded } from '@/utils/helpers';\n\nconst Key = 'CleanUpWhitelistOperation' as const;\n\n/**\n * close a whitelist account.\n *\n * ```ts\n * await convergence\n *   .whitelist()\n *   .cleanUpWhitelist({\n *      creator?: Signer;\n *      whitelist: PublicKey;\n *   });\n * ```\n *\n * @group Operations\n * @category Constructors\n */\nexport const cleanUpWhitelistOperation =\n  useOperation<CleanUpWhitelistOperation>(Key);\n\n/**\n * @group Operations\n * @category Types\n */\nexport type CleanUpWhitelistOperation = Operation<\n  typeof Key,\n  CleanUpWhitelistInput,\n  CleanUpWhitelistOutput\n>;\n\n/**\n * @group Operations\n * @category Inputs\n */\nexport type CleanUpWhitelistInput = {\n  creator?: Signer;\n  whitelist: PublicKey;\n};\n\n/**\n * @group Operations\n * @category Outputs\n */\nexport type CleanUpWhitelistOutput = {\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 cleanUpWhitelistOperationHandler: OperationHandler<CleanUpWhitelistOperation> =\n  {\n    handle: async (\n      operation: CleanUpWhitelistOperation,\n      convergence: Convergence,\n      scope: OperationScope\n    ): Promise<CleanUpWhitelistOutput> => {\n      const { whitelist } = operation.input;\n      const builder = await cleanUpWhitelistBuilder(\n        convergence,\n        {\n          whitelist,\n        },\n        scope\n      );\n\n      const confirmOptions = makeConfirmOptionsFinalizedOnMainnet(\n        convergence,\n        scope.confirmOptions\n      );\n      const { response } = await builder.sendAndConfirm(\n        convergence,\n        confirmOptions\n      );\n      scope.throwIfCanceled();\n      return { response };\n    },\n  };\n\n/**\n * @group Transaction Builders\n * @category Inputs\n */\nexport type CleanUpWhitelistBuilderParams = CleanUpWhitelistInput & {\n  whitelist: PublicKey;\n};\n\n/**\n * @group Transaction Builders\n * @category Outputs\n */\n\nexport type CleanUpWhitelistBuilderResult = TransactionBuilder;\n\nexport const cleanUpWhitelistBuilder = async (\n  convergence: Convergence,\n  params: CleanUpWhitelistBuilderParams,\n  options: TransactionBuilderOptions = {}\n): Promise<CleanUpWhitelistBuilderResult> => {\n  const { programs, payer = convergence.rpc().getDefaultFeePayer() } = options;\n\n  const { creator = convergence.identity(), whitelist } = params;\n\n  const systemProgram = convergence.programs().getSystem(programs);\n  const rfqProgram = convergence.programs().getRfq(programs);\n\n  const txBuilder = TransactionBuilder.make()\n    .setFeePayer(payer)\n    .add({\n      instruction: createCleanUpWhitelistInstruction(\n        {\n          creator: creator.publicKey,\n          whitelistAccount: whitelist,\n          systemProgram: systemProgram.address,\n        },\n\n        rfqProgram.address\n      ),\n      signers: [creator],\n      key: 'CleanUpWhitelist',\n    });\n\n  await addComputeBudgetIxsIfNeeded(txBuilder, convergence);\n\n  return txBuilder;\n};\n"],"names":["Key","cleanUpWhitelistOperation","useOperation","cleanUpWhitelistOperationHandler","handle","_handle","_asyncToGenerator","_regeneratorRuntime","mark","_callee","operation","convergence","scope","whitelist","builder","confirmOptions","_yield$builder$sendAn","response","wrap","_callee$","_context","prev","next","input","cleanUpWhitelistBuilder","sent","makeConfirmOptionsFinalizedOnMainnet","sendAndConfirm","throwIfCanceled","abrupt","stop","_x","_x2","_x3","apply","arguments","_ref","_callee2","params","options","programs","_options$payer","payer","_params$creator","creator","systemProgram","rfqProgram","txBuilder","_args2","_callee2$","_context2","length","undefined","rpc","getDefaultFeePayer","identity","getSystem","getRfq","TransactionBuilder","make","setFeePayer","add","instruction","createCleanUpWhitelistInstruction","publicKey","whitelistAccount","address","signers","key","addComputeBudgetIxsIfNeeded","_x4","_x5"],"mappings":"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"}