@dubsdotapp/expo 0.3.8 → 0.4.0

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/dist/index.d.mts CHANGED
@@ -420,12 +420,13 @@ interface ArcadePool {
420
420
  max_lives: number;
421
421
  period_start: string;
422
422
  period_end: string;
423
- schedule: 'weekly' | 'daily' | 'manual';
423
+ schedule: 'weekly' | 'daily' | 'monthly';
424
424
  status: 'open' | 'active' | 'resolving' | 'complete' | 'cancelled';
425
425
  solana_game_id: string | null;
426
426
  solana_game_address: string | null;
427
427
  total_entries: number;
428
428
  created_at: string;
429
+ next_resolution: string | null;
429
430
  }
430
431
  interface ArcadeEntry {
431
432
  id: number;
@@ -1072,6 +1073,83 @@ declare function useEnterArcadePool(): {
1072
1073
  reset: () => void;
1073
1074
  };
1074
1075
 
1076
+ interface ArcadeCountdown {
1077
+ /** Total milliseconds remaining */
1078
+ totalMs: number;
1079
+ /** Days remaining */
1080
+ days: number;
1081
+ /** Hours remaining (0-23) */
1082
+ hours: number;
1083
+ /** Minutes remaining (0-59) */
1084
+ minutes: number;
1085
+ /** Seconds remaining (0-59) */
1086
+ seconds: number;
1087
+ /** Formatted string e.g. "2d 5h 30m" or "5m 12s" */
1088
+ formatted: string;
1089
+ /** True when countdown has reached zero */
1090
+ isExpired: boolean;
1091
+ }
1092
+ /**
1093
+ * Countdown hook for arcade pool resolution time.
1094
+ * Pass the `next_resolution` ISO string from the pool object.
1095
+ * Ticks every second automatically.
1096
+ */
1097
+ declare function useArcadeCountdown(nextResolution: string | null | undefined): ArcadeCountdown;
1098
+
1099
+ /**
1100
+ * useArcadeBridge
1101
+ *
1102
+ * Owns the full RN ↔ WebView bridge for Dubs Arcade pool integration.
1103
+ * Replaces the manual sessionToken / gameStartTime / handleMessage / injectJavaScript
1104
+ * wiring that previously lived inline in each game's index.tsx.
1105
+ *
1106
+ * PROTOCOL VERSION: dubsArcade 1.0
1107
+ *
1108
+ * Usage:
1109
+ *
1110
+ * const { webviewRef, handleMessage, triggerPlay, lastResult } = useArcadeBridge({
1111
+ * poolId,
1112
+ * startAttempt,
1113
+ * submitScore,
1114
+ * canPlay,
1115
+ * onScoreSubmitted: (result) => { refetchPool(); },
1116
+ * onError: (err) => { console.warn(err); },
1117
+ * });
1118
+ *
1119
+ * <WebView ref={webviewRef} onMessage={handleMessage} ... />
1120
+ * <TouchableOpacity onPress={triggerPlay}>Play</TouchableOpacity>
1121
+ */
1122
+
1123
+ type WebView = any;
1124
+ interface UseArcadeBridgeOptions {
1125
+ /** Whether the player currently has an entry with lives remaining */
1126
+ canPlay: boolean;
1127
+ /** From useArcadeGame — starts a new life on the server */
1128
+ startAttempt: () => Promise<StartAttemptResult>;
1129
+ /** From useArcadeGame — submits a score for a completed life */
1130
+ submitScore: (sessionToken: string, score: number, durationMs?: number) => Promise<SubmitScoreResult>;
1131
+ /** Called after a score is successfully submitted */
1132
+ onScoreSubmitted?: (result: SubmitScoreResult) => void;
1133
+ /** Called on any bridge error (network, invalid message, etc.) */
1134
+ onError?: (err: Error) => void;
1135
+ }
1136
+ interface UseArcadeBridgeResult {
1137
+ /** Attach to <WebView ref={webviewRef}> */
1138
+ webviewRef: React.RefObject<WebView>;
1139
+ /** Pass to <WebView onMessage={handleMessage}> */
1140
+ handleMessage: (event: any) => void;
1141
+ /**
1142
+ * Call when the player taps PLAY in your UI.
1143
+ * Calls startAttempt() then injects the session token + ARCADE_START into the WebView.
1144
+ */
1145
+ triggerPlay: () => Promise<void>;
1146
+ /** The result of the most recent submitted score, or null */
1147
+ lastResult: SubmitScoreResult | null;
1148
+ /** True while a startAttempt or submitScore request is in flight */
1149
+ bridgeLoading: boolean;
1150
+ }
1151
+ declare function useArcadeBridge({ canPlay, startAttempt, submitScore, onScoreSubmitted, onError, }: UseArcadeBridgeOptions): UseArcadeBridgeResult;
1152
+
1075
1153
  interface UserProfileCardProps {
1076
1154
  walletAddress: string;
1077
1155
  username?: string;
@@ -1296,4 +1374,4 @@ declare function signAndSendBase64Transaction(base64Tx: string, wallet: WalletAd
1296
1374
  */
1297
1375
  declare function ensurePngAvatar(url: string | null | undefined): string | undefined;
1298
1376
 
1299
- export { type ArcadeAttempt, type ArcadeEntry, type ArcadeLeaderboardEntry, ArcadeLeaderboardSheet, type ArcadeLeaderboardSheetProps, type ArcadePool, type ArcadePoolStats, AuthGate, type AuthGateProps, type AuthStatus, type AuthenticateParams, type AuthenticateResult, type Bettor, type BuildArcadeEntryResult, 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 EnterArcadePoolMutationResult, type EnterArcadePoolResult, EnterArcadePoolSheet, type EnterArcadePoolSheetProps, 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 PushNotificationStatus, type QueryResult, type RegisterParams, type RegisterResult, type RegistrationScreenProps, SOLANA_PROGRAM_ERRORS, STORAGE_KEYS, SettingsSheet, type SettingsSheetProps, type SolanaErrorCode, type StartAttemptResult, type SubmitScoreResult, type TokenStorage, type UFCData, type UFCEvent, type UFCFight, type UFCFighter, type UFCFighterDetail, type UiConfig, type UnifiedEvent, type UseArcadeGameResult, type UseArcadePoolResult, type UseArcadePoolsResult, type UseAuthResult, UserProfileCard, type UserProfileCardProps, UserProfileSheet, type UserProfileSheetProps, type ValidateEventResult, type WalletAdapter, createSecureStoreStorage, ensurePngAvatar, getDeviceInfo, isSolanaSeeker, mergeTheme, parseSolanaError, signAndSendBase64Transaction, useAppConfig, useArcadeGame, useArcadePool, useArcadePools, useAuth, useClaim, useCreateCustomGame, useCreateGame, useDubs, useDubsTheme, useEnterArcadePool, useEvents, useGame, useGames, useHasClaimed, useJoinGame, useNetworkGames, usePushNotifications, useUFCFightCard, useUFCFighterDetail };
1377
+ export { type ArcadeAttempt, type ArcadeCountdown, type ArcadeEntry, type ArcadeLeaderboardEntry, ArcadeLeaderboardSheet, type ArcadeLeaderboardSheetProps, type ArcadePool, type ArcadePoolStats, AuthGate, type AuthGateProps, type AuthStatus, type AuthenticateParams, type AuthenticateResult, type Bettor, type BuildArcadeEntryResult, 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 EnterArcadePoolMutationResult, type EnterArcadePoolResult, EnterArcadePoolSheet, type EnterArcadePoolSheetProps, 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 PushNotificationStatus, type QueryResult, type RegisterParams, type RegisterResult, type RegistrationScreenProps, SOLANA_PROGRAM_ERRORS, STORAGE_KEYS, SettingsSheet, type SettingsSheetProps, type SolanaErrorCode, type StartAttemptResult, type SubmitScoreResult, type TokenStorage, type UFCData, type UFCEvent, type UFCFight, type UFCFighter, type UFCFighterDetail, type UiConfig, type UnifiedEvent, type UseArcadeBridgeOptions, type UseArcadeBridgeResult, type UseArcadeGameResult, type UseArcadePoolResult, type UseArcadePoolsResult, type UseAuthResult, UserProfileCard, type UserProfileCardProps, UserProfileSheet, type UserProfileSheetProps, type ValidateEventResult, type WalletAdapter, createSecureStoreStorage, ensurePngAvatar, getDeviceInfo, isSolanaSeeker, mergeTheme, parseSolanaError, signAndSendBase64Transaction, useAppConfig, useArcadeBridge, useArcadeCountdown, useArcadeGame, useArcadePool, useArcadePools, useAuth, useClaim, useCreateCustomGame, useCreateGame, useDubs, useDubsTheme, useEnterArcadePool, useEvents, useGame, useGames, useHasClaimed, useJoinGame, useNetworkGames, usePushNotifications, useUFCFightCard, useUFCFighterDetail };
package/dist/index.d.ts CHANGED
@@ -420,12 +420,13 @@ interface ArcadePool {
420
420
  max_lives: number;
421
421
  period_start: string;
422
422
  period_end: string;
423
- schedule: 'weekly' | 'daily' | 'manual';
423
+ schedule: 'weekly' | 'daily' | 'monthly';
424
424
  status: 'open' | 'active' | 'resolving' | 'complete' | 'cancelled';
425
425
  solana_game_id: string | null;
426
426
  solana_game_address: string | null;
427
427
  total_entries: number;
428
428
  created_at: string;
429
+ next_resolution: string | null;
429
430
  }
430
431
  interface ArcadeEntry {
431
432
  id: number;
@@ -1072,6 +1073,83 @@ declare function useEnterArcadePool(): {
1072
1073
  reset: () => void;
1073
1074
  };
1074
1075
 
1076
+ interface ArcadeCountdown {
1077
+ /** Total milliseconds remaining */
1078
+ totalMs: number;
1079
+ /** Days remaining */
1080
+ days: number;
1081
+ /** Hours remaining (0-23) */
1082
+ hours: number;
1083
+ /** Minutes remaining (0-59) */
1084
+ minutes: number;
1085
+ /** Seconds remaining (0-59) */
1086
+ seconds: number;
1087
+ /** Formatted string e.g. "2d 5h 30m" or "5m 12s" */
1088
+ formatted: string;
1089
+ /** True when countdown has reached zero */
1090
+ isExpired: boolean;
1091
+ }
1092
+ /**
1093
+ * Countdown hook for arcade pool resolution time.
1094
+ * Pass the `next_resolution` ISO string from the pool object.
1095
+ * Ticks every second automatically.
1096
+ */
1097
+ declare function useArcadeCountdown(nextResolution: string | null | undefined): ArcadeCountdown;
1098
+
1099
+ /**
1100
+ * useArcadeBridge
1101
+ *
1102
+ * Owns the full RN ↔ WebView bridge for Dubs Arcade pool integration.
1103
+ * Replaces the manual sessionToken / gameStartTime / handleMessage / injectJavaScript
1104
+ * wiring that previously lived inline in each game's index.tsx.
1105
+ *
1106
+ * PROTOCOL VERSION: dubsArcade 1.0
1107
+ *
1108
+ * Usage:
1109
+ *
1110
+ * const { webviewRef, handleMessage, triggerPlay, lastResult } = useArcadeBridge({
1111
+ * poolId,
1112
+ * startAttempt,
1113
+ * submitScore,
1114
+ * canPlay,
1115
+ * onScoreSubmitted: (result) => { refetchPool(); },
1116
+ * onError: (err) => { console.warn(err); },
1117
+ * });
1118
+ *
1119
+ * <WebView ref={webviewRef} onMessage={handleMessage} ... />
1120
+ * <TouchableOpacity onPress={triggerPlay}>Play</TouchableOpacity>
1121
+ */
1122
+
1123
+ type WebView = any;
1124
+ interface UseArcadeBridgeOptions {
1125
+ /** Whether the player currently has an entry with lives remaining */
1126
+ canPlay: boolean;
1127
+ /** From useArcadeGame — starts a new life on the server */
1128
+ startAttempt: () => Promise<StartAttemptResult>;
1129
+ /** From useArcadeGame — submits a score for a completed life */
1130
+ submitScore: (sessionToken: string, score: number, durationMs?: number) => Promise<SubmitScoreResult>;
1131
+ /** Called after a score is successfully submitted */
1132
+ onScoreSubmitted?: (result: SubmitScoreResult) => void;
1133
+ /** Called on any bridge error (network, invalid message, etc.) */
1134
+ onError?: (err: Error) => void;
1135
+ }
1136
+ interface UseArcadeBridgeResult {
1137
+ /** Attach to <WebView ref={webviewRef}> */
1138
+ webviewRef: React.RefObject<WebView>;
1139
+ /** Pass to <WebView onMessage={handleMessage}> */
1140
+ handleMessage: (event: any) => void;
1141
+ /**
1142
+ * Call when the player taps PLAY in your UI.
1143
+ * Calls startAttempt() then injects the session token + ARCADE_START into the WebView.
1144
+ */
1145
+ triggerPlay: () => Promise<void>;
1146
+ /** The result of the most recent submitted score, or null */
1147
+ lastResult: SubmitScoreResult | null;
1148
+ /** True while a startAttempt or submitScore request is in flight */
1149
+ bridgeLoading: boolean;
1150
+ }
1151
+ declare function useArcadeBridge({ canPlay, startAttempt, submitScore, onScoreSubmitted, onError, }: UseArcadeBridgeOptions): UseArcadeBridgeResult;
1152
+
1075
1153
  interface UserProfileCardProps {
1076
1154
  walletAddress: string;
1077
1155
  username?: string;
@@ -1296,4 +1374,4 @@ declare function signAndSendBase64Transaction(base64Tx: string, wallet: WalletAd
1296
1374
  */
1297
1375
  declare function ensurePngAvatar(url: string | null | undefined): string | undefined;
1298
1376
 
1299
- export { type ArcadeAttempt, type ArcadeEntry, type ArcadeLeaderboardEntry, ArcadeLeaderboardSheet, type ArcadeLeaderboardSheetProps, type ArcadePool, type ArcadePoolStats, AuthGate, type AuthGateProps, type AuthStatus, type AuthenticateParams, type AuthenticateResult, type Bettor, type BuildArcadeEntryResult, 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 EnterArcadePoolMutationResult, type EnterArcadePoolResult, EnterArcadePoolSheet, type EnterArcadePoolSheetProps, 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 PushNotificationStatus, type QueryResult, type RegisterParams, type RegisterResult, type RegistrationScreenProps, SOLANA_PROGRAM_ERRORS, STORAGE_KEYS, SettingsSheet, type SettingsSheetProps, type SolanaErrorCode, type StartAttemptResult, type SubmitScoreResult, type TokenStorage, type UFCData, type UFCEvent, type UFCFight, type UFCFighter, type UFCFighterDetail, type UiConfig, type UnifiedEvent, type UseArcadeGameResult, type UseArcadePoolResult, type UseArcadePoolsResult, type UseAuthResult, UserProfileCard, type UserProfileCardProps, UserProfileSheet, type UserProfileSheetProps, type ValidateEventResult, type WalletAdapter, createSecureStoreStorage, ensurePngAvatar, getDeviceInfo, isSolanaSeeker, mergeTheme, parseSolanaError, signAndSendBase64Transaction, useAppConfig, useArcadeGame, useArcadePool, useArcadePools, useAuth, useClaim, useCreateCustomGame, useCreateGame, useDubs, useDubsTheme, useEnterArcadePool, useEvents, useGame, useGames, useHasClaimed, useJoinGame, useNetworkGames, usePushNotifications, useUFCFightCard, useUFCFighterDetail };
1377
+ export { type ArcadeAttempt, type ArcadeCountdown, type ArcadeEntry, type ArcadeLeaderboardEntry, ArcadeLeaderboardSheet, type ArcadeLeaderboardSheetProps, type ArcadePool, type ArcadePoolStats, AuthGate, type AuthGateProps, type AuthStatus, type AuthenticateParams, type AuthenticateResult, type Bettor, type BuildArcadeEntryResult, 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 EnterArcadePoolMutationResult, type EnterArcadePoolResult, EnterArcadePoolSheet, type EnterArcadePoolSheetProps, 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 PushNotificationStatus, type QueryResult, type RegisterParams, type RegisterResult, type RegistrationScreenProps, SOLANA_PROGRAM_ERRORS, STORAGE_KEYS, SettingsSheet, type SettingsSheetProps, type SolanaErrorCode, type StartAttemptResult, type SubmitScoreResult, type TokenStorage, type UFCData, type UFCEvent, type UFCFight, type UFCFighter, type UFCFighterDetail, type UiConfig, type UnifiedEvent, type UseArcadeBridgeOptions, type UseArcadeBridgeResult, type UseArcadeGameResult, type UseArcadePoolResult, type UseArcadePoolsResult, type UseAuthResult, UserProfileCard, type UserProfileCardProps, UserProfileSheet, type UserProfileSheetProps, type ValidateEventResult, type WalletAdapter, createSecureStoreStorage, ensurePngAvatar, getDeviceInfo, isSolanaSeeker, mergeTheme, parseSolanaError, signAndSendBase64Transaction, useAppConfig, useArcadeBridge, useArcadeCountdown, useArcadeGame, useArcadePool, useArcadePools, useAuth, useClaim, useCreateCustomGame, useCreateGame, useDubs, useDubsTheme, useEnterArcadePool, useEvents, useGame, useGames, useHasClaimed, useJoinGame, useNetworkGames, usePushNotifications, useUFCFightCard, useUFCFighterDetail };