@dubsdotapp/expo 0.2.45 → 0.2.47

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -190,6 +190,8 @@ const myStorage: TokenStorage = {
190
190
  | `useJoinGame()` | Mutation | Join an existing game |
191
191
  | `useClaim()` | Mutation | Claim prize or refund after game resolves |
192
192
  | `useHasClaimed(gameId)` | Query | Check if current wallet already claimed — returns `hasClaimed`, `amountClaimed`, `claimSignature` |
193
+ | `useUFCFightCard()` | Query | Fetch all upcoming UFC fight cards with fighters and fight data |
194
+ | `useUFCFighterDetail(athleteId)` | Query | Fetch detailed fighter profile (height, weight, reach, stance, gym, age, etc.) — only fetches when athleteId is non-null |
193
195
 
194
196
  ### Mutation Status
195
197
 
@@ -222,7 +224,7 @@ Drop-in bottom sheets that handle the full transaction lifecycle (build → sign
222
224
 
223
225
  #### CreateCustomGameSheet
224
226
 
225
- Bottom sheet for creating a custom 1v1 game with configurable buy-in.
227
+ Bottom sheet for creating a custom game with configurable buy-in.
226
228
 
227
229
  ```tsx
228
230
  import { CreateCustomGameSheet } from '@dubsdotapp/expo';
@@ -244,13 +246,34 @@ import { CreateCustomGameSheet } from '@dubsdotapp/expo';
244
246
  | `onDismiss` | `() => void` | *required* | Called when user closes the sheet |
245
247
  | `title` | `string` | `'New Game'` | Sheet header title |
246
248
  | `maxPlayers` | `number` | `2` | Max players (currently 1v1) |
247
- | `fee` | `number` | `0.05` | Platform fee percentage (0–1) |
248
- | `presetAmounts` | `number[]` | `[0.01, 0.1, 0.5]` | Quick-select buy-in chips |
249
- | `defaultAmount` | `number` | | Pre-selected buy-in |
249
+ | `fee` | `number` | `5` | Platform fee percentage (0–100) |
250
+ | `presetAmounts` | `number[]` | `[0.01, 0.1, 0.5, 1]` | Quick-select buy-in chips |
251
+ | `defaultAmount` | `number` | `0.01` | Pre-selected buy-in |
250
252
  | `metadata` | `Record<string, unknown>` | — | Arbitrary metadata attached to the game |
253
+ | `isPoolModeEnabled` | `boolean` | `false` | Pool mode — see below |
251
254
  | `onSuccess` | `(result) => void` | — | Called with `{ gameId, gameAddress, signature, explorerUrl, buyIn }` |
252
255
  | `onError` | `(error) => void` | — | Called on failure |
253
256
 
257
+ **Pool Mode** (`isPoolModeEnabled`): For winner-takes-all pools (e.g. UFC Pick'em) where all players pay a fixed buy-in and winners split the pot. When enabled:
258
+ - Hides buy-in selection UI (uses `defaultAmount` automatically)
259
+ - Auto-assigns `teamChoice: 'home'` (no side selection — oracle resolves winners)
260
+ - Labels change to "Create Pool" instead of "New Game"
261
+ - Summary shows "Max players" and "Max pot" instead of 1v1 display
262
+
263
+ ```tsx
264
+ // Pick'em pool — first player creates the on-chain game
265
+ <CreateCustomGameSheet
266
+ isPoolModeEnabled
267
+ visible={showCreate}
268
+ title="UFC 313 Pick'em"
269
+ maxPlayers={50}
270
+ defaultAmount={0.1}
271
+ metadata={{ pickemPoolId: pool.id }}
272
+ onSuccess={(result) => handlePoolCreated(result)}
273
+ onDismiss={() => setShowCreate(false)}
274
+ />
275
+ ```
276
+
254
277
  #### JoinGameSheet
255
278
 
256
279
  Bottom sheet for joining an existing game. Shows buy-in, team selection, pool summary, and potential winnings.
@@ -276,9 +299,27 @@ import { JoinGameSheet } from '@dubsdotapp/expo';
276
299
  | `shortName` | `(name) => string` | — | Custom team label formatter |
277
300
  | `homeColor` | `string` | `'#3B82F6'` | Home team accent color |
278
301
  | `awayColor` | `string` | `'#EF4444'` | Away team accent color |
302
+ | `isPoolModeEnabled` | `boolean` | `false` | Pool mode — see below |
279
303
  | `onSuccess` | `(result) => void` | — | Called with `{ signature, explorerUrl }` |
280
304
  | `onError` | `(error) => void` | — | Called on failure |
281
305
 
306
+ **Pool Mode** (`isPoolModeEnabled`): For winner-takes-all pools where there are no sides. When enabled:
307
+ - Hides team selection UI entirely
308
+ - Auto-assigns `teamChoice: 'home'` (oracle distributes to winners via `distribute_survivor_winnings`)
309
+ - Labels change to "Join Pool" instead of "Join Game"
310
+ - Summary shows "Players in" and "Current pot" instead of side/odds/potential winnings
311
+
312
+ ```tsx
313
+ // Pick'em pool — subsequent players join the existing on-chain game
314
+ <JoinGameSheet
315
+ isPoolModeEnabled
316
+ visible={showJoin}
317
+ game={gameData}
318
+ onSuccess={(result) => handlePoolJoined(result)}
319
+ onDismiss={() => setShowJoin(false)}
320
+ />
321
+ ```
322
+
282
323
  #### ClaimPrizeSheet
283
324
 
284
325
  Bottom sheet for claiming a prize or refund after a game resolves. Includes a celebration animation on success.
package/dist/index.d.mts CHANGED
@@ -343,6 +343,7 @@ interface LiveScore {
343
343
  }
344
344
  interface UFCFighter {
345
345
  name: string;
346
+ athleteId: string | null;
346
347
  headshotUrl: string | null;
347
348
  flagUrl: string | null;
348
349
  country: string | null;
@@ -350,6 +351,34 @@ interface UFCFighter {
350
351
  record: string | null;
351
352
  winner: boolean;
352
353
  }
354
+ interface UFCFighterDetail {
355
+ athleteId: string;
356
+ firstName: string | null;
357
+ lastName: string | null;
358
+ fullName: string | null;
359
+ nickname: string | null;
360
+ shortName: string | null;
361
+ height: string | null;
362
+ heightInches: number | null;
363
+ weight: string | null;
364
+ weightLbs: number | null;
365
+ reach: string | null;
366
+ reachInches: number | null;
367
+ age: number | null;
368
+ dateOfBirth: string | null;
369
+ stance: string | null;
370
+ weightClass: string | null;
371
+ citizenship: string | null;
372
+ citizenshipAbbreviation: string | null;
373
+ gym: string | null;
374
+ gymCountry: string | null;
375
+ active: boolean;
376
+ headshotUrl: string | null;
377
+ flagUrl: string | null;
378
+ stanceImageUrl: string | null;
379
+ espnUrl: string | null;
380
+ slug: string | null;
381
+ }
353
382
  interface UFCData {
354
383
  currentRound: number;
355
384
  totalRounds: number;
@@ -401,6 +430,7 @@ declare class DubsClient {
401
430
  getEsportsMatches(videogame?: string): Promise<UnifiedEvent[]>;
402
431
  getEsportsMatchDetail(matchId: string | number): Promise<EsportsMatchDetail>;
403
432
  getUFCFightCard(): Promise<UFCEvent[]>;
433
+ getUFCFighterDetail(athleteId: string): Promise<UFCFighterDetail>;
404
434
  validateEvent(id: string): Promise<ValidateEventResult>;
405
435
  createGame(params: CreateGameParams): Promise<CreateGameResult>;
406
436
  joinGame(params: JoinGameParams): Promise<JoinGameResult>;
@@ -851,6 +881,8 @@ declare function useAuth(): UseAuthResult;
851
881
 
852
882
  declare function useUFCFightCard(): QueryResult<UFCEvent[]>;
853
883
 
884
+ declare function useUFCFighterDetail(athleteId: string | null): QueryResult<UFCFighterDetail>;
885
+
854
886
  interface UserProfileCardProps {
855
887
  walletAddress: string;
856
888
  username?: string;
@@ -974,8 +1006,10 @@ interface CreateCustomGameSheetProps {
974
1006
  onAmountChange?: (amount: number | null) => void;
975
1007
  onSuccess?: (result: CreateCustomGameMutationResult) => void;
976
1008
  onError?: (error: Error) => void;
1009
+ /** Pool mode: hides buy-in selection, uses defaultAmount, auto-assigns team, shows "Create Pool" labels */
1010
+ isPoolModeEnabled?: boolean;
977
1011
  }
978
- declare function CreateCustomGameSheet({ visible, onDismiss, title, maxPlayers, fee, presetAmounts, defaultAmount, metadata, onAmountChange, onSuccess, onError, }: CreateCustomGameSheetProps): react_jsx_runtime.JSX.Element;
1012
+ declare function CreateCustomGameSheet({ visible, onDismiss, title, maxPlayers, fee, presetAmounts, defaultAmount, metadata, onAmountChange, onSuccess, onError, isPoolModeEnabled, }: CreateCustomGameSheetProps): react_jsx_runtime.JSX.Element;
979
1013
 
980
1014
  interface JoinGameSheetProps {
981
1015
  visible: boolean;
@@ -991,8 +1025,10 @@ interface JoinGameSheetProps {
991
1025
  /** Callbacks */
992
1026
  onSuccess?: (result: JoinGameMutationResult) => void;
993
1027
  onError?: (error: Error) => void;
1028
+ /** Pool mode: hides team selection, auto-assigns team, shows "Join Pool" labels */
1029
+ isPoolModeEnabled?: boolean;
994
1030
  }
995
- declare function JoinGameSheet({ visible, onDismiss, game, ImageComponent, shortName, homeColor, awayColor, onSuccess, onError, }: JoinGameSheetProps): react_jsx_runtime.JSX.Element;
1031
+ declare function JoinGameSheet({ visible, onDismiss, game, ImageComponent, shortName, homeColor, awayColor, onSuccess, onError, isPoolModeEnabled, }: JoinGameSheetProps): react_jsx_runtime.JSX.Element;
996
1032
 
997
1033
  interface ClaimPrizeSheetProps {
998
1034
  visible: boolean;
@@ -1030,4 +1066,4 @@ declare function ClaimButton({ gameId, style, onSuccess, onError }: ClaimButtonP
1030
1066
  */
1031
1067
  declare function signAndSendBase64Transaction(base64Tx: string, wallet: WalletAdapter, connection: Connection): Promise<string>;
1032
1068
 
1033
- export { AuthGate, type AuthGateProps, type AuthStatus, type AuthenticateParams, type AuthenticateResult, type Bettor, type BuildClaimParams, type BuildClaimResult, type CheckUsernameResult, ClaimButton, type ClaimButtonProps, type ClaimMutationResult, ClaimPrizeSheet, type ClaimPrizeSheetProps, type ClaimStatus, type ConfirmClaimParams, type ConfirmClaimResult, type ConfirmGameParams, type ConfirmGameResult, ConnectWalletScreen, type ConnectWalletScreenProps, type CreateCustomGameMutationResult, type CreateCustomGameParams, type CreateCustomGameResult, CreateCustomGameSheet, type CreateCustomGameSheetProps, type CreateGameMutationResult, type CreateGameParams, type CreateGameResult, DEFAULT_BASE_URL, DEFAULT_RPC_URL, type DeviceInfo, DubsApiError, type DubsAppUser, DubsClient, type DubsClientConfig, type DubsContextValue, type DubsNetwork, DubsProvider, type DubsProviderProps, type DubsPublicUser, type DubsTheme, type DubsUser, type EsportsMatchDetail, type EsportsMatchOpponent, type EsportsMatchResult, type EventMedia, type EventMeta, type EventStream, type GameDetail, type GameListItem, type GameListOpponent, type GameMedia, GamePoster, type GamePosterProps, type GetGamesParams, type GetNetworkGamesParams, type GetUpcomingEventsParams, JoinGameButton, type JoinGameButtonProps, type JoinGameMutationResult, type JoinGameParams, type JoinGameResult, JoinGameSheet, type JoinGameSheetProps, LivePoolsCard, type LivePoolsCardProps, type LiveScore, type LiveScoreCompetitor, type MutationResult, type MutationStatus, type MwaAdapterConfig, type MwaTransactFn, MwaWalletAdapter, NETWORK_CONFIG, type NonceResult, type Opponent, type Pagination, type ParsedError, PhantomDeeplinkAdapter, type PhantomDeeplinkAdapterConfig, type PhantomSession, PickWinnerCard, type PickWinnerCardProps, PlayersCard, type PlayersCardProps, type QueryResult, type RegisterParams, type RegisterResult, type RegistrationScreenProps, SOLANA_PROGRAM_ERRORS, STORAGE_KEYS, SettingsSheet, type SettingsSheetProps, type SolanaErrorCode, type TokenStorage, type UFCData, type UFCEvent, type UFCFight, type UFCFighter, type UiConfig, type UnifiedEvent, type UseAuthResult, UserProfileCard, type UserProfileCardProps, type ValidateEventResult, type WalletAdapter, createSecureStoreStorage, getDeviceInfo, isSolanaSeeker, mergeTheme, parseSolanaError, signAndSendBase64Transaction, useAppConfig, useAuth, useClaim, useCreateCustomGame, useCreateGame, useDubs, useDubsTheme, useEvents, useGame, useGames, useHasClaimed, useJoinGame, useNetworkGames, useUFCFightCard };
1069
+ export { AuthGate, type AuthGateProps, type AuthStatus, type AuthenticateParams, type AuthenticateResult, type Bettor, type BuildClaimParams, type BuildClaimResult, type CheckUsernameResult, ClaimButton, type ClaimButtonProps, type ClaimMutationResult, ClaimPrizeSheet, type ClaimPrizeSheetProps, type ClaimStatus, type ConfirmClaimParams, type ConfirmClaimResult, type ConfirmGameParams, type ConfirmGameResult, ConnectWalletScreen, type ConnectWalletScreenProps, type CreateCustomGameMutationResult, type CreateCustomGameParams, type CreateCustomGameResult, CreateCustomGameSheet, type CreateCustomGameSheetProps, type CreateGameMutationResult, type CreateGameParams, type CreateGameResult, DEFAULT_BASE_URL, DEFAULT_RPC_URL, type DeviceInfo, DubsApiError, type DubsAppUser, DubsClient, type DubsClientConfig, type DubsContextValue, type DubsNetwork, DubsProvider, type DubsProviderProps, type DubsPublicUser, type DubsTheme, type DubsUser, type EsportsMatchDetail, type EsportsMatchOpponent, type EsportsMatchResult, type EventMedia, type EventMeta, type EventStream, type GameDetail, type GameListItem, type GameListOpponent, type GameMedia, GamePoster, type GamePosterProps, type GetGamesParams, type GetNetworkGamesParams, type GetUpcomingEventsParams, JoinGameButton, type JoinGameButtonProps, type JoinGameMutationResult, type JoinGameParams, type JoinGameResult, JoinGameSheet, type JoinGameSheetProps, LivePoolsCard, type LivePoolsCardProps, type LiveScore, type LiveScoreCompetitor, type MutationResult, type MutationStatus, type MwaAdapterConfig, type MwaTransactFn, MwaWalletAdapter, NETWORK_CONFIG, type NonceResult, type Opponent, type Pagination, type ParsedError, PhantomDeeplinkAdapter, type PhantomDeeplinkAdapterConfig, type PhantomSession, PickWinnerCard, type PickWinnerCardProps, PlayersCard, type PlayersCardProps, type QueryResult, type RegisterParams, type RegisterResult, type RegistrationScreenProps, SOLANA_PROGRAM_ERRORS, STORAGE_KEYS, SettingsSheet, type SettingsSheetProps, type SolanaErrorCode, type TokenStorage, type UFCData, type UFCEvent, type UFCFight, type UFCFighter, type UFCFighterDetail, type UiConfig, type UnifiedEvent, type UseAuthResult, UserProfileCard, type UserProfileCardProps, type ValidateEventResult, type WalletAdapter, createSecureStoreStorage, getDeviceInfo, isSolanaSeeker, mergeTheme, parseSolanaError, signAndSendBase64Transaction, useAppConfig, useAuth, useClaim, useCreateCustomGame, useCreateGame, useDubs, useDubsTheme, useEvents, useGame, useGames, useHasClaimed, useJoinGame, useNetworkGames, useUFCFightCard, useUFCFighterDetail };
package/dist/index.d.ts CHANGED
@@ -343,6 +343,7 @@ interface LiveScore {
343
343
  }
344
344
  interface UFCFighter {
345
345
  name: string;
346
+ athleteId: string | null;
346
347
  headshotUrl: string | null;
347
348
  flagUrl: string | null;
348
349
  country: string | null;
@@ -350,6 +351,34 @@ interface UFCFighter {
350
351
  record: string | null;
351
352
  winner: boolean;
352
353
  }
354
+ interface UFCFighterDetail {
355
+ athleteId: string;
356
+ firstName: string | null;
357
+ lastName: string | null;
358
+ fullName: string | null;
359
+ nickname: string | null;
360
+ shortName: string | null;
361
+ height: string | null;
362
+ heightInches: number | null;
363
+ weight: string | null;
364
+ weightLbs: number | null;
365
+ reach: string | null;
366
+ reachInches: number | null;
367
+ age: number | null;
368
+ dateOfBirth: string | null;
369
+ stance: string | null;
370
+ weightClass: string | null;
371
+ citizenship: string | null;
372
+ citizenshipAbbreviation: string | null;
373
+ gym: string | null;
374
+ gymCountry: string | null;
375
+ active: boolean;
376
+ headshotUrl: string | null;
377
+ flagUrl: string | null;
378
+ stanceImageUrl: string | null;
379
+ espnUrl: string | null;
380
+ slug: string | null;
381
+ }
353
382
  interface UFCData {
354
383
  currentRound: number;
355
384
  totalRounds: number;
@@ -401,6 +430,7 @@ declare class DubsClient {
401
430
  getEsportsMatches(videogame?: string): Promise<UnifiedEvent[]>;
402
431
  getEsportsMatchDetail(matchId: string | number): Promise<EsportsMatchDetail>;
403
432
  getUFCFightCard(): Promise<UFCEvent[]>;
433
+ getUFCFighterDetail(athleteId: string): Promise<UFCFighterDetail>;
404
434
  validateEvent(id: string): Promise<ValidateEventResult>;
405
435
  createGame(params: CreateGameParams): Promise<CreateGameResult>;
406
436
  joinGame(params: JoinGameParams): Promise<JoinGameResult>;
@@ -851,6 +881,8 @@ declare function useAuth(): UseAuthResult;
851
881
 
852
882
  declare function useUFCFightCard(): QueryResult<UFCEvent[]>;
853
883
 
884
+ declare function useUFCFighterDetail(athleteId: string | null): QueryResult<UFCFighterDetail>;
885
+
854
886
  interface UserProfileCardProps {
855
887
  walletAddress: string;
856
888
  username?: string;
@@ -974,8 +1006,10 @@ interface CreateCustomGameSheetProps {
974
1006
  onAmountChange?: (amount: number | null) => void;
975
1007
  onSuccess?: (result: CreateCustomGameMutationResult) => void;
976
1008
  onError?: (error: Error) => void;
1009
+ /** Pool mode: hides buy-in selection, uses defaultAmount, auto-assigns team, shows "Create Pool" labels */
1010
+ isPoolModeEnabled?: boolean;
977
1011
  }
978
- declare function CreateCustomGameSheet({ visible, onDismiss, title, maxPlayers, fee, presetAmounts, defaultAmount, metadata, onAmountChange, onSuccess, onError, }: CreateCustomGameSheetProps): react_jsx_runtime.JSX.Element;
1012
+ declare function CreateCustomGameSheet({ visible, onDismiss, title, maxPlayers, fee, presetAmounts, defaultAmount, metadata, onAmountChange, onSuccess, onError, isPoolModeEnabled, }: CreateCustomGameSheetProps): react_jsx_runtime.JSX.Element;
979
1013
 
980
1014
  interface JoinGameSheetProps {
981
1015
  visible: boolean;
@@ -991,8 +1025,10 @@ interface JoinGameSheetProps {
991
1025
  /** Callbacks */
992
1026
  onSuccess?: (result: JoinGameMutationResult) => void;
993
1027
  onError?: (error: Error) => void;
1028
+ /** Pool mode: hides team selection, auto-assigns team, shows "Join Pool" labels */
1029
+ isPoolModeEnabled?: boolean;
994
1030
  }
995
- declare function JoinGameSheet({ visible, onDismiss, game, ImageComponent, shortName, homeColor, awayColor, onSuccess, onError, }: JoinGameSheetProps): react_jsx_runtime.JSX.Element;
1031
+ declare function JoinGameSheet({ visible, onDismiss, game, ImageComponent, shortName, homeColor, awayColor, onSuccess, onError, isPoolModeEnabled, }: JoinGameSheetProps): react_jsx_runtime.JSX.Element;
996
1032
 
997
1033
  interface ClaimPrizeSheetProps {
998
1034
  visible: boolean;
@@ -1030,4 +1066,4 @@ declare function ClaimButton({ gameId, style, onSuccess, onError }: ClaimButtonP
1030
1066
  */
1031
1067
  declare function signAndSendBase64Transaction(base64Tx: string, wallet: WalletAdapter, connection: Connection): Promise<string>;
1032
1068
 
1033
- export { AuthGate, type AuthGateProps, type AuthStatus, type AuthenticateParams, type AuthenticateResult, type Bettor, type BuildClaimParams, type BuildClaimResult, type CheckUsernameResult, ClaimButton, type ClaimButtonProps, type ClaimMutationResult, ClaimPrizeSheet, type ClaimPrizeSheetProps, type ClaimStatus, type ConfirmClaimParams, type ConfirmClaimResult, type ConfirmGameParams, type ConfirmGameResult, ConnectWalletScreen, type ConnectWalletScreenProps, type CreateCustomGameMutationResult, type CreateCustomGameParams, type CreateCustomGameResult, CreateCustomGameSheet, type CreateCustomGameSheetProps, type CreateGameMutationResult, type CreateGameParams, type CreateGameResult, DEFAULT_BASE_URL, DEFAULT_RPC_URL, type DeviceInfo, DubsApiError, type DubsAppUser, DubsClient, type DubsClientConfig, type DubsContextValue, type DubsNetwork, DubsProvider, type DubsProviderProps, type DubsPublicUser, type DubsTheme, type DubsUser, type EsportsMatchDetail, type EsportsMatchOpponent, type EsportsMatchResult, type EventMedia, type EventMeta, type EventStream, type GameDetail, type GameListItem, type GameListOpponent, type GameMedia, GamePoster, type GamePosterProps, type GetGamesParams, type GetNetworkGamesParams, type GetUpcomingEventsParams, JoinGameButton, type JoinGameButtonProps, type JoinGameMutationResult, type JoinGameParams, type JoinGameResult, JoinGameSheet, type JoinGameSheetProps, LivePoolsCard, type LivePoolsCardProps, type LiveScore, type LiveScoreCompetitor, type MutationResult, type MutationStatus, type MwaAdapterConfig, type MwaTransactFn, MwaWalletAdapter, NETWORK_CONFIG, type NonceResult, type Opponent, type Pagination, type ParsedError, PhantomDeeplinkAdapter, type PhantomDeeplinkAdapterConfig, type PhantomSession, PickWinnerCard, type PickWinnerCardProps, PlayersCard, type PlayersCardProps, type QueryResult, type RegisterParams, type RegisterResult, type RegistrationScreenProps, SOLANA_PROGRAM_ERRORS, STORAGE_KEYS, SettingsSheet, type SettingsSheetProps, type SolanaErrorCode, type TokenStorage, type UFCData, type UFCEvent, type UFCFight, type UFCFighter, type UiConfig, type UnifiedEvent, type UseAuthResult, UserProfileCard, type UserProfileCardProps, type ValidateEventResult, type WalletAdapter, createSecureStoreStorage, getDeviceInfo, isSolanaSeeker, mergeTheme, parseSolanaError, signAndSendBase64Transaction, useAppConfig, useAuth, useClaim, useCreateCustomGame, useCreateGame, useDubs, useDubsTheme, useEvents, useGame, useGames, useHasClaimed, useJoinGame, useNetworkGames, useUFCFightCard };
1069
+ export { AuthGate, type AuthGateProps, type AuthStatus, type AuthenticateParams, type AuthenticateResult, type Bettor, type BuildClaimParams, type BuildClaimResult, type CheckUsernameResult, ClaimButton, type ClaimButtonProps, type ClaimMutationResult, ClaimPrizeSheet, type ClaimPrizeSheetProps, type ClaimStatus, type ConfirmClaimParams, type ConfirmClaimResult, type ConfirmGameParams, type ConfirmGameResult, ConnectWalletScreen, type ConnectWalletScreenProps, type CreateCustomGameMutationResult, type CreateCustomGameParams, type CreateCustomGameResult, CreateCustomGameSheet, type CreateCustomGameSheetProps, type CreateGameMutationResult, type CreateGameParams, type CreateGameResult, DEFAULT_BASE_URL, DEFAULT_RPC_URL, type DeviceInfo, DubsApiError, type DubsAppUser, DubsClient, type DubsClientConfig, type DubsContextValue, type DubsNetwork, DubsProvider, type DubsProviderProps, type DubsPublicUser, type DubsTheme, type DubsUser, type EsportsMatchDetail, type EsportsMatchOpponent, type EsportsMatchResult, type EventMedia, type EventMeta, type EventStream, type GameDetail, type GameListItem, type GameListOpponent, type GameMedia, GamePoster, type GamePosterProps, type GetGamesParams, type GetNetworkGamesParams, type GetUpcomingEventsParams, JoinGameButton, type JoinGameButtonProps, type JoinGameMutationResult, type JoinGameParams, type JoinGameResult, JoinGameSheet, type JoinGameSheetProps, LivePoolsCard, type LivePoolsCardProps, type LiveScore, type LiveScoreCompetitor, type MutationResult, type MutationStatus, type MwaAdapterConfig, type MwaTransactFn, MwaWalletAdapter, NETWORK_CONFIG, type NonceResult, type Opponent, type Pagination, type ParsedError, PhantomDeeplinkAdapter, type PhantomDeeplinkAdapterConfig, type PhantomSession, PickWinnerCard, type PickWinnerCardProps, PlayersCard, type PlayersCardProps, type QueryResult, type RegisterParams, type RegisterResult, type RegistrationScreenProps, SOLANA_PROGRAM_ERRORS, STORAGE_KEYS, SettingsSheet, type SettingsSheetProps, type SolanaErrorCode, type TokenStorage, type UFCData, type UFCEvent, type UFCFight, type UFCFighter, type UFCFighterDetail, type UiConfig, type UnifiedEvent, type UseAuthResult, UserProfileCard, type UserProfileCardProps, type ValidateEventResult, type WalletAdapter, createSecureStoreStorage, getDeviceInfo, isSolanaSeeker, mergeTheme, parseSolanaError, signAndSendBase64Transaction, useAppConfig, useAuth, useClaim, useCreateCustomGame, useCreateGame, useDubs, useDubsTheme, useEvents, useGame, useGames, useHasClaimed, useJoinGame, useNetworkGames, useUFCFightCard, useUFCFighterDetail };