{"version":3,"file":"modifyConfig.cjs","sources":["../../../../../src/plugins/spotInstrumentModule/operations/modifyConfig.ts"],"sourcesContent":["import { createModifyConfigInstruction } from '@convergence-rfq/spot-instrument';\nimport { SPOT_QUOTE_FEE_BPS } from '../constants';\nimport { Convergence } from '@/Convergence';\nimport {\n  Operation,\n  OperationHandler,\n  OperationScope,\n  makeConfirmOptionsFinalizedOnMainnet,\n  useOperation,\n} from '@/types';\nimport { SendAndConfirmTransactionResponse } from '@/plugins';\nimport {\n  TransactionBuilder,\n  TransactionBuilderOptions,\n  addDecimals,\n} from '@/utils';\n\nconst Key = 'ModifySpotInstrumentConfig' as const;\n\nexport const modifySpotInstrumentConfigOperation =\n  useOperation<ModifySpotInstrumentConfigOperation>(Key);\n\n/**\n * @group Operations\n * @category Types\n */\nexport type ModifySpotInstrumentConfigOperation = Operation<\n  typeof Key,\n  ModifySpotInstrumentConfigInput,\n  ModifySpotInstrumentConfigOutput\n>;\n\n/**\n * @group Operations\n * @category Inputs\n */\nexport type ModifySpotInstrumentConfigInput = {\n  feeBps: number;\n};\n\n/**\n * @group Operations\n * @category Outputs\n */\nexport type ModifySpotInstrumentConfigOutput =\n  SendAndConfirmTransactionResponse;\n\n/**\n * @group Operations\n * @category Handlers\n */\nexport const modifySpotInstrumentConfigOperationHandler: OperationHandler<ModifySpotInstrumentConfigOperation> =\n  {\n    handle: async (\n      operation: ModifySpotInstrumentConfigOperation,\n      cvg: Convergence,\n      scope: OperationScope\n    ): Promise<ModifySpotInstrumentConfigOutput> => {\n      const builder = await modifySpotInstrumentBuilder(\n        cvg,\n        operation.input,\n        scope\n      );\n      scope.throwIfCanceled();\n\n      const confirmOptions = makeConfirmOptionsFinalizedOnMainnet(\n        cvg,\n        scope.confirmOptions\n      );\n      const output = await builder.sendAndConfirm(cvg, confirmOptions);\n      scope.throwIfCanceled();\n      return output.response;\n    },\n  };\n\nexport const modifySpotInstrumentBuilder = async (\n  cvg: Convergence,\n  params: ModifySpotInstrumentConfigInput,\n  options: TransactionBuilderOptions = {}\n): Promise<TransactionBuilder<{}>> => {\n  const { feeBps } = params;\n  const { payer = cvg.rpc().getDefaultFeePayer() } = options;\n\n  const spotProgram = cvg.programs().getSpotInstrument();\n\n  const protocol = cvg.protocol().pdas().protocol();\n  const config = cvg.spotInstrument().pdas().config();\n\n  return TransactionBuilder.make<{}>()\n    .setFeePayer(payer)\n    .add({\n      instruction: createModifyConfigInstruction(\n        {\n          protocol,\n          authority: cvg.identity().publicKey,\n          config,\n        },\n        {\n          feeBps: addDecimals(feeBps, SPOT_QUOTE_FEE_BPS),\n        },\n        spotProgram.address\n      ),\n      signers: [payer],\n      key: 'ModifySpotInstrumentConfig',\n    });\n};\n"],"names":["Key","modifySpotInstrumentConfigOperation","useOperation","modifySpotInstrumentConfigOperationHandler","handle","_handle","_asyncToGenerator","_regeneratorRuntime","mark","_callee","operation","cvg","scope","builder","confirmOptions","output","wrap","_callee$","_context","prev","next","modifySpotInstrumentBuilder","input","sent","throwIfCanceled","makeConfirmOptionsFinalizedOnMainnet","sendAndConfirm","abrupt","response","stop","_x","_x2","_x3","apply","arguments","_ref","_callee2","params","options","feeBps","_options$payer","payer","spotProgram","protocol","config","_args2","_callee2$","_context2","length","undefined","rpc","getDefaultFeePayer","programs","getSpotInstrument","pdas","spotInstrument","TransactionBuilder","make","setFeePayer","add","instruction","createModifyConfigInstruction","authority","identity","publicKey","addDecimals","SPOT_QUOTE_FEE_BPS","address","signers","key","_x4","_x5"],"mappings":"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"}