{"version":3,"file":"TokenClient.mjs","sources":["../../../../src/plugins/tokenModule/TokenClient.ts"],"sourcesContent":["import {\n  ApproveTokenDelegateAuthorityInput,\n  approveTokenDelegateAuthorityOperation,\n  CreateMintInput,\n  createMintOperation,\n  CreateTokenInput,\n  createTokenOperation,\n  CreateTokenWithMintInput,\n  createTokenWithMintOperation,\n  FindMintByAddressInput,\n  findMintByAddressOperation,\n  FindTokenByAddressInput,\n  findTokenByAddressOperation,\n  FindTokenWithMintByAddressInput,\n  findTokenWithMintByAddressOperation,\n  FindTokenWithMintByMintInput,\n  findTokenWithMintByMintOperation,\n  FreezeTokensInput,\n  freezeTokensOperation,\n  GetTokenBalanceInput,\n  getTokenBalanceOperation,\n  MintTokensInput,\n  mintTokensOperation,\n  RevokeTokenDelegateAuthorityInput,\n  revokeTokenDelegateAuthorityOperation,\n  SendTokensInput,\n  sendTokensOperation,\n  ThawTokensInput,\n  thawTokensOperation,\n} from './operations';\nimport { TokenBuildersClient } from './TokenBuildersClient';\nimport { TokenPdasClient } from './TokenPdasClient';\nimport { Mint, Token, TokenWithMint } from './models';\nimport type { Convergence } from '@/Convergence';\nimport { OperationOptions, PublicKey } from '@/types';\n\n/**\n * This is a client for the Token module.\n *\n * It enables us to interact with the SPL Token program in order to\n * create, send, freeze, thaw, and mint tokens.\n *\n * You may access this client via the `tokens()` method of your `Convergence` instance.\n *\n * ```ts\n * const tokenClient = convergence.tokens();\n * ```\n *\n * @example\n * You can create a new mint account with an associated token account like so.\n * The owner of this token account will, by default, be the current identity\n * of the convergence instance.\n *\n * ```ts\n * const { token } = await convergence.tokens().createTokenWithMint();\n * ```\n *\n * @group Modules\n */\nexport class TokenClient {\n  constructor(protected readonly convergence: Convergence) {}\n\n  /**\n   * You may use the `builders()` client to access the\n   * underlying Transaction Builders of this module.\n   *\n   * ```ts\n   * const buildersClient = convergence.tokens().builders();\n   * ```\n   */\n  builders() {\n    return new TokenBuildersClient(this.convergence);\n  }\n\n  /**\n   * You may use the `pdas()` client to build PDAs related to this module.\n   *\n   * ```ts\n   * const pdasClient = convergence.tokens().pdas();\n   * ```\n   */\n  pdas() {\n    return new TokenPdasClient(this.convergence);\n  }\n\n  // -----------------\n  // Queries\n  // -----------------\n\n  /** {@inheritDoc findMintByAddressOperation} */\n  findMintByAddress(input: FindMintByAddressInput, options?: OperationOptions) {\n    return this.convergence\n      .operations()\n      .execute(findMintByAddressOperation(input), options);\n  }\n\n  /** {@inheritDoc findTokenByAddressOperation} */\n  findTokenByAddress(\n    input: FindTokenByAddressInput,\n    options?: OperationOptions\n  ) {\n    return this.convergence\n      .operations()\n      .execute(findTokenByAddressOperation(input), options);\n  }\n\n  /** {@inheritDoc findTokenWithMintByAddressOperation} */\n  findTokenWithMintByAddress(\n    input: FindTokenWithMintByAddressInput,\n    options?: OperationOptions\n  ) {\n    return this.convergence\n      .operations()\n      .execute(findTokenWithMintByAddressOperation(input), options);\n  }\n\n  /** {@inheritDoc findTokenWithMintByMintOperation} */\n  findTokenWithMintByMint(\n    input: FindTokenWithMintByMintInput,\n    options?: OperationOptions\n  ): Promise<TokenWithMint> {\n    return this.convergence\n      .operations()\n      .execute(findTokenWithMintByMintOperation(input), options);\n  }\n\n  // -----------------\n  // Create\n  // -----------------\n\n  /** {@inheritDoc createMintOperation} */\n  createMint(input: CreateMintInput = {}, options?: OperationOptions) {\n    return this.convergence\n      .operations()\n      .execute(createMintOperation(input), options);\n  }\n\n  /**\n   * Create a new Token account from the provided input\n   * and returns the newly created `Token` model.\n   */\n  /** {@inheritDoc createTokenOperation} */\n  createToken(input: CreateTokenInput, options?: OperationOptions) {\n    return this.convergence\n      .operations()\n      .execute(createTokenOperation(input), options);\n  }\n\n  /** {@inheritDoc createTokenWithMintOperation} */\n  createTokenWithMint(\n    input: CreateTokenWithMintInput = {},\n    options?: OperationOptions\n  ) {\n    return this.convergence\n      .operations()\n      .execute(createTokenWithMintOperation(input), options);\n  }\n\n  // -----------------\n  // Update\n  // -----------------\n\n  refreshMint<T extends Mint | PublicKey>(\n    model: T,\n    options?: OperationOptions\n  ): Promise<T extends PublicKey ? Mint : T> {\n    return this.findMintByAddress(\n      {\n        address: 'model' in model ? model.address : model,\n      },\n      options\n    ) as Promise<T extends PublicKey ? Mint : T>;\n  }\n\n  refreshToken<T extends Token | PublicKey>(\n    model: T,\n    options?: OperationOptions\n  ): Promise<T extends PublicKey ? Token : T> {\n    return this.findTokenByAddress(\n      {\n        address: 'model' in model ? model.address : model,\n      },\n      options\n    ) as Promise<T extends PublicKey ? Token : T>;\n  }\n\n  /** {@inheritDoc mintTokensOperation} */\n  mint(input: MintTokensInput, options?: OperationOptions) {\n    return this.convergence\n      .operations()\n      .execute(mintTokensOperation(input), options);\n  }\n\n  /** {@inheritDoc sendTokensOperation} */\n  send(input: SendTokensInput, options?: OperationOptions) {\n    return this.convergence\n      .operations()\n      .execute(sendTokensOperation(input), options);\n  }\n\n  /** {@inheritDoc freezeTokensOperation} */\n  freeze(input: FreezeTokensInput, options?: OperationOptions) {\n    return this.convergence\n      .operations()\n      .execute(freezeTokensOperation(input), options);\n  }\n\n  /** {@inheritDoc thawTokensOperation} */\n  thaw(input: ThawTokensInput, options?: OperationOptions) {\n    return this.convergence\n      .operations()\n      .execute(thawTokensOperation(input), options);\n  }\n\n  // -----------------\n  // Delegate\n  // -----------------\n\n  /** {@inheritDoc approveTokenDelegateAuthorityOperation} */\n  approveDelegateAuthority(\n    input: ApproveTokenDelegateAuthorityInput,\n    options?: OperationOptions\n  ) {\n    return this.convergence\n      .operations()\n      .execute(approveTokenDelegateAuthorityOperation(input), options);\n  }\n\n  /** {@inheritDoc revokeTokenDelegateAuthorityOperation} */\n  revokeDelegateAuthority(\n    input: RevokeTokenDelegateAuthorityInput,\n    options?: OperationOptions\n  ) {\n    return this.convergence\n      .operations()\n      .execute(revokeTokenDelegateAuthorityOperation(input), options);\n  }\n\n  /** {@inheritDoc getTokenBalanceOperation } */\n  getTokenBalance(input: GetTokenBalanceInput, options?: OperationOptions) {\n    return this.convergence\n      .operations()\n      .execute(getTokenBalanceOperation(input), options);\n  }\n}\n"],"names":["TokenClient","convergence","_classCallCheck","_createClass","key","value","builders","TokenBuildersClient","pdas","TokenPdasClient","findMintByAddress","input","options","operations","execute","findMintByAddressOperation","findTokenByAddress","findTokenByAddressOperation","findTokenWithMintByAddress","findTokenWithMintByAddressOperation","findTokenWithMintByMint","findTokenWithMintByMintOperation","createMint","arguments","length","undefined","createMintOperation","createToken","createTokenOperation","createTokenWithMint","createTokenWithMintOperation","refreshMint","model","address","refreshToken","mint","mintTokensOperation","send","sendTokensOperation","freeze","freezeTokensOperation","thaw","thawTokensOperation","approveDelegateAuthority","approveTokenDelegateAuthorityOperation","revokeDelegateAuthority","revokeTokenDelegateAuthorityOperation","getTokenBalance","getTokenBalanceOperation"],"mappings":"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"}