{"version":3,"file":"initializeOperatorPrintTradeProvider.cjs","sources":["../../../../../src/plugins/hxroPrintTradeProviderModule/operations/initializeOperatorPrintTradeProvider.ts"],"sourcesContent":["import { createInitializeOperatorTraderRiskGroupInstruction } from '@convergence-rfq/hxro-print-trade-provider';\nimport { Keypair, PublicKey, SystemProgram } from '@solana/web3.js';\nimport dexterity from '@hxronetwork/dexterity-ts';\nimport { fetchValidHxroMpg } from '../helpers';\nimport { hxroManifestCache } from '../cache';\nimport { Convergence } from '@/Convergence';\nimport {\n  Operation,\n  OperationHandler,\n  OperationScope,\n  makeConfirmOptionsFinalizedOnMainnet,\n  useOperation,\n} from '@/types';\nimport { SendAndConfirmTransactionResponse } from '@/plugins';\nimport { TransactionBuilder, TransactionBuilderOptions } from '@/utils';\n\nconst Key = 'InitializeOperatorTraderRiskGroup' as const;\n\nexport const initializeOperatorTraderRiskGroupOperation =\n  useOperation<InitializeOperatorTraderRiskGroupOperation>(Key);\n\n/**\n * @group Operations\n * @category Types\n */\nexport type InitializeOperatorTraderRiskGroupOperation = Operation<\n  typeof Key,\n  InitializeOperatorTraderRiskGroupInput,\n  InitializeOperatorTraderRiskGroupOutput\n>;\n\n/**\n * @group Operations\n * @category Inputs\n */\nexport type InitializeOperatorTraderRiskGroupInput = {\n  // Optional keypair which would be used as an account for trg\n  // A new account would be generated otherwise\n  trgAccount?: Keypair;\n\n  // Optional keypair which would be used as an account for trg risk state\n  // A new account would be generated otherwise\n  riskStateAccount?: Keypair;\n\n  // Allows overriding a hxro risk engine address compared to SDK\n  // This is used primarily in tests\n  hxroRiskEngineAddress?: PublicKey;\n};\n\n/**\n * @group Operations\n * @category Outputs\n */\nexport type InitializeOperatorTraderRiskGroupOutput =\n  SendAndConfirmTransactionResponse;\n\n/**\n * @group Operations\n * @category Handlers\n */\nexport const initializeOperatorTraderRiskGroupOperationHandler: OperationHandler<InitializeOperatorTraderRiskGroupOperation> =\n  {\n    handle: async (\n      operation: InitializeOperatorTraderRiskGroupOperation,\n      cvg: Convergence,\n      scope: OperationScope\n    ): Promise<InitializeOperatorTraderRiskGroupOutput> => {\n      const builder = await initializeOperatorTraderRiskGroupBuilder(\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 initializeOperatorTraderRiskGroupBuilder = async (\n  cvg: Convergence,\n  params: InitializeOperatorTraderRiskGroupInput,\n  options: TransactionBuilderOptions = {}\n): Promise<TransactionBuilder<{}>> => {\n  const {\n    trgAccount = new Keypair(),\n    riskStateAccount = new Keypair(),\n    hxroRiskEngineAddress,\n  } = params;\n  const { programs, payer = cvg.rpc().getDefaultFeePayer() } = options;\n\n  const manifest = await hxroManifestCache.get(cvg);\n  const hxroPrintTradeProviderProgram = cvg\n    .programs()\n    .getHxroPrintTradeProvider();\n  const systemProgram = cvg.programs().getSystem(programs);\n\n  const { dexProgram } = manifest.fields;\n  const {\n    pubkey: mpgAddress,\n    feeModelProgramId,\n    feeModelConfigurationAcct,\n  } = await fetchValidHxroMpg(cvg, manifest);\n  const [traderFeeStateAcct] = PublicKey.findProgramAddressSync(\n    [\n      mpgAddress.toBuffer(),\n      trgAccount.publicKey.toBuffer(),\n      feeModelConfigurationAcct.toBuffer(),\n    ],\n    feeModelProgramId\n  );\n\n  const riskEngineProgram =\n    hxroRiskEngineAddress ?? manifest.fields.riskProgram.programId;\n  const createTrgInstruction =\n    await dexProgram.account.traderRiskGroup.createInstruction(\n      trgAccount,\n      64336 // copied from hxro SDK TRG_SIZE variable\n    );\n\n  return TransactionBuilder.make<{}>()\n    .setFeePayer(payer)\n    .add({\n      instruction: createTrgInstruction,\n      signers: [payer, trgAccount],\n      key: 'createOperatorTraderRiskGroupAccount',\n    })\n    .add({\n      instruction: SystemProgram.transfer({\n        fromPubkey: cvg.identity().publicKey,\n        toPubkey: cvg.hxro().pdas().operator(),\n        lamports: 1 * 10 ** 9, // 1 sol\n      }),\n      signers: [payer],\n      key: 'fundOperator',\n    })\n    .add({\n      instruction: createInitializeOperatorTraderRiskGroupInstruction(\n        {\n          authority: cvg.identity().publicKey,\n          protocol: cvg.protocol().pdas().protocol(),\n          config: cvg.hxro().pdas().config(),\n          marketProductGroup: mpgAddress,\n          operator: cvg.hxro().pdas().operator(),\n          dex: manifest.fields.dexProgram.programId,\n          operatorTrg: trgAccount.publicKey,\n          riskAndFeeSigner: dexterity.Manifest.GetRiskAndFeeSigner(mpgAddress),\n          traderRiskStateAcct: riskStateAccount.publicKey,\n          traderFeeStateAcct,\n          riskEngineProgram,\n          feeModelConfigAcct: feeModelConfigurationAcct,\n          feeModelProgram: feeModelProgramId,\n          systemProgram: systemProgram.address,\n        },\n        hxroPrintTradeProviderProgram.address\n      ),\n      signers: [payer, riskStateAccount],\n      key: 'initializeOperatorTraderRiskGroup',\n    });\n};\n"],"names":["Key","initializeOperatorTraderRiskGroupOperation","useOperation","initializeOperatorTraderRiskGroupOperationHandler","handle","_handle","_asyncToGenerator","_regeneratorRuntime","mark","_callee","operation","cvg","scope","builder","confirmOptions","output","wrap","_callee$","_context","prev","next","initializeOperatorTraderRiskGroupBuilder","input","sent","throwIfCanceled","makeConfirmOptionsFinalizedOnMainnet","sendAndConfirm","abrupt","response","stop","_x","_x2","_x3","apply","arguments","_ref","_callee2","params","options","_params$trgAccount","trgAccount","_params$riskStateAcco","riskStateAccount","hxroRiskEngineAddress","programs","_options$payer","payer","manifest","hxroPrintTradeProviderProgram","systemProgram","dexProgram","_yield$fetchValidHxro","mpgAddress","feeModelProgramId","feeModelConfigurationAcct","_PublicKey$findProgra","_PublicKey$findProgra2","traderFeeStateAcct","riskEngineProgram","createTrgInstruction","_args2","_callee2$","_context2","length","undefined","Keypair","rpc","getDefaultFeePayer","hxroManifestCache","get","getHxroPrintTradeProvider","getSystem","fields","fetchValidHxroMpg","pubkey","PublicKey","findProgramAddressSync","toBuffer","publicKey","_slicedToArray","riskProgram","programId","account","traderRiskGroup","createInstruction","TransactionBuilder","make","setFeePayer","add","instruction","signers","key","SystemProgram","transfer","fromPubkey","identity","toPubkey","hxro","pdas","operator","lamports","Math","pow","createInitializeOperatorTraderRiskGroupInstruction","authority","protocol","config","marketProductGroup","dex","operatorTrg","riskAndFeeSigner","dexterity","Manifest","GetRiskAndFeeSigner","traderRiskStateAcct","feeModelConfigAcct","feeModelProgram","address","_x4","_x5"],"mappings":"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"}