{"version":3,"sources":["../src/client.ts","../src/wallet.ts"],"names":["WagmiBetSwirlWallet","BetSwirlWallet","wagmiConfig","__publicField","chainId","getPublicClient","functionData","gasPrice","call","wrappedGasTokenById","readContract","functionDatas","contracts","states","readContracts","state","txHash","getTransactionReceipt","eventData","watchContractEvent","logs","error","value","request","simulateContract","writeContract","pollingInterval","waitForTransactionReceipt","WagmiBetSwirlClient","_WagmiBetSwirlClient","BetSwirlClient","betSwirlDefaultOptions","placedBet","options","weightedGameConfiguration","houseEdge","WEIGHTED_CASINO_GAME_TYPES","waitRolledBet","params","callbacks","placeCoinTossBet","placeCoinTossFreebet","waitCoinTossRolledBet","placeDiceBet","placeDiceFreebet","waitDiceRolledBet","placeRouletteBet","placeRouletteFreebet","waitRouletteRolledBet","placeKenoBet","placeKenoFreebet","waitKenoRolledBet","placeWheelBet","placeWheelFreebet","waitWheelRolledBet","placePlinkoBet","placePlinkoFreebet","waitPlinkoRolledBet","placeWeightedGameBet","placeWeightedGameFreebet","onlyActive","getCasinoGames","getCasinoTokens","casinoToken","game","affiliate","casinoChain","casinoChainById","getCasinoGameToken","token","multiplier","getBetRequirements","tokenAddress","betCount","gasPriceType","getChainlinkVrfCost","getKenoConfiguration","configId","getWeightedGameConfiguration","leaderboardOnChainId","playerAddress","getClaimableAmount","leaderboard","receiver","onClaimPending","claimLeaderboardRewards","effectiveChainId","switchChain","initWagmiBetSwirlClient"],"mappings":"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","file":"index.cjs","sourcesContent":["import type {\n  BetRequirements,\n  BetSwirlClientOptions,\n  CASINO_GAME_TYPE,\n  CasinoChainId,\n  CasinoGameToken,\n  CasinoPlaceBetOptions,\n  CasinoPlacedBet,\n  CasinoRolledBet,\n  CasinoToken,\n  CasinoWaitRollOptions,\n  ChainId,\n  CoinTossBetParams,\n  CoinTossFreebetParams,\n  CoinTossPlacedBet,\n  CoinTossRolledBet,\n  DiceBetParams,\n  DiceFreebetParams,\n  DicePlacedBet,\n  DiceRolledBet,\n  GAS_PRICE_TYPE,\n  KenoBetParams,\n  KenoConfiguration,\n  KenoFreebetParams,\n  KenoPlacedBet,\n  KenoRolledBet,\n  Leaderboard,\n  LeaderboardClaimRewardsResult,\n  NormalCasinoPlacedBet,\n  PlaceBetCallbacks,\n  PlaceFreebetCallbacks,\n  PlinkoBetParams,\n  PlinkoFreebetParams,\n  PlinkoPlacedBet,\n  PlinkoRolledBet,\n  RouletteBetParams,\n  RouletteFreebetParams,\n  RoulettePlacedBet,\n  RouletteRolledBet,\n  Token,\n  WeightedCasinoPlacedBet,\n  WeightedGameBetParams,\n  WeightedGameConfiguration,\n  WeightedGameFreebetParams,\n  WeightedGamePlacedBet,\n  WheelBetParams,\n  WheelFreebetParams,\n  WheelPlacedBet,\n  WheelRolledBet,\n} from \"@betswirl/sdk-core\";\nimport {\n  BetSwirlClient,\n  casinoChainById,\n  claimLeaderboardRewards,\n  getBetRequirements,\n  getCasinoGames,\n  getCasinoGameToken,\n  getCasinoTokens,\n  getChainlinkVrfCost,\n  getClaimableAmount,\n  getKenoConfiguration,\n  getWeightedGameConfiguration,\n  placeCoinTossBet,\n  placeCoinTossFreebet,\n  placeDiceBet,\n  placeDiceFreebet,\n  placeKenoBet,\n  placeKenoFreebet,\n  placePlinkoBet,\n  placePlinkoFreebet,\n  placeRouletteBet,\n  placeRouletteFreebet,\n  placeWeightedGameBet,\n  placeWeightedGameFreebet,\n  placeWheelBet,\n  placeWheelFreebet,\n  WEIGHTED_CASINO_GAME_TYPES,\n  waitCoinTossRolledBet,\n  waitDiceRolledBet,\n  waitKenoRolledBet,\n  waitPlinkoRolledBet,\n  waitRolledBet,\n  waitRouletteRolledBet,\n  waitWheelRolledBet,\n} from \"@betswirl/sdk-core\";\nimport { switchChain, type Config as WagmiConfig } from \"@wagmi/core\";\nimport type { Address, Hash, Hex, TransactionReceipt } from \"viem\";\nimport { WagmiBetSwirlWallet } from \"./wallet\";\n\nexport class WagmiBetSwirlClient extends BetSwirlClient {\n  public wagmiConfig: WagmiConfig;\n\n  constructor(wagmiConfig: WagmiConfig, betSwirlDefaultOptions: BetSwirlClientOptions = {}) {\n    super(new WagmiBetSwirlWallet(wagmiConfig), betSwirlDefaultOptions);\n    this.wagmiConfig = wagmiConfig;\n  }\n\n  /* Casino Games */\n\n  async waitRolledBet(\n    placedBet: NormalCasinoPlacedBet,\n    options?: CasinoWaitRollOptions,\n  ): Promise<{ rolledBet: CasinoRolledBet; receipt: TransactionReceipt }>;\n\n  async waitRolledBet(\n    placedBet: WeightedCasinoPlacedBet,\n    options: CasinoWaitRollOptions | undefined,\n    weightedGameConfiguration: WeightedGameConfiguration,\n    houseEdge: number,\n  ): Promise<{ rolledBet: CasinoRolledBet; receipt: TransactionReceipt }>;\n\n  async waitRolledBet(\n    placedBet: CasinoPlacedBet,\n    options?: CasinoWaitRollOptions,\n    weightedGameConfiguration?: WeightedGameConfiguration,\n    houseEdge?: number,\n  ): Promise<{ rolledBet: CasinoRolledBet; receipt: TransactionReceipt }> {\n    await this._switchChain(placedBet.chainId);\n    const isWeighted = WEIGHTED_CASINO_GAME_TYPES.includes(placedBet.game);\n    if (isWeighted) {\n      return waitRolledBet(\n        this.betSwirlWallet,\n        placedBet as WeightedCasinoPlacedBet,\n        {\n          ...this.betSwirlDefaultOptions,\n          ...options,\n        },\n        weightedGameConfiguration!,\n        houseEdge!,\n      );\n    }\n    return waitRolledBet(this.betSwirlWallet, placedBet as NormalCasinoPlacedBet, {\n      ...this.betSwirlDefaultOptions,\n      ...options,\n    });\n  }\n\n  async playCoinToss(\n    params: CoinTossBetParams,\n    options?: CasinoPlaceBetOptions,\n    callbacks?: PlaceBetCallbacks,\n    chainId?: CasinoChainId,\n  ): Promise<{ placedBet: CoinTossPlacedBet; receipt: TransactionReceipt }> {\n    await this._switchChain(chainId);\n    return placeCoinTossBet(\n      this.betSwirlWallet,\n      { ...params, affiliate: this.betSwirlDefaultOptions.affiliate },\n      {\n        ...this.betSwirlDefaultOptions,\n        ...options,\n      },\n      callbacks,\n    );\n  }\n\n  async playFreebetCoinToss(\n    params: CoinTossFreebetParams,\n    options?: CasinoPlaceBetOptions,\n    callbacks?: PlaceFreebetCallbacks,\n  ): Promise<{ placedFreebet: CoinTossPlacedBet; receipt: TransactionReceipt }> {\n    await this._switchChain(params.freebet.chainId);\n    return placeCoinTossFreebet(\n      this.betSwirlWallet,\n      params,\n      {\n        ...this.betSwirlDefaultOptions,\n        ...options,\n      },\n      callbacks,\n    );\n  }\n\n  async waitCoinToss(\n    placedBet: CoinTossPlacedBet,\n    options?: CasinoWaitRollOptions,\n  ): Promise<{ rolledBet: CoinTossRolledBet; receipt: TransactionReceipt }> {\n    await this._switchChain(placedBet.chainId);\n    return waitCoinTossRolledBet(this.betSwirlWallet, placedBet, {\n      ...this.betSwirlDefaultOptions,\n      ...options,\n    });\n  }\n\n  async playDice(\n    params: DiceBetParams,\n    options?: CasinoPlaceBetOptions,\n    callbacks?: PlaceBetCallbacks,\n    chainId?: CasinoChainId,\n  ): Promise<{ placedBet: DicePlacedBet; receipt: TransactionReceipt }> {\n    await this._switchChain(chainId);\n    return placeDiceBet(\n      this.betSwirlWallet,\n      { ...params, affiliate: this.betSwirlDefaultOptions.affiliate },\n      {\n        ...this.betSwirlDefaultOptions,\n        ...options,\n      },\n      callbacks,\n    );\n  }\n\n  async playFreebetDice(\n    params: DiceFreebetParams,\n    options?: CasinoPlaceBetOptions,\n    callbacks?: PlaceFreebetCallbacks,\n  ): Promise<{ placedFreebet: DicePlacedBet; receipt: TransactionReceipt }> {\n    await this._switchChain(params.freebet.chainId);\n    return placeDiceFreebet(\n      this.betSwirlWallet,\n      params,\n      {\n        ...this.betSwirlDefaultOptions,\n        ...options,\n      },\n      callbacks,\n    );\n  }\n\n  async waitDice(\n    placedBet: DicePlacedBet,\n    options?: CasinoWaitRollOptions,\n  ): Promise<{ rolledBet: DiceRolledBet; receipt: TransactionReceipt }> {\n    await this._switchChain(placedBet.chainId);\n    return waitDiceRolledBet(this.betSwirlWallet, placedBet, {\n      ...this.betSwirlDefaultOptions,\n      ...options,\n    });\n  }\n\n  async playRoulette(\n    params: RouletteBetParams,\n    options?: CasinoPlaceBetOptions,\n    callbacks?: PlaceBetCallbacks,\n    chainId?: CasinoChainId,\n  ): Promise<{ placedBet: RoulettePlacedBet; receipt: TransactionReceipt }> {\n    await this._switchChain(chainId);\n    return placeRouletteBet(\n      this.betSwirlWallet,\n      { ...params, affiliate: this.betSwirlDefaultOptions.affiliate },\n      {\n        ...this.betSwirlDefaultOptions,\n        ...options,\n      },\n      callbacks,\n    );\n  }\n\n  async playFreebetRoulette(\n    params: RouletteFreebetParams,\n    options?: CasinoPlaceBetOptions,\n    callbacks?: PlaceFreebetCallbacks,\n  ): Promise<{ placedFreebet: RoulettePlacedBet; receipt: TransactionReceipt }> {\n    await this._switchChain(params.freebet.chainId);\n    return placeRouletteFreebet(\n      this.betSwirlWallet,\n      params,\n      {\n        ...this.betSwirlDefaultOptions,\n        ...options,\n      },\n      callbacks,\n    );\n  }\n\n  async waitRoulette(\n    placedBet: RoulettePlacedBet,\n    options?: CasinoWaitRollOptions,\n  ): Promise<{ rolledBet: RouletteRolledBet; receipt: TransactionReceipt }> {\n    await this._switchChain(placedBet.chainId);\n    return waitRouletteRolledBet(this.betSwirlWallet, placedBet, {\n      ...this.betSwirlDefaultOptions,\n      ...options,\n    });\n  }\n\n  async playKeno(\n    params: KenoBetParams,\n    options?: CasinoPlaceBetOptions,\n    callbacks?: PlaceBetCallbacks,\n    chainId?: CasinoChainId,\n  ): Promise<{ placedBet: KenoPlacedBet; receipt: TransactionReceipt }> {\n    await this._switchChain(chainId);\n    return placeKenoBet(\n      this.betSwirlWallet,\n      { ...params, affiliate: this.betSwirlDefaultOptions.affiliate },\n      {\n        ...this.betSwirlDefaultOptions,\n        ...options,\n      },\n      callbacks,\n    );\n  }\n\n  async playFreebetKeno(\n    params: KenoFreebetParams,\n    options?: CasinoPlaceBetOptions,\n    callbacks?: PlaceFreebetCallbacks,\n  ): Promise<{ placedFreebet: KenoPlacedBet; receipt: TransactionReceipt }> {\n    await this._switchChain(params.freebet.chainId);\n    return placeKenoFreebet(\n      this.betSwirlWallet,\n      params,\n      {\n        ...this.betSwirlDefaultOptions,\n        ...options,\n      },\n      callbacks,\n    );\n  }\n\n  async waitKeno(\n    placedBet: KenoPlacedBet,\n    options?: CasinoWaitRollOptions,\n  ): Promise<{ rolledBet: KenoRolledBet; receipt: TransactionReceipt }> {\n    await this._switchChain(placedBet.chainId);\n    return waitKenoRolledBet(this.betSwirlWallet, placedBet, {\n      ...this.betSwirlDefaultOptions,\n      ...options,\n    });\n  }\n\n  async playWheel(\n    params: WheelBetParams,\n    options?: CasinoPlaceBetOptions,\n    callbacks?: PlaceBetCallbacks,\n    chainId?: CasinoChainId,\n  ): Promise<{ placedBet: WheelPlacedBet; receipt: TransactionReceipt }> {\n    await this._switchChain(chainId);\n    return placeWheelBet(\n      this.betSwirlWallet,\n      { ...params, affiliate: this.betSwirlDefaultOptions.affiliate },\n      {\n        ...this.betSwirlDefaultOptions,\n        ...options,\n      },\n      callbacks,\n    );\n  }\n\n  async playFreebetWheel(\n    params: WheelFreebetParams,\n    options?: CasinoPlaceBetOptions,\n    callbacks?: PlaceFreebetCallbacks,\n  ): Promise<{ placedFreebet: WheelPlacedBet; receipt: TransactionReceipt }> {\n    await this._switchChain(params.freebet.chainId);\n    return placeWheelFreebet(\n      this.betSwirlWallet,\n      params,\n      {\n        ...this.betSwirlDefaultOptions,\n        ...options,\n      },\n      callbacks,\n    );\n  }\n\n  async waitWheel(\n    placedBet: WheelPlacedBet,\n    weightedGameConfiguration: WeightedGameConfiguration,\n    houseEdge: number,\n    options?: CasinoWaitRollOptions,\n  ): Promise<{ rolledBet: WheelRolledBet; receipt: TransactionReceipt }> {\n    await this._switchChain(placedBet.chainId);\n    return waitWheelRolledBet(\n      this.betSwirlWallet,\n      placedBet,\n      weightedGameConfiguration,\n      houseEdge,\n      {\n        ...this.betSwirlDefaultOptions,\n        ...options,\n      },\n    );\n  }\n\n  async playPlinko(\n    params: PlinkoBetParams,\n    options?: CasinoPlaceBetOptions,\n    callbacks?: PlaceBetCallbacks,\n    chainId?: CasinoChainId,\n  ): Promise<{ placedBet: PlinkoPlacedBet; receipt: TransactionReceipt }> {\n    await this._switchChain(chainId);\n    return placePlinkoBet(\n      this.betSwirlWallet,\n      { ...params, affiliate: this.betSwirlDefaultOptions.affiliate },\n      {\n        ...this.betSwirlDefaultOptions,\n        ...options,\n      },\n      callbacks,\n    );\n  }\n\n  async playFreebetPlinko(\n    params: PlinkoFreebetParams,\n    options?: CasinoPlaceBetOptions,\n    callbacks?: PlaceFreebetCallbacks,\n  ): Promise<{ placedFreebet: PlinkoPlacedBet; receipt: TransactionReceipt }> {\n    await this._switchChain(params.freebet.chainId);\n    return placePlinkoFreebet(\n      this.betSwirlWallet,\n      params,\n      {\n        ...this.betSwirlDefaultOptions,\n        ...options,\n      },\n      callbacks,\n    );\n  }\n\n  async waitPlinko(\n    placedBet: PlinkoPlacedBet,\n    weightedGameConfiguration: WeightedGameConfiguration,\n    houseEdge: number,\n    options?: CasinoWaitRollOptions,\n  ): Promise<{ rolledBet: PlinkoRolledBet; receipt: TransactionReceipt }> {\n    await this._switchChain(placedBet.chainId);\n    return waitPlinkoRolledBet(\n      this.betSwirlWallet,\n      placedBet,\n      weightedGameConfiguration,\n      houseEdge,\n      {\n        ...this.betSwirlDefaultOptions,\n        ...options,\n      },\n    );\n  }\n\n  async playWeightedGame(\n    params: WeightedGameBetParams,\n    options?: CasinoPlaceBetOptions,\n    callbacks?: PlaceBetCallbacks,\n    chainId?: CasinoChainId,\n  ): Promise<{ placedBet: WeightedGamePlacedBet; receipt: TransactionReceipt }> {\n    await this._switchChain(chainId);\n    return placeWeightedGameBet(\n      this.betSwirlWallet,\n      { ...params, affiliate: this.betSwirlDefaultOptions.affiliate },\n      {\n        ...this.betSwirlDefaultOptions,\n        ...options,\n      },\n      callbacks,\n    );\n  }\n\n  async playFreebetWeightedGame(\n    params: WeightedGameFreebetParams,\n    options?: CasinoPlaceBetOptions,\n    callbacks?: PlaceFreebetCallbacks,\n  ): Promise<{ placedFreebet: PlinkoPlacedBet; receipt: TransactionReceipt }> {\n    await this._switchChain(params.freebet.chainId);\n    return placeWeightedGameFreebet(\n      this.betSwirlWallet,\n      params,\n      {\n        ...this.betSwirlDefaultOptions,\n        ...options,\n      },\n      callbacks,\n    );\n  }\n\n  /* Casino Utilities */\n\n  async getCasinoGames(onlyActive = false, chainId?: CasinoChainId) {\n    await this._switchChain(chainId);\n    return getCasinoGames(this.betSwirlWallet, onlyActive);\n  }\n\n  async getCasinoTokens(onlyActive = false, chainId?: CasinoChainId): Promise<CasinoToken[]> {\n    await this._switchChain(chainId);\n    return getCasinoTokens(this.betSwirlWallet, onlyActive);\n  }\n\n  async getCasinoGameToken(\n    casinoToken: CasinoToken,\n    game: CASINO_GAME_TYPE,\n    affiliate?: Hex,\n  ): Promise<CasinoGameToken> {\n    const casinoChain = casinoChainById[casinoToken.chainId];\n    await this._switchChain(casinoToken.chainId);\n    return getCasinoGameToken(\n      this.betSwirlWallet,\n      casinoToken,\n      game,\n      affiliate || casinoChain.defaultAffiliate,\n    );\n  }\n\n  async getBetRequirements(\n    token: Token,\n    multiplier: number | number[],\n    game: CASINO_GAME_TYPE,\n    chainId?: CasinoChainId,\n  ): Promise<BetRequirements> {\n    await this._switchChain(chainId);\n    return getBetRequirements(this.betSwirlWallet, token, multiplier, game);\n  }\n\n  async getChainlinkVrfCost(\n    game: CASINO_GAME_TYPE,\n    tokenAddress: Hex,\n    betCount: number,\n    gasPrice?: bigint,\n    gasPriceType?: GAS_PRICE_TYPE,\n    chainId?: CasinoChainId,\n  ) {\n    await this._switchChain(chainId);\n    return getChainlinkVrfCost(\n      this.betSwirlWallet,\n      game,\n      tokenAddress,\n      betCount,\n      gasPrice || this.betSwirlDefaultOptions.gasPrice,\n      gasPriceType || this.betSwirlDefaultOptions.gasPriceType,\n    );\n  }\n\n  async getKenoConfiguration(token: Token, chainId?: CasinoChainId): Promise<KenoConfiguration> {\n    await this._switchChain(chainId);\n    return getKenoConfiguration(this.betSwirlWallet, token);\n  }\n\n  async getWeighedGameConfiguration(\n    configId: number | string,\n    chainId?: CasinoChainId,\n  ): Promise<WeightedGameConfiguration> {\n    await this._switchChain(chainId);\n    return getWeightedGameConfiguration(this.betSwirlWallet, configId);\n  }\n\n  /* Leaderboard utilities */\n\n  async getClaimableAmount(\n    leaderboardOnChainId: number | bigint,\n    playerAddress: Address,\n    chainId: ChainId,\n  ): Promise<bigint> {\n    await this._switchChain(chainId);\n    return getClaimableAmount(this.betSwirlWallet, leaderboardOnChainId, playerAddress, chainId);\n  }\n\n  async claimLeaderboardRewards(\n    leaderboard: Leaderboard,\n    receiver: Address,\n    onClaimPending?: (tx: Hash, result: LeaderboardClaimRewardsResult) => void | Promise<void>,\n  ): Promise<{ receipt: TransactionReceipt; result: LeaderboardClaimRewardsResult }> {\n    await this._switchChain(leaderboard.chainId);\n\n    return claimLeaderboardRewards(\n      this.betSwirlWallet,\n      leaderboard,\n      receiver,\n      this.betSwirlDefaultOptions.pollingInterval,\n      onClaimPending,\n    );\n  }\n\n  /* Private */\n  async _switchChain(chainId?: ChainId) {\n    const effectiveChainId = chainId || this.betSwirlDefaultOptions.chainId;\n    if (effectiveChainId) {\n      const currentChainId = await this.betSwirlWallet.getChainId();\n      if (currentChainId !== effectiveChainId) {\n        await switchChain(this.wagmiConfig, { chainId: effectiveChainId });\n      }\n    }\n  }\n\n  static init(wagmiConfig: WagmiConfig, options?: BetSwirlClientOptions): WagmiBetSwirlClient {\n    return new WagmiBetSwirlClient(wagmiConfig, options);\n  }\n}\n\nexport function initWagmiBetSwirlClient(\n  wagmiConfig: WagmiConfig,\n  options?: BetSwirlClientOptions,\n): WagmiBetSwirlClient {\n  return WagmiBetSwirlClient.init(wagmiConfig, options);\n}\n","import {\n  type BetSwirlExtendedEventData,\n  type BetSwirlFunctionData,\n  BetSwirlWallet,\n  wrappedGasTokenById,\n} from \"@betswirl/sdk-core\";\nimport {\n  call,\n  getPublicClient,\n  getTransactionReceipt,\n  readContract,\n  readContracts,\n  simulateContract,\n  type Config as WagmiConfig,\n  waitForTransactionReceipt,\n  watchContractEvent,\n  writeContract,\n} from \"@wagmi/core\";\nimport type { Abi, CallReturnType, Hash, PublicClient, TransactionReceipt } from \"viem\";\n\nexport class WagmiBetSwirlWallet extends BetSwirlWallet {\n  private wagmiConfig: WagmiConfig;\n\n  constructor(wagmiConfig: WagmiConfig) {\n    super();\n    this.wagmiConfig = wagmiConfig;\n  }\n\n  getChainId() {\n    return this.wagmiConfig.state.chainId;\n  }\n\n  // Wagmi currently does not support hosting Private Key & Mnemonic Accounts to the top-level Wagmi Config – meaning we have to explicitly pass through the account to every Action\n  // If at least one connector exists, then do not return an account\n  getAccount(chainId?: number) {\n    if (this.wagmiConfig.connectors.length > 0) return undefined;\n    return this.wagmiConfig.getClient({ chainId }).account;\n  }\n\n  getPublicClient(chainId?: number) {\n    return getPublicClient(this.wagmiConfig, { chainId }) as PublicClient;\n  }\n\n  async readContract<TFunctionData extends BetSwirlFunctionData<Abi, string, readonly any[]>>(\n    functionData: TFunctionData,\n    gasPrice: bigint,\n  ): Promise<CallReturnType>;\n\n  async readContract<\n    TFunctionData extends BetSwirlFunctionData<Abi, string, readonly any[]>,\n    TReturnType = any,\n  >(functionData: TFunctionData, gasPrice?: undefined): Promise<TReturnType>;\n\n  override async readContract<\n    TFunctionData extends BetSwirlFunctionData<Abi, string, readonly any[]>,\n    TReturnType = any,\n  >(functionData: TFunctionData, gasPrice?: bigint): Promise<CallReturnType | TReturnType> {\n    if (gasPrice && typeof gasPrice === \"bigint\") {\n      return call(this.wagmiConfig, {\n        to: functionData.data.to,\n        data: functionData.encodedData,\n        gasPrice,\n        gas: 3000000n, // workaround to avoid not enough gas issue\n        account: wrappedGasTokenById[this.getChainId()], // workaround to avoid not enough gas issue\n      }) as Promise<CallReturnType>;\n    }\n    return readContract(this.wagmiConfig, {\n      address: functionData.data.to,\n      abi: functionData.data.abi,\n      functionName: functionData.data.functionName,\n      args: functionData.data.args,\n    }) as Promise<TReturnType>;\n  }\n\n  async readContracts<\n    TFunctionDatas extends BetSwirlFunctionData<Abi, string, readonly any[]>[],\n    TReturnTypes extends any[],\n  >(functionDatas: [...TFunctionDatas]): Promise<TReturnTypes> {\n    const contracts = functionDatas.map((functionData) => ({\n      address: functionData.data.to,\n      abi: functionData.data.abi,\n      functionName: functionData.data.functionName,\n      args: functionData.data.args,\n    }));\n\n    const states = await readContracts(this.wagmiConfig, {\n      contracts,\n    });\n\n    if (states.some((state) => state.status === \"failure\" || state === undefined)) {\n      throw new Error(\"[wagmiWallet] An error occured while reading contracts\");\n    }\n\n    return states.map((state) => state.result) as TReturnTypes;\n  }\n\n  async getTransactionReceipt(txHash: Hash): Promise<TransactionReceipt> {\n    return getTransactionReceipt(this.wagmiConfig, { hash: txHash });\n  }\n\n  watchContractEvent<TEventData extends BetSwirlExtendedEventData<Abi, string, any>>(\n    eventData: TEventData,\n  ): () => void {\n    return watchContractEvent(this.wagmiConfig, {\n      address: eventData.data.to,\n      abi: eventData.data.abi,\n      eventName: eventData.data.eventName,\n      args: eventData.data.args,\n      pollingInterval: eventData.data.pollingInterval,\n      onLogs: (logs) => eventData.callbacks.onLogs?.(logs),\n      onError: (error) => eventData.callbacks.onError?.(error),\n    });\n  }\n\n  async writeContract<TFunctionData extends BetSwirlFunctionData<Abi, string, readonly any[]>>(\n    functionData: TFunctionData,\n    value?: bigint,\n    gasPrice?: bigint,\n  ): Promise<Hash> {\n    const { request } = await simulateContract(this.wagmiConfig, {\n      address: functionData.data.to,\n      abi: functionData.data.abi,\n      functionName: functionData.data.functionName,\n      args: functionData.data.args,\n      gasPrice,\n      account: this.getAccount(),\n      value,\n    });\n    return await writeContract(this.wagmiConfig, request);\n  }\n\n  async waitTransaction(txHash: Hash, pollingInterval?: number): Promise<TransactionReceipt> {\n    return await waitForTransactionReceipt(this.wagmiConfig, { hash: txHash, pollingInterval });\n  }\n}\n"]}