{"version":3,"file":"initializeConfig.mjs","sources":["../../../../../src/plugins/spotInstrumentModule/operations/initializeConfig.ts"],"sourcesContent":["import { createInitializeConfigInstruction } 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 = 'InitializeSpotInstrumentConfig' as const;\n\nexport const initializeSpotInstrumentConfigOperation =\n  useOperation<InitializeSpotInstrumentConfigOperation>(Key);\n\n/**\n * @group Operations\n * @category Types\n */\nexport type InitializeSpotInstrumentConfigOperation = Operation<\n  typeof Key,\n  InitializeSpotInstrumentConfigInput,\n  InitializeSpotInstrumentConfigOutput\n>;\n\n/**\n * @group Operations\n * @category Inputs\n */\nexport type InitializeSpotInstrumentConfigInput = {\n  feeBps: number;\n};\n\n/**\n * @group Operations\n * @category Outputs\n */\nexport type InitializeSpotInstrumentConfigOutput =\n  SendAndConfirmTransactionResponse;\n\n/**\n * @group Operations\n * @category Handlers\n */\nexport const initializeSpotInstrumentConfigOperationHandler: OperationHandler<InitializeSpotInstrumentConfigOperation> =\n  {\n    handle: async (\n      operation: InitializeSpotInstrumentConfigOperation,\n      cvg: Convergence,\n      scope: OperationScope\n    ): Promise<InitializeSpotInstrumentConfigOutput> => {\n      const builder = await initializeSpotInstrumentConfigBuilder(\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 initializeSpotInstrumentConfigBuilder = async (\n  cvg: Convergence,\n  params: InitializeSpotInstrumentConfigInput,\n  options: TransactionBuilderOptions = {}\n): Promise<TransactionBuilder<{}>> => {\n  const { feeBps } = params;\n  const { programs, payer = cvg.rpc().getDefaultFeePayer() } = options;\n\n  const spotInstrumentProgram = cvg.programs().getSpotInstrument();\n  const systemProgram = cvg.programs().getSystem(programs);\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: createInitializeConfigInstruction(\n        {\n          protocol,\n          authority: cvg.identity().publicKey,\n          config,\n          systemProgram: systemProgram.address,\n        },\n        {\n          feeBps: addDecimals(feeBps, SPOT_QUOTE_FEE_BPS),\n        },\n        spotInstrumentProgram.address\n      ),\n      signers: [payer],\n      key: 'initializeSpotInstrumentConfig',\n    });\n};\n"],"names":["Key","initializeSpotInstrumentConfigOperation","useOperation","initializeSpotInstrumentConfigOperationHandler","handle","_handle","_asyncToGenerator","_regeneratorRuntime","mark","_callee","operation","cvg","scope","builder","confirmOptions","output","wrap","_callee$","_context","prev","next","initializeSpotInstrumentConfigBuilder","input","sent","throwIfCanceled","makeConfirmOptionsFinalizedOnMainnet","sendAndConfirm","abrupt","response","stop","_x","_x2","_x3","apply","arguments","_ref","_callee2","params","options","feeBps","programs","_options$payer","payer","spotInstrumentProgram","systemProgram","protocol","config","_args2","_callee2$","_context2","length","undefined","rpc","getDefaultFeePayer","getSpotInstrument","getSystem","pdas","spotInstrument","TransactionBuilder","make","setFeePayer","add","instruction","createInitializeConfigInstruction","authority","identity","publicKey","address","addDecimals","SPOT_QUOTE_FEE_BPS","signers","key","_x4","_x5"],"mappings":"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"}