{"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","typedData","signTypedData","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","getLeaderboardClaimableAmount","leaderboard","receiver","onClaimPending","claimLeaderboardRewards","code","effectiveChainId","casinoChainIds","signature","signFreebetCode","claimFreebetCode","switchChain","initWagmiBetSwirlClient"],"mappings":"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","file":"index.cjs","sourcesContent":["import type {\n  BetRequirements,\n  BetSwirlClientOptions,\n  BP,\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  casinoChainIds,\n  claimFreebetCode,\n  claimLeaderboardRewards,\n  getBetRequirements,\n  getCasinoGames,\n  getCasinoGameToken,\n  getCasinoTokens,\n  getChainlinkVrfCost,\n  getKenoConfiguration,\n  getLeaderboardClaimableAmount,\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  signFreebetCode,\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: BP,\n  ): Promise<{ rolledBet: CasinoRolledBet; receipt: TransactionReceipt }>;\n\n  async waitRolledBet(\n    placedBet: CasinoPlacedBet,\n    options?: CasinoWaitRollOptions,\n    weightedGameConfiguration?: WeightedGameConfiguration,\n    houseEdge?: BP,\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: BP,\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: BP,\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: BP | BP[],\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 getLeaderboardClaimableAmount(\n    leaderboardOnChainId: number | bigint,\n    playerAddress: Address,\n    chainId: ChainId,\n  ): Promise<bigint> {\n    await this._switchChain(chainId);\n    return getLeaderboardClaimableAmount(\n      this.betSwirlWallet,\n      leaderboardOnChainId,\n      playerAddress,\n      chainId,\n    );\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  /* Freebet code utilities */\n\n  async signAndClaimFreebetCode(\n    code: string,\n    chainId?: CasinoChainId,\n  ): Promise<{ success: boolean; error?: string }> {\n    const effectiveChainId = await this._switchChain(chainId);\n\n    if (!effectiveChainId || !casinoChainIds.includes(effectiveChainId as CasinoChainId)) {\n      throw new Error(\n        `Chain ID ${effectiveChainId} is not supported for freebet code claiming. Supported chains: ${casinoChainIds.join(\", \")}`,\n      );\n    }\n\n    // Sign the freebet code\n    const { signature, typedData } = await signFreebetCode(this.betSwirlWallet, code);\n\n    // Claim the freebet code\n    return claimFreebetCode(\n      signature,\n      typedData,\n      effectiveChainId as CasinoChainId,\n      Boolean(this.betSwirlDefaultOptions.api?.testMode),\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    return effectiveChainId;\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  signTypedData,\n  simulateContract,\n  type Config as WagmiConfig,\n  waitForTransactionReceipt,\n  watchContractEvent,\n  writeContract,\n} from \"@wagmi/core\";\nimport type {\n  Abi,\n  Account,\n  CallReturnType,\n  Hash,\n  PublicClient,\n  TransactionReceipt,\n  TypedDataDomain,\n  TypedDataParameter,\n} 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): Account | undefined {\n    if (this.wagmiConfig.connectors.length > 0) return undefined;\n    return this.wagmiConfig.getClient({ chainId }).account as Account | undefined;\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  // TODO to improve to avoid unknown/string\n  async signTypedData<\n    TTypedData extends {\n      domain: TypedDataDomain;\n      types: Record<string, readonly TypedDataParameter[]>;\n      primaryType: string;\n      message: Record<string, unknown>;\n    },\n  >(typedData: TTypedData): Promise<Hash> {\n    return signTypedData(this.wagmiConfig, typedData);\n  }\n}\n"]}