{"version":3,"file":"CollateralClient.mjs","sources":["../../../../src/plugins/collateralModule/CollateralClient.ts"],"sourcesContent":["import { PublicKey } from '@solana/web3.js';\n\nimport { OperationOptions } from '../../types';\nimport type { Convergence } from '../../Convergence';\nimport {\n  fundCollateralOperation,\n  FundCollateralInput,\n  initializeCollateralOperation,\n  InitializeCollateralInput,\n  withdrawCollateralOperation,\n  WithdrawCollateralInput,\n  findCollateralByAddressOperation,\n  FindCollateralByAddressInput,\n  FindCollateralByUserInput,\n  findCollateralByUserOperation,\n} from './operations';\nimport { CollateralPdasClient } from './CollateralPdasClient';\nimport { Collateral } from './models';\n\nexport class CollateralClient {\n  constructor(protected readonly convergence: Convergence) {}\n\n  pdas() {\n    return new CollateralPdasClient(this.convergence);\n  }\n\n  /** {@inheritDoc initializeCollateralOperation} */\n  initialize(input: InitializeCollateralInput, options?: OperationOptions) {\n    return this.convergence\n      .operations()\n      .execute(initializeCollateralOperation(input), options);\n  }\n\n  /** {@inheritDoc fundCollateralOperation} */\n  fund(input: FundCollateralInput, options?: OperationOptions) {\n    return this.convergence\n      .operations()\n      .execute(fundCollateralOperation(input), options);\n  }\n\n  /** {@inheritDoc withdrawCollateralOperation} */\n  withdraw(input: WithdrawCollateralInput, options?: OperationOptions) {\n    return this.convergence\n      .operations()\n      .execute(withdrawCollateralOperation(input), options);\n  }\n\n  /** {@inheritDoc findRfqByAddressOperation} */\n  findByAddress(\n    input: FindCollateralByAddressInput,\n    options?: OperationOptions\n  ) {\n    return this.convergence\n      .operations()\n      .execute(findCollateralByAddressOperation(input), options);\n  }\n\n  /** {@inheritDoc findCollateralByUserOperation} */\n  findByUser(input: FindCollateralByUserInput, options?: OperationOptions) {\n    return this.convergence\n      .operations()\n      .execute(findCollateralByUserOperation(input), options);\n  }\n\n  // /**\n  //  * Helper method that refetches a given model\n  //  * and returns an instance of the same type.\n  //  *\n  //  * If the model we pass is an `Response`, we extract the pubkey and\n  //  * pass to `findResponseByAddress`. Else, it's a pubkey and we pass\n  //  * it directly.\n  //  *\n  //  * ```ts\n  //  * collateral = await convergence.collateral().refresh(collateral);\n  //  * ```\n  //  */\n  refresh<T extends Collateral | PublicKey>(\n    model: T,\n    options?: OperationOptions\n  ): Promise<T extends PublicKey ? Collateral : T> {\n    return this.findByAddress(\n      {\n        address: 'model' in model ? model.address : model,\n      },\n      options\n    ) as Promise<T extends PublicKey ? Collateral : T>;\n  }\n\n  /** Helper method returning a flag to determine whether a collateral\n   * account needs to be initialized.\n   */\n  async initializationNecessary(user: PublicKey): Promise<boolean> {\n    const collateralInfoPda = this.pdas().collateralInfo({ user });\n\n    const collateralInfo = await this.convergence\n      .rpc()\n      .getAccount(collateralInfoPda);\n\n    if (collateralInfo.exists) {\n      return false;\n    }\n\n    return true;\n  }\n}\n"],"names":["CollateralClient","convergence","_classCallCheck","_createClass","key","value","pdas","CollateralPdasClient","initialize","input","options","operations","execute","initializeCollateralOperation","fund","fundCollateralOperation","withdraw","withdrawCollateralOperation","findByAddress","findCollateralByAddressOperation","findByUser","findCollateralByUserOperation","refresh","model","address","_initializationNecessary","_asyncToGenerator","_regeneratorRuntime","mark","_callee","user","collateralInfoPda","collateralInfo","wrap","_callee$","_context","prev","next","rpc","getAccount","sent","exists","abrupt","stop","initializationNecessary","_x","apply","arguments"],"mappings":"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"}