{"version":3,"file":"static/js/177.741040c6.chunk.js","mappings":"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","sources":["configs.ts","hooks/useProgram.ts","state/global/actions.ts","state/games/actions.ts","state/games/hooks/useGame.ts","hooks/useUserPK.ts","hooks/useUrlParams.ts","state/games/hooks/useInitGamesData.ts","state/price/hooks/usePrice.ts","components/Icons/Solana.tsx","providers/Intl.tsx","components/Intl/Lang.tsx","webpack://interface/./src/components/Intl/Intl.module.scss?c451","components/Intl/Number.tsx","webpack://interface/./src/components/Price/Price.module.scss?284d","components/Price/SolPrice.tsx","state/games/hooks/useUpdateGame.ts","utils/numbers.ts","utils/getChainCurrentTime.ts","state/rounds/hooks/useRound.ts","state/playerBets/hooks/usePlayerBets.ts","types/enums.ts","providers/Modal.tsx","webpack://interface/./src/components/Modal/Modal.module.scss?8839","components/Modal/ModalWrapper.tsx","components/Box/Box.tsx","components/Box/Flex.tsx","components/Icons/Loading.tsx","styles/utils.ts","components/Button/index.tsx","components/Icons/BetUp.svg","webpack://interface/./src/components/Modal/HistoryModal/HistoryModal.module.scss?0b87","components/Modal/HistoryModal/HistoryDetails.tsx","webpack://interface/./src/components/ChoiceDisplay/ChoiceDisplay.module.scss?4c20","components/Icons/BetDraw.svg","components/Icons/BetDown.svg","components/ChoiceDisplay/index.tsx","webpack://interface/./src/components/PriceDiff/PriceDiff.module.scss?8477","components/PriceDiff/index.tsx","components/Modal/HistoryModal/HistoryItemDetail.tsx","components/Icons/Chevron.tsx","components/Icons/Bin.tsx","styles/theme.ts","components/Modal/HistoryModal/HistoryItem.tsx","components/Modal/HistoryModal/HistoryModal.tsx","components/Modal/ChartModal/ChartModal.tsx","state/chart/hooks/useChart.ts","components/Modal/ModalContainer.tsx","components/Modal/ModalPortal.tsx","webpack://interface/./src/components/Modal/ErrorModal/ErrorModal.module.scss?1eea","components/Modal/ErrorModal/index.tsx","components/Modal/index.tsx","hooks/useSolSeer.ts","components/ConnectWallet/index.tsx","webpack://interface/./src/components/Round/Round.module.scss?c8a9","webpack://interface/./src/components/Input/Input.module.scss?1a14","components/Input/Input.tsx","components/Input/NumberInput.tsx","webpack://interface/./src/components/Pills/Pills.module.scss?9dc3","components/Pills/GrayPill.tsx","components/Round/styles.tsx","components/Round/PayoutEstimate.tsx","components/Round/BetBox.tsx","components/Icons/BetTrophy.svg","state/global/hooks/useGlobal.ts","webpack://interface/./src/components/Claim/Claim.module.scss?1cf5","components/Claim/index.tsx","components/Round/ProgressBar.tsx","components/Round/UserPosition.tsx","components/Round/PayoutRatio.tsx","components/Icons/BetUp.tsx","components/Icons/BetDown.tsx","components/Icons/BetDraw.tsx","components/Round/UserBetPast.tsx","components/Round/RoundDetails.tsx","components/Round/UserBet.tsx","components/Round/NextRound.tsx","components/Round/CalculatingRound.tsx","utils/convertReadableTime.ts","components/Round/UpcomingRound.tsx","components/Round/Round.tsx","webpack://interface/./src/components/Game/Game.module.scss?c574","components/Game/TimeRemaining.tsx","components/Icons/HistoryIcon.tsx","components/Game/HistoryButton.tsx","components/Icons/Arrow.tsx","components/Icons/Cards.tsx","components/Game/RoundToggle.tsx","components/Game/MobileDetailsSection.tsx","components/Icons/Timer.tsx","components/Game/index.tsx","hooks/useSlidesPerView.ts","webpack://interface/./src/pages/Home/Home.module.scss?a3c9","pages/Home/Home.tsx","hooks/useKeepUpdated.ts","webpack://interface/./src/pages/Faq/Faq.module.scss?cfce","pages/Faq/Faq.tsx","webpack://interface/./src/components/Navigation/Navigation.module.scss?87ce","components/Navigation/Navigation.tsx","hooks/useWindowWidth.ts","webpack://interface/./src/App.module.scss?bbfa","pages/Admin/GameAdminPanel.tsx","webpack://interface/./src/pages/Admin/Admin.module.scss?dccf","pages/Admin/Admin.tsx","App.tsx","state/games/reducer.ts","state/rounds/reducer.ts","state/playerBets/reducer.ts","state/price/reducer.ts","state/global/reducer.ts","state/chart/actions.ts","state/chart/reducer.ts","state/store.ts","Providers.tsx","components/Icons/Logo.tsx"],"sourcesContent":["import * as anchor from '@project-serum/anchor';\n\nexport const RPC = process.env.REACT_APP_RPC!;\n\nexport const SOL_SEER_PROGRAM = new anchor.web3.PublicKey(process.env.REACT_APP_SOL_SEER_PROGRAM!);\n\nexport const MAIN_STATE = new anchor.web3.PublicKey(process.env.REACT_APP_MAIN_STATE!)\n\nexport const SOL_USDC_GAME_STATE = new anchor.web3.PublicKey(process.env.REACT_APP_SOL_USDC_GAME_STATE!)\n\nexport const UPDATE_INTERVAL_MS = 5000;\n\nexport interface GameStateAndName {\n address: anchor.web3.PublicKey,\n name: string,\n}\n\nexport const GAME_STATES: GameStateAndName[] = [\n {\n name: 'SOLUSD',\n address: SOL_USDC_GAME_STATE,\n }\n]\n\n","import { useMemo } from 'react'\nimport { useWallet } from '@solana/wallet-adapter-react';\nimport { web3, Provider, Program, Idl } from '@project-serum/anchor';\nimport SolSeerIDL from '../idl/sol_seer.json';\nimport { RPC, SOL_SEER_PROGRAM } from '../configs'\n\nconst connection = new web3.Connection(RPC);\n\nlet randomWallet = new web3.Keypair() as any;\n\nconst useProgram = () => {\n const wallet = useWallet();\n\n const program = useMemo(\n () => {\n const provider = new Provider(connection, wallet as any || randomWallet, { preflightCommitment: 'recent', commitment: 'recent' });\n\n const program = new Program(SolSeerIDL as Idl, SOL_SEER_PROGRAM, provider);\n\n return program;\n },\n [wallet]\n )\n\n return program;\n}\n\nexport default useProgram","import { createAction } from '@reduxjs/toolkit'\n\nexport const updateBalance = createAction('global/updateBalance')","import { createAction } from '@reduxjs/toolkit'\nimport { FullDataSerializable, LatestResponseSerializable } from 'sol-seer-lib'\n\nexport const initializeData = createAction<{ balance: number, games: FullDataSerializable[] }>('games/initializeData')\nexport const updateData = createAction('games/updateData')","import { shallowEqual, useSelector } from 'react-redux';\nimport { GameStateSerializable } from 'sol-seer-lib';\nimport { AppState } from '../..';\nimport { SOL_USDC_GAME_STATE } from '../../../configs';\n\n// Should not use this\nexport const useDefaultGame = () => {\n return SOL_USDC_GAME_STATE.toBase58() \n}\n\nexport const useGame = (gameState: string): GameStateSerializable => {\n const data = useSelector((state) => state.games[gameState], shallowEqual);\n\n return data;\n}\n\nexport const useCurrentRounds = (gameStates: string[]): number[] => {\n const data = useSelector((state) => {\n return gameStates.map((gameState) => {\n return state.games[gameState]?.currentRound\n }).filter(v => v || v === 0)\n }, shallowEqual); \n\n return data;\n}\n\nexport const useOracles = (gameStates: string[]): string[] => {\n const data = useSelector((state) => {\n return gameStates.map((gameState) => {\n return state.games[gameState]?.oracleAccount\n }).filter(v => v)\n }, shallowEqual); \n\n return data;\n}\n\nexport const useGetCurrentRound = (gameState: string): number => {\n const currentRound = useSelector((state) => {\n return state.games[gameState]?.currentRound;\n });\n\n return currentRound; \n}\n","import { useWallet } from \"@solana/wallet-adapter-react\";\nimport { PublicKey } from \"@solana/web3.js\";\nimport { useUrlParams } from \"./useUrlParams\";\n\nexport function useUserPK(): PublicKey | null {\n const wallet = useWallet();\n\n const { debugUser } = useUrlParams();\n\n return wallet.publicKey || debugUser;\n}","import { PublicKey } from \"@solana/web3.js\";\n\nexport function useUrlParams() {\n let searchParams = (new URL(document.location as any)).searchParams\n\n const debug = searchParams.get('debug');\n\n let debugUser = null;\n\n if (debug) {\n try {\n debugUser = new PublicKey(debug);\n } catch (e) {}\n }\n\n return {\n debugUser: debugUser,\n }\n}","import { PublicKey } from '@solana/web3.js';\nimport { AsyncPolling } from 'awaitress';\nimport { useEffect, useMemo } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { Batch } from 'sol-seer-lib';\nimport { AppDispatch } from '../..';\nimport { GAME_STATES, RPC } from '../../../configs';\nimport useProgram from '../../../hooks/useProgram';\nimport { updateBalance } from '../../global/actions';\nimport { initializeData, updateData } from '../actions';\nimport { useCurrentRounds, useOracles } from './useGame';\nimport { UPDATE_INTERVAL_MS } from '../../../configs';\nimport { useUserPK } from '../../../hooks/useUserPK';\n\nconst gameStates = GAME_STATES.map(v => v.address);\n\nconst gameStatesString = gameStates.map((v) => v.toBase58());\n\nexport const useInitGamesData = () => {\n const dispatch = useDispatch();\n\n const program = useProgram();\n\n const userPK = useUserPK(); \n\n const batch = useMemo(() => new Batch(program, RPC, userPK), [program, userPK]);\n\n const currentRounds = useCurrentRounds(gameStatesString);\n const oracleAccounts = useOracles(gameStatesString);\n\n useEffect(() => {\n batch.getAllData(gameStates).then(({ balance, gameStates }) => {\n (window as any).data = gameStates[0].gameStateData\n\n dispatch(initializeData({\n balance,\n games: batch.convertFullDataSerializable(gameStates)\n }))\n })\n }, [batch, dispatch])\n\n useEffect(() => {\n let poll: AsyncPolling;\n let cleared = false;\n\n const gameStates = GAME_STATES.map(v => v.address);\n\n const pollFn = async () => {\n const pollParams = gameStates.map((gameState, index) => ({\n pubkey: gameState,\n currentRound: currentRounds[index],\n oracleAccount: new PublicKey(oracleAccounts[index])\n }));\n\n const { latest, balance } = await batch.latest(pollParams);\n\n dispatch(updateBalance(balance))\n dispatch(updateData(latest.map(batch.convertLatestSerializable)))\n }\n \n if (!cleared && !!currentRounds.length) {\n poll = new AsyncPolling(pollFn, UPDATE_INTERVAL_MS); \n poll.start();\n }\n\n return () => {\n cleared = true;\n if (poll) {\n poll.pause();\n }\n }\n }, [batch, dispatch, currentRounds, oracleAccounts])\n}","import { useSelector } from \"react-redux\";\nimport { AppState } from \"../..\";\n\nexport const useGetPrice = (gameState: string): number => {\n const price = useSelector((state) => state.price[gameState]);\n\n return price;\n}","import React from 'react'\n\ninterface Props {\n size?: number,\n className?: string\n}\n\nconst Solana = ({ size = 94, className }: Props) => {\n return (\n \n \n \n \n \n \n \n \n \n )\n}\n\nexport default React.memo(Solana)","import React from 'react'\nimport { createContext, useContext, FC, ReactNode, useEffect, useReducer, useCallback } from 'react'\n\nexport type Locale = 'en' | 'fr';\n\nconst locales: Locale[] = ['en', 'fr'];\n\nenum ActionTypes {\n GetLocaleData,\n UpdateLocale\n}\n\ninterface LocaleData {\n [key: string]: string\n}\n\nfunction determineLanguage() {\n const browserLocale = navigator.language;\n \n const exactMatch = locales.find((locale) => locale === browserLocale);\n\n if (exactMatch) return exactMatch;\n\n const closestMatch = locales.find((locale) => browserLocale.startsWith(locale));\n\n return closestMatch || 'en';\n}\n\nasync function fetchLocale(locale: Locale): Promise {\n let localeData: any = await import('../locales/en.json');\n // if (locale === 'fr') {\n // localeData = await import('../locales/fr.json')\n // } else {\n // // Default en\n // localeData = ; \n // }\n\n return localeData;\n}\n\ninterface State {\n locale: Locale,\n data: LocaleData,\n}\n\ninterface IContext {\n state: State,\n dispatch: React.Dispatch\n}\n\nconst initialState: State = {\n locale: determineLanguage(),\n data: {}\n}\n\nconst Context = createContext({\n state: initialState,\n dispatch: () => {},\n})\n\ninterface Props {\n children: ReactNode\n}\n\nexport const useIntl = (): { state: State, updateLocale: (locale: Locale) => void } => {\n const { state, dispatch } = useContext(Context);\n\n const updateLocale = useCallback((locale: Locale) => {\n dispatch({\n type: ActionTypes.UpdateLocale,\n payload: locale\n })\n }, [dispatch])\n\n return {\n state,\n updateLocale\n };\n}\n\ninterface GetLocaleData {\n type: ActionTypes.GetLocaleData,\n payload: LocaleData\n}\n\ninterface UpdateLocale {\n type: ActionTypes.UpdateLocale\n payload: Locale\n}\n\ntype Action = GetLocaleData | UpdateLocale;\n\nfunction reducer(state: State, action: Action) {\n switch (action.type) {\n case ActionTypes.GetLocaleData: {\n return {\n ...state,\n data: action.payload,\n };\n }\n case ActionTypes.UpdateLocale: {\n return {\n ...state,\n locale: action.payload\n }\n }\n default: {\n throw new Error('unrecognised action')\n }\n }\n}\n\nexport const IntlProvider: FC = ({ children }) => {\n const [state, dispatch] = useReducer(reducer, initialState)\n\n useEffect(() => {\n fetchLocale(state.locale).then((data) => {\n dispatch({\n type: ActionTypes.GetLocaleData,\n payload: data\n }) \n })\n }, [state.locale])\n\n const context = {\n state,\n dispatch,\n }\n\n return (\n \n {children}\n \n )\n}","import React from 'react'\nimport { useIntl } from '../../providers/Intl'\n\ninterface Props {\n value: string\n}\n\nconst Lang = ({ value }: Props) => {\n const { state } = useIntl();\n\n let translation = state.data[value];\n\n if (!translation) {\n console.error(`intl \"${value}\" is missing`);\n\n translation = value;\n }\n\n return (\n <>{translation}\n )\n}\n\nexport default React.memo(Lang)","// extracted by mini-css-extract-plugin\nexport default {\"positive\":\"Intl_positive__EXs-R\",\"neutral\":\"Intl_neutral__f-Qwl\",\"negative\":\"Intl_negative__lPT01\"};","import React from 'react'\nimport { useIntl } from '../../providers/Intl'\nimport BigNumber from 'bignumber.js';\nimport classNames from 'classnames'\nimport styles from './Intl.module.scss';\n\ninterface Props extends Intl.NumberFormatOptions {\n value: number | string,\n decimals?: number,\n prefix?: string,\n suffix?: string,\n className?: string,\n digits?: number,\n withColorValue?: string | number,\n}\n\nconst Number = ({ value, decimals = 0, prefix, suffix, className, withColorValue, digits, ...props }: Props) => {\n const { state } = useIntl();\n\n const decimal = new BigNumber(value).dividedBy(10 ** decimals).toNumber();\n\n let formatProps = props;\n if (digits !== undefined) {\n formatProps = {\n ...props,\n maximumFractionDigits: digits,\n minimumFractionDigits: digits,\n }\n }\n\n const formattedNumber = new Intl.NumberFormat(state.locale, formatProps).format(decimal)\n\n let colorClass = '';\n if (withColorValue !== undefined) {\n const pnlBN = new BigNumber(withColorValue);\n\n colorClass = classNames({ \n [styles.positive]: pnlBN.isPositive(),\n [styles.neutral]: pnlBN.isZero(),\n [styles.negative]: pnlBN.isNegative()\n })\n }\n\n return (\n \n {prefix}{formattedNumber}{suffix}\n \n )\n}\n\nexport default Number","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"Price_container__-NtXL\",\"icon\":\"Price_icon__cAfTj\",\"currency\":\"Price_currency__PQz-H\",\"text\":\"Price_text__3Xz6I\"};","import React from 'react'\nimport { useGetPrice } from '../../state/price/hooks/usePrice';\nimport Solana from '../Icons/Solana';\nimport { Number } from '../Intl';\nimport styles from './Price.module.scss';\n\ninterface Props {\n gameState: string\n}\n\nconst SolPrice = ({ gameState }: Props) => {\n const price = useGetPrice(gameState);\n\n return (\n
\n \n
\n SOL/USD\n { !price && Fetching Price...}\n { !!price && <>\n $\n }\n
\n
\n )\n}\n\nexport default SolPrice ","import { useCallback, useMemo } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { Batch } from 'sol-seer-lib';\nimport { AppDispatch } from '../..';\nimport { GAME_STATES, RPC } from '../../../configs';\nimport useProgram from '../../../hooks/useProgram';\nimport { useUserPK } from '../../../hooks/useUserPK';\nimport { initializeData } from '../actions';\n\nexport const useUpdateGameState = () => {\n const dispatch = useDispatch();\n\n const userPK = useUserPK(); \n\n const program = useProgram();\n\n const batch = useMemo(() => new Batch(program, RPC, userPK), [program, userPK]);\n\n const updateGameState = useCallback(async () => {\n const gameStatePubkeys = GAME_STATES.map(v => v.address);\n\n const { balance, gameStates } = await batch.getAllData(gameStatePubkeys);\n\n dispatch(initializeData({\n balance,\n games: batch.convertFullDataSerializable(gameStates)\n }))\n }, [batch, dispatch])\n\n return [updateGameState];\n}","import BigNumber from \"bignumber.js\";\nimport { Bet, PlayerBetHistorySerializable, RoundStateSerializable } from \"sol-seer-lib\";\n\nexport function computeTotal(roundData: RoundStateSerializable): string {\n const total = new BigNumber(roundData.totalBetUp).plus(roundData.totalBetDown).plus(roundData.totalBetDraw);\n\n return total.toFixed();\n}\n\nexport function getPoolTotal(roundData: RoundStateSerializable, choice: Bet): string {\n let poolTotal = roundData?.totalBetDraw;\n if (choice === Bet.UP) {\n poolTotal = roundData?.totalBetUp;\n } else if (choice === Bet.DOWN) {\n poolTotal = roundData?.totalBetDown;\n }\n\n return poolTotal || '0';\n}\n\nexport function calculatePayoutRatio(num: string, total: string) {\n let numBN = new BigNumber(num);\n let totalBN = new BigNumber(total);\n\n if (numBN.eq(0) && !totalBN.eq(0)) {\n numBN = new BigNumber(10 ** 8); // 0.1 SOL min amount\n totalBN = totalBN.plus(numBN);\n }\n\n let ratio = '2';\n if (!totalBN.eq(0)) {\n ratio = totalBN.multipliedBy(100).div(numBN).div(100).toFixed();\n }\n\n return ratio;\n}\n\nexport function calculatePayoutAmount(num: string, poolTotal: string, total: string, feeRate: number): { amount: string, profit: string, fees: string } {\n const totalBeforeFees = new BigNumber(num).multipliedBy(total).dividedBy(poolTotal);\n const fees = totalBeforeFees.multipliedBy(feeRate).dividedBy(10_000);\n const totlaAfterFees = totalBeforeFees.minus(fees);\n\n return {\n amount: totlaAfterFees.toFixed(),\n profit: totlaAfterFees.minus(num).toFixed(),\n fees: fees.toFixed()\n }\n}\n\nexport function calculateTotalProfit(playerBetHistory: PlayerBetHistorySerializable | null): string {\n if (playerBetHistory) {\n return new BigNumber(playerBetHistory.totalWinnings).plus(playerBetHistory.totalRefunds).minus(playerBetHistory.totalSpend).toFixed();\n } else {\n return '0';\n }\n}","// The chain time seems a little bit delayed\nexport function getChainCurrentTime() {\n return new Date().getTime() - 2000;\n}","import { BN } from '@project-serum/anchor'\nimport { useEffect, useState } from 'react';\nimport { shallowEqual, useSelector } from \"react-redux\";\nimport { Bet, getCorrectChoice, RoundStateSerializable } from \"sol-seer-lib\";\nimport { AppState } from \"../..\";\nimport { RoundStatus } from '../../../types/enums';\nimport { computeTotal } from \"../../../utils/numbers\";\nimport { getChainCurrentTime } from '../../../utils/getChainCurrentTime';\n\nexport function useGetRound(gameState: string, round: number) {\n const roundData = useSelector((state) => {\n return state.rounds[gameState][round] || null;\n }, shallowEqual);\n\n return roundData;\n}\n\nexport function useGetRoundTotal(gameState: string, round: number): string {\n const roundData = useGetRound(gameState, round);\n\n if (roundData) {\n return computeTotal(roundData)\n }\n\n return '0';\n}\n\nexport function useGetRoundWinningChoice(gameState: string, round: number): Bet | null {\n const roundData = useGetRound(gameState, round);\n\n if (roundData) {\n return getCorrectChoice(new BN(roundData.startValue), new BN(roundData.endValue));\n }\n\n return null;\n}\n\nexport function useGetRoundStatus(gameState: string, round: number): RoundStatus {\n const roundData = useGetRound(gameState, round);\n\n if (roundData?.endValue && roundData?.endValue !== '0') {\n return RoundStatus.COMPLETED;\n } else if (roundData?.endTs) {\n return RoundStatus.LIVE\n }\n\n return RoundStatus.UPCOMING\n}\n\nexport function useGetIsRoundCalculating(gameState: string, round: number) {\n const roundData = useGetRound(gameState, round);\n\n const [isCalculating, setIsCalculating] = useState(false)\n \n useEffect(() => {\n const currentTime = Math.round(getChainCurrentTime() / 1000);\n\n let timeout: NodeJS.Timeout;\n\n if (roundData && roundData.endValue === '0' && !!roundData.endTs) {\n timeout = setTimeout(() => {\n setIsCalculating(true);\n }, (roundData?.endTs - currentTime) * 1000)\n }\n \n return () => {\n if (timeout) {\n clearTimeout(timeout)\n } \n }\n }, [setIsCalculating, roundData])\n\n return isCalculating;\n}\n","import { BN } from \"@project-serum/anchor\";\nimport { useMemo } from \"react\";\nimport BigNumber from \"bignumber.js\";\nimport { shallowEqual, useSelector } from \"react-redux\";\nimport { Bet, PlayerBetStateSerializable, convertToBetEnum, RoundStateSerializable, PlayerBetHistorySerializable, getCorrectChoice } from \"sol-seer-lib\";\nimport { AppState } from \"../..\";\nimport { calculatePayoutAmount, calculateTotalProfit, computeTotal, getPoolTotal } from \"../../../utils/numbers\";\nimport { useGame } from \"../../games/hooks\";\nimport { useGetRound, useGetRoundTotal, useGetRoundWinningChoice } from \"../../rounds/hooks/useRound\";\n\nexport function useGetPlayerBet(gameState: string, round: number) {\n const playerBetData = useSelector((state) => {\n return state.playerBets[gameState].items[round] || null;\n }, shallowEqual);\n\n return playerBetData;\n}\n\nexport const useGetPlayerHistory = (gameState: string): number[] | null => {\n const playerHistoryRounds = useSelector((state) => {\n return state.playerBets[gameState].history?.rounds || null;\n }, shallowEqual);\n\n return useMemo(() => {\n return playerHistoryRounds && [...playerHistoryRounds].sort((a, b) => b - a);\n }, [playerHistoryRounds])\n}\n\nexport const useGetClaimableRounds = (gameState: string): number[] | null => {\n const claimableRounds = useSelector((state) => {\n let playerRounds = state.playerBets[gameState].history?.rounds || null;\n\n if (!playerRounds) return null;\n\n playerRounds = playerRounds.filter((round) => {\n const roundData = state.rounds[gameState][round];\n const playerBet = state.playerBets[gameState].items[round];\n\n if (!roundData || !playerBet || playerBet.claimed || roundData.endValue === '0') return false;\n\n if (roundData.isRefund) return true;\n\n const selectedChoice = convertToBetEnum(playerBet.choice);\n const correctChoice = getCorrectChoice(new BN(roundData.startValue), new BN(roundData.endValue))\n\n return selectedChoice === correctChoice;\n })\n\n return playerRounds;\n }, shallowEqual);\n\n return claimableRounds;\n}\n\nexport const useProfitLoss = (gameState: string): { pnl: string, unclaimedAmount: string } => {\n const playerHistory = useSelector((state) => {\n return state.playerBets[gameState].history;\n });\n\n const playerBets = useSelector((state) => {\n return state.playerBets[gameState].items;\n });\n\n const rounds = useSelector((state) => {\n return state.rounds[gameState];\n });\n\n const game = useGame(gameState);\n\n if (playerHistory) {\n let claimedPNL = calculateTotalProfit(playerHistory);\n\n const unclaimedTotalRewards = playerHistory.rounds.map((round) => {\n const roundData = rounds[round];\n const playerBet = playerBets[round];\n\n if (playerBet.claimed || !roundData.endTs) {\n return '0';\n } else if (roundData.isRefund) {\n return playerBet.amount;\n } else {\n const correctChoice = getCorrectChoice(new BN(roundData.startValue), new BN(roundData.endValue))\n \n const userChoice = convertToBetEnum(playerBet.choice);\n\n const roundWon = correctChoice === userChoice;\n\n if (roundWon) {\n const totalBetAmount = computeTotal(roundData);\n\n const poolTotal = getPoolTotal(roundData, userChoice);\n\n const { amount } = calculatePayoutAmount(playerBet.amount, poolTotal, totalBetAmount, game.feeRateBips);\n\n return amount;\n } else {\n return '0'\n }\n }\n }).reduce((prev, current) => {\n return prev.plus(current);\n }, new BigNumber(0))\n\n const pnl = unclaimedTotalRewards.plus(claimedPNL).toFixed();\n\n return {\n pnl,\n unclaimedAmount: unclaimedTotalRewards.toFixed()\n };\n } \n \n return {\n pnl: '0',\n unclaimedAmount: '0',\n };\n}\n\nexport const useCalculateUserPayout = (gameState: string, round: number): { amount: string, profit: string, fees: string, claimable: boolean } => {\n const userBet = useGetPlayerBet(gameState, round);\n const roundData = useGetRound(gameState, round);\n const totalBetAmount = useGetRoundTotal(gameState, round);\n const correctChoice = useGetRoundWinningChoice(gameState, round);\n const game = useGame(gameState);\n \n if (!userBet?.choice || roundData?.endValue === '0') {\n return {\n amount: '0',\n profit: '0',\n fees: '0',\n claimable: false\n } \n }\n\n if (roundData?.isRefund) {\n return {\n amount: userBet.amount,\n profit: '0',\n fees: userBet.amount,\n claimable: !userBet.claimed\n }\n }\n\n const userChoice = convertToBetEnum(userBet.choice);\n\n const roundWon = correctChoice === userChoice;\n\n let poolTotal = roundData?.totalBetDraw;\n if (userChoice === Bet.UP) {\n poolTotal = roundData?.totalBetUp;\n } else if (userChoice === Bet.DOWN) {\n poolTotal = roundData?.totalBetDown;\n }\n\n if (!poolTotal || poolTotal === '0') {\n return {\n amount: '0',\n profit: '0',\n fees: '0',\n claimable: false\n }\n }\n\n if (!roundWon) {\n return {\n amount: '0',\n profit: `-${userBet?.amount}`,\n fees: '0',\n claimable: false\n } \n }\n\n const { amount, profit, fees } = calculatePayoutAmount(userBet?.amount || '0', poolTotal, totalBetAmount, game.feeRateBips);\n\n return {\n amount: amount,\n profit,\n fees: fees,\n claimable: !userBet.claimed \n };\n}\n","export enum RoundStatus {\n COMPLETED,\n LIVE,\n UPCOMING\n}","import React from 'react'\nimport { createContext, useContext, FC, ReactNode, useReducer, useCallback } from 'react'\nimport { Modal, Modals } from '../components/Modal';\n\nexport { Modal };\n\nexport interface ModalItem { modal: Modal, state: any }\n\ninterface State {\n modals: ModalItem[],\n}\n\ninterface IContext {\n state: State,\n dispatch: React.Dispatch,\n}\n\nconst initialState = {\n modals: [],\n}\n\nconst Context = createContext({\n state: initialState,\n dispatch: () => {}\n})\n\ninterface Props {\n children: ReactNode\n}\n\nexport const useModal = () => {\n const { state, dispatch } = useContext(Context);\n\n const openModal = useCallback((modal: Modal, state?: any) => {\n dispatch({\n type: 'openModal',\n payload: {\n modal: modal,\n state: state,\n }\n })\n }, [dispatch])\n\n const closeModal = useCallback(() => {\n dispatch({\n type: 'closeModal',\n })\n }, [dispatch])\n\n return {\n state,\n modal: Modal,\n openModal,\n closeModal\n };\n}\n\ninterface Action {\n type: string,\n payload?: ModalItem\n}\n\nexport function reducer(state: State, action: Action) {\n switch (action.type) {\n case 'openModal': {\n return {\n ...state,\n modals: [{\n modal: action!.payload!.modal,\n state: action!.payload!.state || {}\n }, ...state.modals]\n };\n }\n case 'closeModal': {\n return {\n ...state,\n modals: [...state.modals.slice(1, state.modals.length)]\n }\n }\n default: {\n throw new Error(`Modal Reducer unmatched action`);\n }\n }\n}\n\nexport const ModalProvider: FC = ({ children }) => {\n const [state, dispatch] = useReducer(reducer, initialState)\n\n const context = {\n state,\n dispatch,\n }\n\n return (\n \n \n {children}\n \n )\n}","// extracted by mini-css-extract-plugin\nexport default {\"overlay\":\"Modal_overlay__b+zEz\",\"container\":\"Modal_container__EY5Qx\",\"closeIcon\":\"Modal_closeIcon__PA6+Y\",\"modalTitle\":\"Modal_modalTitle__YzazS\"};","import React, { useCallback } from 'react'\nimport { useModal } from '../../providers/Modal'\nimport styles from './Modal.module.scss';\nimport { MdClose } from 'react-icons/md';\n\ninterface Props { \n children: React.ReactNode,\n title: React.ReactNode\n}\n\nconst ModalWrapper = ({ children, title }: Props) => {\n const { closeModal } = useModal();\n\n const handleClose = useCallback(() => {\n closeModal();\n }, [closeModal])\n\n return (\n
\n
\n

{title}

\n \n
\n
\n {children}\n
\n
\n )\n}\n\nexport default ModalWrapper","import styled from \"styled-components\";\nimport { background, border, layout, position, space } from \"styled-system\";\nimport { BoxProps } from \"./types\";\n\nconst Box = styled.div`\n ${background}\n ${border}\n ${layout}\n ${position}\n ${space}\n`;\n\nexport default Box;","import styled from \"styled-components\";\nimport { flexbox } from \"styled-system\";\nimport Box from \"./Box\";\nimport { FlexProps } from \"./types\";\n\nconst Flex = styled(Box)`\n display: flex;\n ${flexbox}\n`;\n\nexport default Flex;","import React from 'react'\n\n// style=\"margin: auto; background: rgb(255, 255, 255); display: block; shape-rendering: auto;\"\n\ninterface Props {\n size?: number;\n className?: string;\n color?: string\n}\n\nconst Loading = ({ size = 20, className, color = '#FFF' }: Props) => {\n return (\n \n \n \n \n \n )\n}\n\nexport default Loading","\nexport function rem(value: number) {\n return `${value / 16}rem`\n}","import React from 'react'\nimport styled from 'styled-components';\nimport Loading from '../Icons/Loading';\nimport { rem } from '../../styles/utils';\n\n\nexport enum Variant {\n PrimarySM,\n PrimaryLG\n}\n\ninterface ButtonStyleProps {\n variant?: Variant\n}\n\nconst ButtonNormal = styled.button`\n width: 100%;\n background-color: ${({ theme }) => theme.red};\n border-radius: ${rem(12)};\n font-size: ${({ variant }) => variant === Variant.PrimaryLG ? rem(20) : rem(16)};\n font-weight: 700;\n color: #FFF;\n border: 0;\n padding: ${rem(8)} ${rem(12)};\n cursor: pointer;\n height: ${({ variant }) => variant === Variant.PrimaryLG ? rem(52) : 'inherit'};\n\n &:hover {\n background-color: #C60B5A;\n }\n`\n\ninterface Props extends ButtonStyleProps {\n onClick: (e?: any) => void,\n children: React.ReactNode,\n loading?: boolean\n}\n\nconst Button = ({ onClick, children, loading, variant = Variant.PrimarySM }: Props) => {\n return (\n \n { loading && }\n { !loading && children }\n \n )\n}\n\nexport default Button","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgBetUp(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 13,\n height: 14,\n viewBox: \"0 0 13 14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.64095 0.453051L12.5482 5.38558C12.9379 5.77724 13.09 6.34801 12.9474 6.88306C12.8048 7.4179 12.389 7.83575 11.8568 7.97908C11.3247 8.12244 10.7568 7.96952 10.3672 7.57786L8.03077 5.20745L8.03077 12.157C8.03077 12.7093 7.73772 13.2194 7.26192 13.4956C6.78631 13.7716 6.20018 13.7716 5.7244 13.4956C5.2486 13.2194 4.95554 12.7093 4.95554 12.157L4.95554 5.24073L2.63282 7.57272C2.24316 7.96438 1.67531 8.11731 1.1432 7.97394C0.610901 7.83058 0.195194 7.41272 0.0526003 6.87792C-0.0900272 6.34288 0.0621088 5.77211 0.451765 5.38064L5.35904 0.448109C5.6616 0.144567 6.07693 -0.0173362 6.50407 0.00139589L6.55314 0.00139589C6.96124 0.000440293 7.35261 0.163299 7.64092 0.453462L7.64095 0.453051Z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgBetUp);\nexport default __webpack_public_path__ + \"static/media/BetUp.ebf0c15729cfffc9e9801a9186269074.svg\";\nexport { ForwardRef as ReactComponent };","// extracted by mini-css-extract-plugin\nexport default {\"historyItemContainer\":\"HistoryModal_historyItemContainer__ntAPl\",\"opened\":\"HistoryModal_opened__Z55E7\",\"noHistory\":\"HistoryModal_noHistory__fnAgA\",\"historyItemHeader\":\"HistoryModal_historyItemHeader__WOJ1v\",\"historyItemDetailRow\":\"HistoryModal_historyItemDetailRow__MWNR4\",\"historyItemDetailLabel\":\"HistoryModal_historyItemDetailLabel__MXdv2\",\"historyItemQuickPrice\":\"HistoryModal_historyItemQuickPrice__A2t5w\",\"historyItemChevron\":\"HistoryModal_historyItemChevron__ZlAl+\",\"historyItemUnclaimed\":\"HistoryModal_historyItemUnclaimed__kwU1L\",\"quickDetails\":\"HistoryModal_quickDetails__KnD4z\",\"historyEdit\":\"HistoryModal_historyEdit__VMEvx\",\"historyDetails\":\"HistoryModal_historyDetails__03yYL\",\"historyDetailSummary\":\"HistoryModal_historyDetailSummary__DJZvb\",\"historyDetailItem\":\"HistoryModal_historyDetailItem__XSDPF\",\"historyDetailItemAmount\":\"HistoryModal_historyDetailItemAmount__rTHwq\",\"historyItemDetailTitle\":\"HistoryModal_historyItemDetailTitle__kxiTe\",\"historyItemBin\":\"HistoryModal_historyItemBin__5e2f9\",\"historyItemEmptyPadding\":\"HistoryModal_historyItemEmptyPadding__qIp2k\",\"historyItemDetailBox\":\"HistoryModal_historyItemDetailBox__tsw+C\",\"historyItemDetailBoxGreen\":\"HistoryModal_historyItemDetailBoxGreen__4hbfU\",\"historyItemDetailBoxRed\":\"HistoryModal_historyItemDetailBoxRed__9wuID\",\"historyItemDetailBigPrice\":\"HistoryModal_historyItemDetailBigPrice__pu2g4\",\"historyItemDetailsHR\":\"HistoryModal_historyItemDetailsHR__EATBD\",\"result\":\"HistoryModal_result__8Yerb\",\"resultWin\":\"HistoryModal_resultWin__RCzII\",\"resultDraw\":\"HistoryModal_resultDraw__Oiebv\",\"resultLose\":\"HistoryModal_resultLose__I6AWB\"};","import React, { useCallback } from 'react'\nimport { useClaim } from '../../../hooks/useSolSeer';\nimport { useGetClaimableRounds, useProfitLoss } from '../../../state/playerBets/hooks/usePlayerBets';\nimport { Flex } from '../../Box';\nimport Button from '../../Button';\nimport { Number } from '../../Intl';\nimport styles from './HistoryModal.module.scss';\n\ninterface Props {\n gameState: string\n}\n\nconst HistoryDetails = ({ gameState }: Props) => {\n const { pnl, unclaimedAmount } = useProfitLoss(gameState);\n\n const [claim, claimLoading] = useClaim(gameState);\n \n const claimableRounds = useGetClaimableRounds(gameState);\n\n const handleClaimAll = useCallback(() => {\n if (claimableRounds) {\n claim(claimableRounds);\n }\n }, [claimableRounds, claim])\n\n return (\n
\n

Summary

\n
\n \n Total P&L\n \n \n \n \n
\n
\n \n \n \n To Collect\n \n \n \n \n \n \n {claimableRounds && }\n \n \n
\n
\n )\n}\n\nexport default React.memo(HistoryDetails);\n\n","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"ChoiceDisplay_container__OULXw\",\"text\":\"ChoiceDisplay_text__cKXBm\",\"content\":\"ChoiceDisplay_content__NyQoq\",\"up\":\"ChoiceDisplay_up__oZgLN\",\"down\":\"ChoiceDisplay_down__gteuM\",\"same\":\"ChoiceDisplay_same__lqOCG\"};","var _circle;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgBetDraw(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 7.99986,\n cy: 7.99986,\n r: 5.92857,\n strokeWidth: 3\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgBetDraw);\nexport default __webpack_public_path__ + \"static/media/BetDraw.bf3053081711aa8e19c88094057853d7.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgBetDown(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 17,\n viewBox: \"0 0 16 17\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.69619 15.5711L1.08787 9.93392C0.642553 9.4863 0.468678 8.83399 0.631685 8.22252C0.794688 7.61126 1.2698 7.13372 1.87809 6.96992C2.48621 6.80608 3.13518 6.98084 3.5805 7.42846L6.25068 10.1375L6.25068 2.19511C6.25068 1.564 6.5856 0.980934 7.12938 0.665296C7.67293 0.349849 8.34279 0.349849 8.88654 0.665296C9.43031 0.980962 9.76523 1.564 9.76523 2.19511V10.0995L12.4198 7.43433C12.8651 6.98672 13.5141 6.81195 14.1222 6.97579C14.7305 7.13964 15.2056 7.61719 15.3686 8.22839C15.5316 8.83987 15.3577 9.49217 14.9124 9.93956L9.30409 15.5767C8.95831 15.9236 8.48365 16.1087 7.99548 16.0873H7.93941C7.47301 16.0884 7.02572 15.9022 6.69623 15.5706L6.69619 15.5711Z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgBetDown);\nexport default __webpack_public_path__ + \"static/media/BetDown.1b9f1b96f0692aea40f2609f94e91966.svg\";\nexport { ForwardRef as ReactComponent };","import React from 'react';\nimport { Bet } from 'sol-seer-lib';\nimport styles from './ChoiceDisplay.module.scss';\nimport { ReactComponent as BetUp } from '../Icons/BetUp.svg';\nimport { ReactComponent as BetDraw } from '../Icons/BetDraw.svg';\nimport { ReactComponent as BetDown } from '../Icons/BetDown.svg';\nimport classNames from 'classnames';\n\ninterface Props {\n choice: Bet,\n}\n\nconst ChoiceDisplay = ({ choice }: Props) => {\n let directionIcon = ;\n let text = 'DRAW'\n if (choice === Bet.UP) {\n directionIcon = ;\n text = 'UP'\n } else if (choice === Bet.DOWN) {\n text = 'DOWN'\n directionIcon = ;\n }\n\n const colorClass = classNames({\n [styles.up]: choice === Bet.UP,\n [styles.same]: choice === Bet.DRAW,\n [styles.down]: choice === Bet.DOWN,\n })\n\n return (\n
\n
\n {directionIcon}\n \n {text}\n \n
\n
\n )\n}\n\nexport default ChoiceDisplay","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"PriceDiff_container__Mcihg\",\"content\":\"PriceDiff_content__2tcHA\",\"up\":\"PriceDiff_up__z3KXt\",\"down\":\"PriceDiff_down__bDRWA\",\"same\":\"PriceDiff_same__PaKnN\"};","import React from 'react';\nimport { Number } from '../Intl';\nimport styles from './PriceDiff.module.scss';\nimport { ReactComponent as BetUp } from '../Icons/BetUp.svg';\nimport { ReactComponent as BetDraw } from '../Icons/BetDraw.svg';\nimport { ReactComponent as BetDown } from '../Icons/BetDown.svg';\nimport { useGetRound } from '../../state/rounds/hooks/useRound';\nimport { BN } from '@project-serum/anchor';\nimport classNames from 'classnames';\nimport { useGetPrice } from '../../state/price/hooks/usePrice';\n\ninterface Props {\n className?: string,\n round: number,\n gameState: string,\n}\n\nconst PriceDiff = ({ className, gameState, round }: Props) => {\n const roundData = useGetRound(gameState, round);\n const price = useGetPrice(gameState);\n\n let startPrice = new BN(roundData!.startValue);\n let endPrice = new BN(+roundData!.endValue || price * 10 ** 8);\n\n let directionIcon = ;;\n if (startPrice.lt(endPrice)) {\n directionIcon = ;\n } else if (endPrice.lt(startPrice)) {\n directionIcon = ;\n }\n\n const diff = endPrice.sub(startPrice);\n\n const colorClass = classNames({\n [styles.up]: !diff.isNeg(),\n [styles.same]: diff.isZero(),\n [styles.down]: diff.isNeg(),\n })\n\n return (\n
\n
\n {directionIcon}\n \n
\n
\n )\n}\n\nexport default PriceDiff","import React from 'react'\nimport { convertToBetEnum } from 'sol-seer-lib';\nimport { useGetPlayerBet } from '../../../state/playerBets/hooks/usePlayerBets';\nimport { useGetRound, useGetRoundStatus, useGetRoundTotal } from '../../../state/rounds/hooks/useRound';\nimport ChoiceDisplay from '../../ChoiceDisplay';\nimport { Number } from '../../Intl';\nimport PriceDiff from '../../PriceDiff';\nimport styles from './HistoryModal.module.scss';\nimport { calculatePayoutRatio } from '../../../utils/numbers';\nimport classNames from 'classnames';\nimport { RoundStatus } from '../../../types/enums';\n\ninterface Props {\n gameState: string,\n round: number,\n profit: string,\n}\n\nconst HistoryItemDetail = ({ gameState, round, profit }: Props) => {\n const playerBet = useGetPlayerBet(gameState, round);\n\n const roundData = useGetRound(gameState, round);\n\n const playerBetDirection = convertToBetEnum(playerBet?.choice!)\n\n const roundTotal = useGetRoundTotal(gameState, round);\n\n const roundStatus = useGetRoundStatus(gameState, round);\n\n const roundCompleted = !!roundData?.endTs;\n\n const upPayout = calculatePayoutRatio(roundData!.totalBetUp, roundTotal);\n const drawPayout = calculatePayoutRatio(roundData!.totalBetDraw, roundTotal);\n const downPayout = calculatePayoutRatio(roundData!.totalBetDown, roundTotal);\n\n const resultColor = classNames(styles.result, {\n [styles.resultWin]: +profit > 0,\n [styles.resultDraw]: +profit === 0,\n [styles.resultLose]: +profit < 0\n })\n\n let result = 'REFUND'\n if (+profit > 0) {\n result = 'WIN'\n } else if (+profit < 0) {\n result = 'LOSS'\n } else if (roundStatus !== RoundStatus.COMPLETED) {\n result = 'Undetermined'\n }\n\n const roundPriceDiff = +roundData!.endValue - +roundData!.startValue;\n\n const roundBoxClass = classNames(styles.historyItemDetailBox, {\n [styles.historyItemDetailBoxGreen]: roundPriceDiff > 0,\n [styles.historyItemDetailBoxRed]: roundPriceDiff < 0,\n })\n\n return (\n
\n

Your result

\n
\n
{result}
\n
\n Your direction\n \n
\n
\n Your position\n \n \n \n
\n {\n roundCompleted && (\n
\n Your Result\n \n \n \n
\n )\n }\n
\n {\n roundCompleted && (\n <>\n

Round History

\n
\n
\n Close Price\n
\n
\n \n \n \n \n
\n
\n Locked Price:\n \n \n \n
\n
\n Prize Pool\n \n \n \n
\n
\n
\n UP\n \n \n {' '}|{' '}\n \n \n
\n
\n DRAW\n \n \n {' '}|{' '}\n \n \n
\n
\n DOWN\n \n \n {' '}|{' '}\n \n \n
\n
\n \n )\n }\n
\n )\n}\n\nexport default HistoryItemDetail","import React from 'react'\n\ninterface Props {\n size?: number,\n direction: 'up' | 'down',\n className?: string\n}\n\nconst Chevron = ({ size = 13, className, direction }: Props) => {\n let comp = \n\n if (direction === 'down') {\n comp = \n }\n\n let height = 7 / 13 * size;\n\n return (\n \n {comp}\n \n )\n}\n\nexport default Chevron","import React from 'react'\n\ninterface Props {\n size?: number,\n onClick?: () => void,\n className?: string,\n}\n\nconst Bin = ({ size = 22, onClick, className }: Props) => {\n return (\n \n \n \n \n \n \n \n \n )\n}\n\nexport default Bin","export const theme = {\n green: \"#1F9C89\",\n red: \"#DC0086\",\n gray: \"#6A6299\"\n}","import React, { useCallback } from 'react';\nimport { useCalculateUserPayout } from '../../../state/playerBets/hooks/usePlayerBets';\nimport { useGetRoundStatus } from '../../../state/rounds/hooks/useRound';\nimport { Number } from '../../Intl';\nimport styles from './HistoryModal.module.scss';\nimport { useClaim, useClosePlayerBet } from '../../../hooks/useSolSeer';\nimport HistoryItemDetail from './HistoryItemDetail';\nimport Chevron from '../../Icons/Chevron';\nimport classNames from 'classnames';\nimport Button from '../../Button';\nimport Bin from '../../Icons/Bin';\nimport Loading from '../../Icons/Loading';\nimport { RoundStatus } from '../../../types/enums';\nimport { Flex } from '../../Box';\nimport { rem } from '../../../styles';\n\ninterface Props {\n round: number,\n gameState: string,\n active: boolean,\n edit: boolean,\n onSelectRound: () => void\n}\n\nexport default function HistoryItem({ round, gameState, active, edit, onSelectRound }: Props) {\n const roundStatus = useGetRoundStatus(gameState, round);\n\n const result = useCalculateUserPayout(gameState, round);\n\n const [claim, claimLoading] = useClaim(gameState); \n\n const [closePlayerBet, closePlayerBetLoading] = useClosePlayerBet(gameState);\n\n const handleClosePlayerBet = useCallback(() => {\n closePlayerBet([round]);\n }, [round, closePlayerBet])\n\n const handleClaim = useCallback((e: React.MouseEvent) => {\n e.stopPropagation();\n claim([round]);\n }, [round, claim])\n\n return (\n
\n
\n \n {\n edit && (\n <>\n {!result.claimable && roundStatus === RoundStatus.COMPLETED ? (\n <>\n {!closePlayerBetLoading && }\n {closePlayerBetLoading && }\n \n ) : (\n
\n )} \n \n )\n }\n \n #{round}\n \n \n {\n roundStatus === RoundStatus.LIVE && (Live)\n }\n {\n roundStatus === RoundStatus.UPCOMING && (Upcoming)\n }\n {\n roundStatus === RoundStatus.COMPLETED && (\n 0 ? '+' :''} decimals={9} digits={3} suffix=\" SOL\" withColorValue={result.profit} />\n )\n }\n \n \n \n {\n result.claimable && (\n
\n \n
\n )\n }\n {!edit && } \n
\n
\n {\n active && !edit && \n }\n
\n )\n}","import React, { useCallback, useState } from 'react';\nimport { useGetPlayerHistory } from '../../../state/playerBets/hooks/usePlayerBets';\nimport ModalWrapper from '../ModalWrapper';\nimport HistoryDetails from './HistoryDetails';\nimport HistoryItem from './HistoryItem';\nimport styles from './HistoryModal.module.scss';\n\ninterface Props {\n state: {\n gameState: string\n }\n}\n\nexport function HistoryModal({ state }: Props) {\n const [openedRound, setOpenedRound] = useState(0); // Round cannot be 0, hence we start with 0;\n const [edit, setEdit] = useState(false);\n\n const openEdit = useCallback(\n () => {\n setEdit(true)\n }, [setEdit]);\n \n const closeEdit = useCallback(() => {\n setEdit(false)\n }, [setEdit])\n\n const playerHistory = useGetPlayerHistory(state.gameState);\n\n if (!playerHistory) {\n return (\n \n
You have no history present
\n
\n )\n }\n\n return (\n \n \n {\n !edit &&
Edit
\n }\n {\n edit &&
DONE
\n }\n
\n {playerHistory.map((round: number) => {\n return setOpenedRound(openedRound === round ? 0 : round)} round={round} gameState={state.gameState} />\n })} \n
\n
\n )\n}","import React from 'react'\nimport { useLoadGraphData } from '../../../state/chart/hooks/useChart';\nimport ModalWrapper from '../ModalWrapper';\n\ninterface Props {\n state: {\n gameState: string\n }\n}\n\nconst ChartModal = ({ state }: Props) => {\n useLoadGraphData(state.gameState);\n\n return (\n \n Oops \n \n )\n}\n\nexport default ChartModal","import { PublicKey } from \"@solana/web3.js\";\nimport { useEffect, useMemo } from \"react\";\nimport { Batch } from \"sol-seer-lib\";\nimport { RPC } from \"../../../configs\";\nimport useProgram from \"../../../hooks/useProgram\";\nimport { useUserPK } from \"../../../hooks/useUserPK\";\nimport { useGetCurrentRound } from \"../../games/hooks/useGame\";\n\nexport function useLoadGraphData(gameState: string) {\n const program = useProgram();\n\n const userPK = useUserPK(); \n\n const batch = useMemo(() => new Batch(program, RPC, userPK), [program, userPK]);\n \n const currentRound = useGetCurrentRound(gameState);\n\n const previousRound = currentRound - 1;\n\n const startRound = Math.max(previousRound - 299, 1);\n\n useEffect(() => {\n batch.getRoundData(new PublicKey(gameState), startRound, previousRound).then((data) => {\n console.log(data);\n });\n }, [gameState, previousRound, startRound, batch])\n}\n\nexport function useGetGraphData() {\n \n}","import React from 'react'\nimport styles from './Modal.module.scss';\n\nconst ModalContainer = ({ children, show }: { children: React.ReactNode, show: boolean }) => {\n if (!show) return null;\n\n return (\n
\n
\n {children}\n
\n
\n )\n}\n\nexport default ModalContainer","import { ReactNode, useEffect, useMemo } from \"react\";\nimport { createPortal } from \"react-dom\";\n\n\nconst modalRoot = document.getElementById('modal-root');\n\ninterface Props {\n children: ReactNode\n}\n\nexport function ModalPortal({ children }: Props) {\n const elem = useMemo(() => document.createElement('div'), [])\n\n useEffect(() => {\n modalRoot!.appendChild(elem);\n\n return () => {\n modalRoot?.removeChild(elem);\n }\n }, [elem])\n\n return createPortal(\n children,\n elem\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"ErrorModal_container__08xuy\",\"generic\":\"ErrorModal_generic__gYQjP\",\"message\":\"ErrorModal_message__GZZtN\"};","import React, { useCallback } from 'react'\nimport styles from './ErrorModal.module.scss';\nimport ModalWrapper from '../ModalWrapper';\nimport Button from '../../Button';\nimport { useModal } from '../../../providers/Modal';\n\ninterface Props {\n state: {\n message: string\n }\n}\n\nconst ErrorModal = ({ state }: Props) => {\n const { closeModal } = useModal();\n \n const handleClose = useCallback(() => {\n closeModal();\n }, [closeModal])\n\n return (\n \n
\n
Opps, it looks like you've encountered an error.
\n
{state.message}
\n \n
\n
\n )\n}\n\nexport default ErrorModal","import React from 'react';\nimport { ModalItem } from '../../providers/Modal';\nimport { HistoryModal } from './HistoryModal/HistoryModal';\nimport ChartModal from './ChartModal';\nimport ModalContainer from './ModalContainer';\nimport { ModalPortal } from './ModalPortal'\nimport ErrorModal from './ErrorModal';\n\nexport enum Modal {\n HISTORY,\n ERROR,\n CHART,\n}\n\nexport function Modals({ modals }: { modals: ModalItem[]}) {\n const modal = modals[0]?.modal;\n const state = modals[0]?.state;\n\n return (\n \n \n {modal === Modal.HISTORY && }\n {modal === Modal.ERROR && }\n {modal === Modal.CHART && }\n \n \n )\n}","import { PublicKey } from '@solana/web3.js';\nimport { useCallback, useMemo, useState } from 'react'\nimport { useWallet } from '@solana/wallet-adapter-react';\nimport { SolSeer, convertGameStateFromSerializable, Bet, getCorrectChoice, convertToBetEnum } from 'sol-seer-lib';\nimport useProgram from './useProgram';\nimport { useGame } from '../state/games/hooks';\nimport { useUpdateGameState } from '../state/games/hooks/useUpdateGame';\nimport { Modal } from '../components/Modal';\nimport { useModal } from '../providers/Modal';\nimport { useGetPlayerBet, useGetPlayerHistory } from '../state/playerBets/hooks/usePlayerBets';\nimport { useGetRound } from '../state/rounds/hooks/useRound';\nimport { BN } from '@project-serum/anchor';\n\nconst useSolSeer = (statePubkey: string) => {\n const wallet = useWallet();\n\n const program = useProgram();\n\n const game = useGame(statePubkey);\n\n const solSeer = useMemo(\n () => new SolSeer(program, wallet.publicKey!, new PublicKey(statePubkey), convertGameStateFromSerializable(game!)),\n [wallet.publicKey, program, game, statePubkey]\n );\n\n return solSeer;\n}\n\nexport default useSolSeer;\n\nexport const useClosePlayerBet = (statePubkey: string): [(rounds: number[]) => void, boolean] => {\n const solSeer = useSolSeer(statePubkey);\n\n const [loading, setLoading] = useState(false);\n\n const [updateGameState] = useUpdateGameState();\n\n const { openModal } = useModal();\n\n const closePlayerBet = useCallback(async (rounds: number[]) => {\n setLoading(true);\n\n try {\n await solSeer.closePlayerBets(rounds)\n\n try {\n await updateGameState();\n } catch (e) {}\n } catch (e: any) {\n openModal(Modal.ERROR, {\n message: e.toString()\n })\n\n throw e;\n } finally {\n setLoading(false)\n }\n }, [solSeer, updateGameState, openModal])\n\n return [closePlayerBet, loading]\n}\n\nconst CHUNK_SIZE = 9;\n\nexport const useClaim = (statePubkey: string): [(rounds: number[]) => void, boolean] => {\n const solSeer = useSolSeer(statePubkey);\n\n const [loading, setLoading] = useState(false);\n\n const [updateGameState] = useUpdateGameState();\n\n const { openModal } = useModal();\n\n const claim = useCallback(async (rounds: number[]) => {\n setLoading(true);\n\n try {\n for (let i = 0; i < rounds.length; i += CHUNK_SIZE) {\n await solSeer.claims(rounds.slice(i, i + CHUNK_SIZE))\n }\n\n try {\n await updateGameState();\n } catch (e) {}\n } catch (e: any) {\n openModal(Modal.ERROR, {\n message: e.toString()\n })\n\n throw e;\n } finally {\n setLoading(false)\n }\n }, [solSeer, updateGameState, openModal])\n\n return [claim, loading]\n}\n\ninterface PlaceBetParams {\n round: number,\n amount: string,\n bet: Bet\n}\n\nexport const usePlaceBet = (statePubkey: string): [(v: PlaceBetParams) => void, { loading: boolean, requiresClosePlayerBet: boolean, requiresClaimFirst: boolean }] => {\n const playerHistory = useGetPlayerHistory(statePubkey);\n\n const playerHistoryExists = !!playerHistory;\n\n let earliestHistoryRound = playerHistory && playerHistory.length ? playerHistory[playerHistory.length - 1] : null;\n\n const playerBet = useGetPlayerBet(statePubkey, earliestHistoryRound || 0);\n\n const roundData = useGetRound(statePubkey, playerBet?.round || 0);\n\n const requiresClosePlayerBet = !!playerHistory && playerHistory.length >= 32;\n\n let closeRoundParams: any = null;\n let requiresClaimFirst = false;\n\n if (requiresClosePlayerBet && roundData && playerBet) {\n // Check claimFirst, whether the round is won and also if it has been claimed\n const correctChoice = getCorrectChoice(new BN(roundData.startValue), new BN(roundData.endValue))\n \n const selectedChoice = convertToBetEnum(playerBet.choice);\n\n requiresClaimFirst = (roundData.isRefund || correctChoice === selectedChoice) && !playerBet.claimed\n\n closeRoundParams = {\n closeRound: earliestHistoryRound,\n claimFirst: requiresClaimFirst\n }\n }\n\n const solSeer = useSolSeer(statePubkey);\n\n const [loading, setLoading] = useState(false);\n\n const [updateGameState] = useUpdateGameState();\n\n const { openModal } = useModal();\n\n const handlePlaceBet = useCallback(async ({ round, amount, bet }: PlaceBetParams) => {\n setLoading(true);\n\n try {\n await solSeer.placeBet({\n round: round,\n amount: amount,\n bet: bet\n }, !playerHistoryExists, closeRoundParams)\n\n try {\n await updateGameState();\n } catch (e) {}\n } catch (e: any) {\n openModal(Modal.ERROR, {\n message: e.toString()\n })\n\n throw e;\n } finally {\n setLoading(false);\n }\n }, [solSeer, openModal, playerHistoryExists, updateGameState, closeRoundParams])\n\n return [handlePlaceBet, { loading, requiresClosePlayerBet, requiresClaimFirst }];\n}\n","import React from 'react'\nimport {\n WalletMultiButton\n} from '@solana/wallet-adapter-react-ui';\n\nconst ConnectWallet = () => {\n return (\n \n )\n}\n\nexport default React.memo(ConnectWallet);","// extracted by mini-css-extract-plugin\nexport default {\"lastPrice\":\"Round_lastPrice__3X2Wh\",\"liveSpacer\":\"Round_liveSpacer__8t5Ue\",\"body\":\"Round_body__S0oxX\",\"bodyGreen\":\"Round_bodyGreen__NAVKA\",\"bodyRed\":\"Round_bodyRed__39ke9\",\"nextBody\":\"Round_nextBody__-w2lu\",\"footer\":\"Round_footer__EUbYX\",\"betButtonContainer\":\"Round_betButtonContainer__t5rXM\",\"betIcon\":\"Round_betIcon__Hu0BX\",\"nextBetIcon\":\"Round_nextBetIcon__t7SNr\",\"payoutBox\":\"Round_payoutBox__oXT6U\",\"nextBetButtonHoverGreen\":\"Round_nextBetButtonHoverGreen__QVM+B\",\"nextBetButtonHoverGray\":\"Round_nextBetButtonHoverGray__SYDJ+\",\"nextBetButtonHoverRed\":\"Round_nextBetButtonHoverRed__PGMZH\",\"betButton\":\"Round_betButton__7gXf4\",\"disabled\":\"Round_disabled__I6fTe\",\"betButtonActiveGreen\":\"Round_betButtonActiveGreen__QjN1a\",\"betButtonActiveGray\":\"Round_betButtonActiveGray__OA4OA\",\"betButtonActiveRed\":\"Round_betButtonActiveRed__EZURq\",\"title\":\"Round_title__bgSw5\",\"titleBack\":\"Round_titleBack__ND8vC\",\"backArrow\":\"Round_backArrow__3CQBE\",\"amountPills\":\"Round_amountPills__g4xiC\",\"balance\":\"Round_balance__OogA2\",\"button\":\"Round_button__mk98V\",\"historyFullWarning\":\"Round_historyFullWarning__Fult9\",\"stats\":\"Round_stats__d+8fO\",\"priceDiff\":\"Round_priceDiff__pXtH+\",\"positionContainer\":\"Round_positionContainer__TJixE\",\"positionLabel\":\"Round_positionLabel__dqBLq\",\"tooltip\":\"Round_tooltip__S+24X\"};","// extracted by mini-css-extract-plugin\nexport default {\"input\":\"Input_input__k5Ctk\"};","import React, { ChangeEvent, useCallback } from 'react'\nimport styles from './Input.module.scss';\n\ninterface Props {\n value: string,\n onChange: (v: string) => void,\n placeholder: string,\n}\n\nconst Input = ({ onChange, value, placeholder }: Props) => {\n const handleChange = useCallback((e: ChangeEvent) => {\n onChange(e.target.value) \n }, [onChange])\n\n return (\n \n )\n}\n\nexport default Input","import React, { useCallback } from 'react'\nimport Input from './Input'\n\ninterface Props {\n value: string,\n onChange: (v: string) => void\n}\n\nconst NumberInput = ({ onChange, value }: Props) => {\n const handleChange = useCallback((v) => {\n onChange(v.replace(/[^0-9.]+/g, ''));\n }, [onChange])\n\n return (\n \n )\n}\n\nexport default NumberInput","// extracted by mini-css-extract-plugin\nexport default {\"grayPill\":\"Pills_grayPill__o1Q6-\"};","import React from 'react'\nimport styles from './Pills.module.scss';\n\ninterface Props {\n children: React.ReactNode,\n onClick: () => void\n}\n\nconst GrayPill = ({ children, onClick }: Props) => {\n return (\n
{children}
\n )\n}\n\nexport default GrayPill","import styled from 'styled-components';\nimport {\n BorderProps,\n border,\n BackgroundProps,\n background\n} from \"styled-system\";\nimport { rem, theme } from '../../styles/';\nimport { Flex } from '../Box';\n\ninterface ContainerProps extends BorderProps, BackgroundProps {\n live?: boolean,\n}\n\nexport const Container = styled.div`\n border: ${rem(6)} solid ${({ live }) => live ? '#626FAE' : '#736B83'};\n width: ${rem(374)};\n border-radius: ${rem(16)};\n background-color: #EEE;\n align-self: center;\n justify-self: center;\n ${border}\n ${background}\n`\n\nexport const BodyFlex = styled(Flex)`\n margin: ${rem(32)} ${rem(24)} ${rem(16)};\n padding: ${rem(24)};\n border: ${rem(3)} solid ${theme.gray};\n border-radius: ${rem(20)};\n font-weight: 700;\n font-size: ${rem(16)};\n color: #2E2E2E;\n ${border}\n`\n\nexport const Title = styled.div`\n font-weight: 800;\n font-size: ${rem(20)};\n line-height: ${rem(26)};\n color: ${({ live }) => live ? '#DC0086' : '#FFFFFF'};\n padding: ${rem(16)};\n display: flex;\n justify-content: space-between;\n align-items: center;\n background: ${({ live }) => live ? '#FFFFFF' : '#7E5A80'};\n border-radius: ${rem(8)} ${rem(8)} 0 0;\n ${border}\n ${background}\n`","import { BN } from '@project-serum/anchor';\nimport ReactTooltip from 'react-tooltip';\nimport React, { useMemo, useRef } from 'react'\nimport { Bet, Sol } from 'sol-seer-lib';\nimport styled from 'styled-components';\nimport { useGame } from '../../state/games/hooks';\nimport { useGetRound, useGetRoundTotal } from '../../state/rounds/hooks/useRound';\nimport { rem } from '../../styles';\nimport { calculatePayoutRatio } from '../../utils/numbers';\nimport { Flex } from '../Box'\nimport { Number } from '../Intl'\nimport styles from './Round.module.scss';\n\nconst Container = styled.div`\n background-color: #8489A0;\n padding: ${rem(16)} ${rem(24)};\n border-radius: 0 0 ${rem(10)} ${rem(10)};\n`\n\ninterface TextProps {\n big?: boolean,\n dotted?: boolean\n}\n\nconst Text = styled.div`\n color: #FFF;\n ${({ dotted }) => dotted ? 'border-bottom: 2px dotted #FFF;' : ''}\n font-size: ${({ big }) => rem(big ? 16 : 14)};\n font-weight: 600;\n`\n\ninterface Props {\n gameState: string, \n round: number, \n choice: Bet,\n amount: number,\n}\n\nconst PayoutEstimate = ({ gameState, round, choice, amount }: Props) => {\n const gameStateData = useGame(gameState);\n const roundData = useGetRound(gameState, round);\n const total = useGetRoundTotal(gameState, round);\n const ref = useRef(null);\n\n const ratio = useMemo(() => {\n const solTotal = Sol(amount)\n let poolTotal: BN;\n if (choice === Bet.UP) {\n poolTotal = solTotal.add(new BN(roundData!.totalBetUp));\n } else if (choice === Bet.DOWN) {\n poolTotal = solTotal.add(new BN(roundData!.totalBetDown));\n } else {\n poolTotal = solTotal.add(new BN(roundData!.totalBetDraw));\n }\n\n const prizePool = solTotal.add(new BN(total));\n\n return calculatePayoutRatio(poolTotal.toString(), prizePool.toString())\n }, [amount, total, roundData, choice]);\n\n if (total === '0') return null;\n\n const feePercent = gameStateData.feeRateBips / 100;\n const rewards = amount * +ratio;\n const fees = rewards * feePercent / 100;\n const rewardAfterFees = rewards - fees;\n\n return (\n \n \n Potential payout\n \n \n \n Payout multiplier\n \n \n \n \n \n Platform fee ({feePercent}%)\n \n \n \n \n )\n}\n\nexport default PayoutEstimate","import React, { useState, useCallback, FC } from 'react'\nimport { Bet } from 'sol-seer-lib'\nimport styled from 'styled-components';\nimport { usePlaceBet } from '../../hooks/useSolSeer';\nimport ConnectWallet from '../ConnectWallet';\nimport { Number } from '../Intl';\nimport { MdArrowBackIosNew } from 'react-icons/md';\nimport styles from './Round.module.scss';\nimport NumberInput from '../Input/NumberInput';\nimport Solana from '../Icons/Solana';\nimport { useGetSolBalance } from '../../state/global/hooks/useGlobal';\nimport Button from '../Button';\nimport ChoiceDisplay from '../ChoiceDisplay';\nimport GrayPill from '../Pills/GrayPill';\nimport { useUserPK } from '../../hooks/useUserPK';\nimport { Container } from './styles';\nimport { Flex } from '../Box';\nimport { rem, theme } from '../../styles';\nimport PayoutEstimate from './PayoutEstimate';\n\ninterface Props {\n gameState: string,\n round: number,\n choice: Bet | null\n onFlip: (d: Bet | null) => void,\n}\n\nconst BetLabel = styled(Flex)`\n font-size: ${rem(16)};\n`\n\nconst SolIcon = styled(Solana)`\n margin-right: ${rem(4)};\n`\n\nconst BetBoxContainer = styled.div`\n padding: ${rem(24)};\n border-radius: ${rem(20)};\n font-weight: 700;\n font-size: ${rem(16)};\n line-height: ${rem(21)};\n color: #312F7E;\n`\n\nconst Confirm = styled.div`\n width: 100%;\n margin: ${rem(20)} 0;\n`\n\nconst Warning = styled.div`\n font-size: ${rem(14)};\n font-weight: 800;\n`\n\nconst Error = styled.div`\n color: ${theme.red};\n padding-bottom: ${rem(24)};\n`\n\nconst BetBox: FC = ({ gameState, round, choice, onFlip }: Props) => {\n const [value, setValue] = useState('');\n\n const [error, setError] = useState('')\n \n const userPk = useUserPK(); \n\n const balance = useGetSolBalance();\n\n const handleOnChange = useCallback((v) => {\n setError('')\n setValue(v)\n }, [setError])\n\n const [placeBet, { loading: placeBetLoading, requiresClosePlayerBet }] = usePlaceBet(gameState);\n\n const handleBet = useCallback(async () => {\n if (+value < 0.1) {\n setError('The minimum amount is 0.1 SOL');\n } else if (+value > balance) {\n setError('You have insufficient balance');\n } else {\n try {\n await placeBet({\n round: round,\n amount: value,\n bet: choice!\n })\n\n onFlip(null);\n } catch (e: any) {\n \n }\n }\n }, [round, choice, value, onFlip, balance, placeBet])\n\n const onPillClick = (percentage: number) => () => {\n const maxAmount = +balance - 0.02; // For Fees\n\n let calculatedValue = Math.floor(Math.min(+balance * percentage, maxAmount) / 10 ** 8) / 10;\n setValue(calculatedValue.toString());\n }\n\n return (\n \n
\n
\n onFlip(null)} />\n Set Position\n
\n \n \n \n
\n \n \n Commit:\n \n \n SOL\n \n \n \n {\n !!userPk && (\n \n Balance\n \n \n )\n }\n\n {\n !!userPk && (\n
\n 10%\n 25%\n 50%\n 75%\n Max\n
\n )\n }\n \n \n {!userPk && }\n {!!userPk && }\n \n {\n error && (\n \n {error}\n \n )\n }\n {\n requiresClosePlayerBet && (\n \n )\n }\n \n You won't be able to remove or change your position once you enter it.\n \n
\n {choice !== null && !!+value && userPk && }\n
\n )\n}\n\nexport default BetBox","var _g, _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9, _path10, _path11, _path12, _path13, _path14, _g2, _defs;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgBetTrophy(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 120,\n height: 121,\n viewBox: \"0 0 120 121\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n opacity: 0.85\n }, /*#__PURE__*/React.createElement(\"mask\", {\n id: \"path-1-outside-1_111_9327\",\n maskUnits: \"userSpaceOnUse\",\n x: 21.3878,\n y: 16.7163,\n width: 76,\n height: 95,\n fill: \"black\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n fill: \"white\",\n x: 21.3878,\n y: 16.7163,\n width: 76,\n height: 95\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M35.7301 35.2809C30.547 41.5786 27.7293 49.8682 28.5192 58.6223C29.2379 66.5877 32.82 73.5669 38.1412 78.6193L37.0344 96.2278C36.9079 98.2399 37.9263 100.275 39.8936 101.203C49.3928 105.684 69.7455 109.971 87.5513 96.2876C89.2508 94.9817 89.9258 92.8078 89.4435 90.836L86.3741 78.2862L86.3926 78.2684L86.2237 77.6057L85.8364 76.0877L85.8349 76.0822L85.8342 76.0797L85.8328 76.0739L85.2901 73.8541C85.2639 73.7469 85.2345 73.6411 85.2019 73.5366C86.5626 71.5933 87.7132 69.4952 88.6229 67.2788C90.82 62.7201 91.632 57.4485 90.9023 51.8686C90.4682 47.1537 88.9345 42.7196 86.5787 38.8363C80.5923 28.8008 69.2448 22.6061 56.8612 23.8821C54.0414 24.1727 51.3394 24.8335 48.7999 25.8135C43.19 27.7104 38.7575 30.902 35.7301 35.2809Z\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M35.7301 35.2809C30.547 41.5786 27.7293 49.8682 28.5192 58.6223C29.2379 66.5877 32.82 73.5669 38.1412 78.6193L37.0344 96.2278C36.9079 98.2399 37.9263 100.275 39.8936 101.203C49.3928 105.684 69.7455 109.971 87.5513 96.2876C89.2508 94.9817 89.9258 92.8078 89.4435 90.836L86.3741 78.2862L86.3926 78.2684L86.2237 77.6057L85.8364 76.0877L85.8349 76.0822L85.8342 76.0797L85.8328 76.0739L85.2901 73.8541C85.2639 73.7469 85.2345 73.6411 85.2019 73.5366C86.5626 71.5933 87.7132 69.4952 88.6229 67.2788C90.82 62.7201 91.632 57.4485 90.9023 51.8686C90.4682 47.1537 88.9345 42.7196 86.5787 38.8363C80.5923 28.8008 69.2448 22.6061 56.8612 23.8821C54.0414 24.1727 51.3394 24.8335 48.7999 25.8135C43.19 27.7104 38.7575 30.902 35.7301 35.2809Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M28.5192 58.6223L34.4949 58.0832L34.4949 58.0831L28.5192 58.6223ZM35.7301 35.2809L40.3628 39.0937L40.5225 38.8997L40.6654 38.693L35.7301 35.2809ZM38.1412 78.6193L44.1294 78.9957L44.3052 76.1982L42.2725 74.2682L38.1412 78.6193ZM37.0344 96.2278L43.0226 96.6042L43.0226 96.6042L37.0344 96.2278ZM39.8936 101.203L37.3336 106.63L37.3339 106.63L39.8936 101.203ZM87.5513 96.2876L83.8955 91.5299L83.8952 91.5302L87.5513 96.2876ZM89.4435 90.836L83.6153 92.2615L83.6153 92.2616L89.4435 90.836ZM86.3741 78.2862L82.2159 73.9607L79.7249 76.3553L80.5458 79.7117L86.3741 78.2862ZM86.3926 78.2684L90.5508 82.5938L93.0697 80.1724L92.2067 76.7865L86.3926 78.2684ZM86.2237 77.6057L92.0378 76.1238L92.0375 76.1224L86.2237 77.6057ZM85.8364 76.0877L91.6502 74.6045L91.632 74.5333L91.6121 74.4626L85.8364 76.0877ZM85.8349 76.0822L80.0187 77.5559L80.0379 77.6319L80.0592 77.7074L85.8349 76.0822ZM85.8342 76.0797L80.0145 77.5394L80.0163 77.5464L80.018 77.5533L85.8342 76.0797ZM85.8328 76.0739L80.0044 77.4987L80.0087 77.5162L80.0131 77.5337L85.8328 76.0739ZM85.2901 73.8541L79.4617 75.2788V75.2788L85.2901 73.8541ZM85.2019 73.5366L80.287 70.0952L78.5956 72.5108L79.4748 75.3255L85.2019 73.5366ZM88.6229 67.2788L83.2179 64.6738L83.1402 64.835L83.0723 65.0005L88.6229 67.2788ZM90.9023 51.8686L84.9276 52.4186L84.9381 52.5328L84.9529 52.6466L90.9023 51.8686ZM86.5787 38.8363L81.4258 41.9101L81.4372 41.9293L81.4488 41.9484L86.5787 38.8363ZM56.8612 23.8821L56.2463 17.9137L56.2461 17.9137L56.8612 23.8821ZM48.7999 25.8135L50.7219 31.4974L50.8419 31.4568L50.9601 31.4112L48.7999 25.8135ZM34.4949 58.0831C33.8527 50.9656 36.1393 44.2256 40.3628 39.0937L31.0973 31.4681C24.9548 38.9316 21.6059 48.7709 22.5435 59.1616L34.4949 58.0831ZM42.2725 74.2682C37.9806 70.1931 35.0791 64.5575 34.4949 58.0832L22.5435 59.1615C23.3967 68.6179 27.6593 76.9407 34.0099 82.9704L42.2725 74.2682ZM43.0226 96.6042L44.1294 78.9957L32.153 78.2429L31.0462 95.8514L43.0226 96.6042ZM42.4536 95.7767C42.6705 95.8791 42.8378 96.0526 42.9292 96.2179C43.0089 96.362 43.0297 96.4913 43.0226 96.6042L31.0462 95.8514C30.783 100.038 32.8996 104.538 37.3336 106.63L42.4536 95.7767ZM83.8952 91.5302C68.5411 103.33 50.815 99.7207 42.4532 95.7765L37.3339 106.63C47.9706 111.647 70.95 116.613 91.2073 101.045L83.8952 91.5302ZM83.6153 92.2616C83.5835 92.1316 83.5912 92.01 83.6292 91.8971C83.6711 91.7726 83.7599 91.6341 83.8955 91.5299L91.207 101.045C94.8902 98.2152 96.2888 93.5687 95.2717 89.4104L83.6153 92.2616ZM80.5458 79.7117L83.6153 92.2615L95.2717 89.4106L92.2023 76.8607L80.5458 79.7117ZM82.2344 73.9429L82.2159 73.9607L90.5322 82.6117L90.5508 82.5938L82.2344 73.9429ZM80.4096 79.0875L80.5785 79.7502L92.2067 76.7865L92.0378 76.1238L80.4096 79.0875ZM80.0227 77.571L80.4099 79.0889L92.0375 76.1224L91.6502 74.6045L80.0227 77.571ZM80.0592 77.7074L80.0607 77.7129L91.6121 74.4626L91.6106 74.457L80.0592 77.7074ZM80.018 77.5533L80.0187 77.5559L91.6511 74.6085L91.6504 74.606L80.018 77.5533ZM80.0131 77.5337L80.0145 77.5394L91.6539 74.6199L91.6525 74.6142L80.0131 77.5337ZM79.4617 75.2788L80.0044 77.4987L91.6612 74.6491L91.1185 72.4293L79.4617 75.2788ZM79.4748 75.3255C79.4695 75.3085 79.4652 75.2929 79.4617 75.2788L91.1185 72.4293C91.0627 72.2009 90.9996 71.9736 90.929 71.7477L79.4748 75.3255ZM83.0723 65.0005C82.3322 66.8036 81.3955 68.512 80.287 70.0952L90.1168 76.9781C91.7297 74.6746 93.0942 72.1867 94.1735 69.5571L83.0723 65.0005ZM84.9529 52.6466C85.5437 57.164 84.8689 61.2483 83.2179 64.6738L94.0279 69.8838C96.7711 64.192 97.7203 57.7329 96.8516 51.0906L84.9529 52.6466ZM81.4488 41.9484C83.3538 45.0885 84.5807 48.6513 84.9276 52.4186L96.877 51.3185C96.3557 45.656 94.5152 40.3508 91.7085 35.7243L81.4488 41.9484ZM57.4762 29.8505C67.4399 28.8239 76.584 33.7934 81.4258 41.9101L91.7315 35.7625C84.6005 23.8082 71.0497 16.3884 56.2463 17.9137L57.4762 29.8505ZM50.9601 31.4112C53.0097 30.6202 55.1924 30.0859 57.4763 29.8505L56.2461 17.9137C52.8903 18.2596 49.6692 19.0468 46.6398 20.2159L50.9601 31.4112ZM40.6654 38.693C42.8668 35.5089 46.1717 33.0359 50.7219 31.4974L46.878 20.1297C40.2083 22.3849 34.6482 26.295 30.7947 31.8688L40.6654 38.693Z\",\n fill: \"url(#paint0_linear_111_9327)\",\n mask: \"url(#path-1-outside-1_111_9327)\"\n }))), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.85,\n d: \"M82.2082 77.0353L81.6607 74.796C81.6431 74.7238 81.6206 74.6547 81.5944 74.5884L81.5661 74.5183L81.5476 74.4449L81.2633 73.3302L81.1228 72.78L81.4695 72.3258C82.988 70.3356 84.247 68.1413 85.2008 65.7997L85.2154 65.7636L85.2326 65.7287C87.1103 61.8678 87.8472 57.3117 87.1905 52.3552L87.1873 52.3311L87.1851 52.3067C86.8118 48.1695 85.467 44.2608 83.38 40.8226L83.375 40.8148L83.3751 40.8146C78.0961 31.9581 68.0967 26.5099 57.1998 27.6326C54.6939 27.8908 52.299 28.4797 50.0523 29.3518L50.0273 29.3615L50.002 29.3699C44.9915 31.0541 41.2386 33.8285 38.7293 37.4994L38.6983 37.5446L38.6632 37.5869C34.0506 43.1487 31.5418 50.4831 32.2415 58.2392C32.9142 65.693 36.4259 72.1591 41.6001 76.6616L42.0327 77.0381L41.9916 77.616L41.9773 77.8167L41.9703 77.9162L41.9464 78.0134C41.9247 78.1021 41.9103 78.1945 41.9044 78.2898L40.7644 96.4242C40.7257 97.0399 41.036 97.5624 41.508 97.7852L82.2082 77.0353ZM82.2082 77.0353L41.508 97.7852L82.2082 77.0353ZM82.2082 77.0353L82.2111 77.0463L82.2082 77.0353ZM82.2082 77.0353L82.2111 77.0463L82.2082 77.0353ZM41.508 97.7852C50.3202 101.942 69.044 105.797 85.3073 93.2987C85.7456 92.9619 85.9579 92.3657 85.8142 91.7778L82.3845 77.7553L82.2239 77.0986L82.2243 77.0983L41.508 97.7852ZM41.508 97.7852L82.2243 77.0983L41.508 97.7852ZM82.2111 77.0463L82.2243 77.0983L82.2111 77.0463ZM82.2111 77.0463L82.2243 77.0983L82.2111 77.0463ZM35.7301 35.2811C30.547 41.5788 27.7293 49.8684 28.5192 58.6226C29.2379 66.5879 32.82 73.5671 38.1412 78.6195L37.0344 96.228C36.9079 98.2401 37.9263 100.275 39.8936 101.203C49.3928 105.684 69.7455 109.972 87.5513 96.2878C89.2508 94.9819 89.9258 92.808 89.4435 90.8362L86.3741 78.2864L86.3926 78.2686L86.2237 77.6059L85.8364 76.0879L85.8349 76.0824L85.8342 76.0799L85.8328 76.0741L85.2901 73.8543L84.9049 73.954L85.2901 73.8543C85.2639 73.7471 85.2345 73.6413 85.2019 73.5368C86.5626 71.5935 87.7132 69.4954 88.6229 67.279C90.82 62.7203 91.632 57.4487 90.9023 51.8688C90.4682 47.1539 88.9345 42.7198 86.5787 38.8365C80.5923 28.801 69.2448 22.6064 56.8612 23.8823C54.0414 24.1729 51.3394 24.8337 48.8 25.8137C43.19 27.7106 38.7575 30.9022 35.7301 35.2811Z\",\n fill: \"#FFA515\",\n stroke: \"#FFB80E\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.85,\n d: \"M39.6099 96.3637L40.7496 78.2292C40.8342 76.8836 41.8855 75.7962 43.2132 75.681L79.9932 72.4884C81.2923 72.3754 82.4723 73.2279 82.7845 74.5045L86.9381 91.4866C87.1861 92.5008 86.8313 93.5841 86.003 94.2207C69.2615 107.086 50.0323 103.097 41.0072 98.8401C40.0727 98.3995 39.5439 97.41 39.6099 96.3637Z\",\n fill: \"#9E7105\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.85,\n d: \"M40.4958 82.343L41.1239 73.508L81.4463 69.3534L83.5137 77.4584C69.5273 90.9247 48.7455 87.5506 40.4958 82.343Z\",\n fill: \"#946C0E\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.85,\n d: \"M62.3163 84.3442C78.121 82.7158 89.7643 68.4409 88.3223 52.4605C86.8804 36.48 72.8992 24.8454 57.0945 26.4738C41.2898 28.1023 29.6465 42.3771 31.0885 58.3576C32.5304 74.338 46.5116 85.9727 62.3163 84.3442Z\",\n fill: \"#FFCB23\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M88.3373 52.188C90.2992 66.9949 80.3598 78.7341 63.8039 79.5801C47.248 80.426 33.809 67.0826 33.7354 51.5752C33.668 37.3871 41.9351 28.217 57.5931 26.6038C73.251 24.9904 86.9758 37.0982 88.3373 52.188Z\",\n fill: \"#FFE419\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.85,\n d: \"M42.2268 52.9602C48.5042 50.8908 50.3647 44.4162 50.5103 41.4377C53.1239 48.36 58.5986 50.7135 61.0094 51.0249C55.553 53.0097 53.0082 59.5546 52.4179 62.5793C49.8608 56.2832 44.5583 53.5432 42.2268 52.9602Z\",\n fill: \"white\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.85,\n d: \"M63.7216 41.4334C66.7976 40.381 67.6957 37.0406 67.76 35.502C69.059 39.0858 71.7518 40.3166 72.9356 40.484C70.2624 41.4947 69.0289 44.8698 68.7462 46.4309C67.4763 43.1709 64.8673 41.7408 63.7216 41.4334Z\",\n fill: \"white\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.85,\n d: \"M60.1035 64.7712C63.8894 63.4771 64.9948 59.3697 65.0744 57.4779C66.6729 61.8842 69.9865 63.3972 71.4438 63.603C68.1534 64.846 66.6348 68.9958 66.2868 70.9154C64.7243 66.9072 61.5135 65.1492 60.1035 64.7712Z\",\n fill: \"white\"\n })), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.85,\n d: \"M42.8284 42.7725C43.6602 42.6868 44.273 41.9354 44.1971 41.0944C44.1213 40.2533 43.3854 39.6409 42.5536 39.7266C41.7218 39.8124 41.1089 40.5637 41.1848 41.4047C41.2607 42.2458 41.9966 42.8582 42.8284 42.7725Z\",\n fill: \"white\"\n })), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.85,\n d: \"M57.1779 33.3372C57.7161 33.2817 58.1126 32.7956 58.0635 32.2514C58.0144 31.7072 57.5383 31.3109 57 31.3664C56.4618 31.4218 56.0653 31.908 56.1144 32.4522C56.1635 32.9964 56.6396 33.3927 57.1779 33.3372Z\",\n fill: \"white\"\n })), _path11 || (_path11 = /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.85,\n d: \"M76.9368 60.0535C77.6708 59.9779 78.2115 59.3149 78.1445 58.5728C78.0776 57.8307 77.4283 57.2904 76.6943 57.366C75.9604 57.4416 75.4196 58.1045 75.4866 58.8467C75.5536 59.5888 76.2029 60.1291 76.9368 60.0535Z\",\n fill: \"white\"\n })), _path12 || (_path12 = /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.85,\n d: \"M46.2909 66.2848C46.9759 66.2142 47.4806 65.5955 47.4181 64.9029C47.3556 64.2102 46.7496 63.7059 46.0645 63.7765C45.3795 63.8471 44.8748 64.4658 44.9373 65.1585C44.9998 65.8511 45.6058 66.3554 46.2909 66.2848Z\",\n fill: \"white\"\n })), _path13 || (_path13 = /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.85,\n d: \"M57.7302 74.1478C58.9045 74.0268 59.7696 72.9662 59.6625 71.7787C59.5554 70.5913 58.5165 69.7268 57.3422 69.8478C56.1678 69.9688 55.3027 71.0295 55.4098 72.2169C55.517 73.4043 56.5558 74.2688 57.7302 74.1478Z\",\n fill: \"white\"\n })), /*#__PURE__*/React.createElement(\"mask\", {\n id: \"mask0_111_9327\",\n style: {\n maskType: \"alpha\"\n },\n maskUnits: \"userSpaceOnUse\",\n x: 10,\n y: 19,\n width: 37,\n height: 37\n }, _path14 || (_path14 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M30.5137 37.8346C30.4803 36.2756 46.204 25.1956 46.204 25.1956C46.204 25.1956 30.9592 35.3068 28.5427 34.8725C26.1151 34.4494 16.2489 19.2603 16.2489 19.2603C16.2489 19.2603 26.271 34.3714 26.0038 36.5763C25.7254 38.77 10.3135 49.2153 10.3135 49.2153C10.3135 49.2153 26.1263 39.3157 27.9748 39.5384C29.8233 39.75 40.2575 55.1618 40.2575 55.1618C40.2575 55.1618 30.5471 39.3936 30.5137 37.8346Z\",\n fill: \"#FFFFA1\"\n }))), _g2 || (_g2 = /*#__PURE__*/React.createElement(\"g\", {\n mask: \"url(#mask0_111_9327)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M80.9695 87.2018C97.5686 70.6027 97.5686 43.6903 80.9695 27.0912C64.3704 10.4921 37.4579 10.4921 20.8589 27.0912C4.25975 43.6903 4.25975 70.6027 20.8589 87.2018C37.4579 103.801 64.3704 103.801 80.9695 87.2018Z\",\n fill: \"#FFFFA1\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint0_linear_111_9327\",\n x1: 59.7756,\n y1: 23.7163,\n x2: 80.7907,\n y2: 108.377,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#8E3C91\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#601363\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgBetTrophy);\nexport default __webpack_public_path__ + \"static/media/BetTrophy.a44ae8b90fe007a7167ee6a88dbfdb7c.svg\";\nexport { ForwardRef as ReactComponent };","import { useSelector } from \"react-redux\";\nimport { AppState } from \"../..\";\n\nexport const useGetSolBalance = (): number => {\n const solBalance = useSelector((state) => state.global.solBalance);\n\n return solBalance;\n}\n\nexport const useGetLoaded = (): boolean => {\n const loaded = useSelector((state) => state.global.loaded);\n\n return loaded; \n}","// extracted by mini-css-extract-plugin\nexport default {\"refundContainer\":\"Claim_refundContainer__t8XQQ\",\"header\":\"Claim_header__izVFw\",\"container\":\"Claim_container__wHUIO\",\"body\":\"Claim_body__HMjN9\",\"claimBtn\":\"Claim_claimBtn__6Sp1N\",\"claimBtnRefund\":\"Claim_claimBtnRefund__zH-AS\"};","import React, { useCallback } from 'react'\nimport { useClaim } from '../../hooks/useSolSeer';\nimport styles from './Claim.module.scss';\nimport { useCalculateUserPayout, useGetPlayerBet } from '../../state/playerBets/hooks/usePlayerBets';\nimport { ReactComponent as BetTrophy } from '../Icons/BetTrophy.svg';\nimport { Number } from '../Intl';\nimport { useGetRound } from '../../state/rounds/hooks/useRound';\nimport Button, { Variant } from '../Button';\n\ninterface Props {\n gameState: string,\n round: number\n}\n\nconst Claim = ({ gameState, round }: Props) => {\n const playerBet = useGetPlayerBet(gameState, round)!;\n const roundData = useGetRound(gameState, round)!;\n\n const [claim, claimLoading] = useClaim(gameState);\n\n const { amount } = useCalculateUserPayout(gameState, round);\n\n const handleClaim = useCallback(() => {\n claim([round]);\n }, [round, claim]);\n\n const isDraw = roundData.startValue === roundData.endValue;\n\n if (roundData.isRefund) {\n return (\n
\n
\n
\n
Oopsie!
\n {\n isDraw && (\n
It looks like no one placed a position on draw. We will refund you your position of SOL.
\n )\n }\n {\n !isDraw && (\n
This round was not closed on time. We will refund you your position of SOL.
\n )\n }\n
\n \n
\n
\n
\n );\n }\n\n return (\n
\n
\n
\n
Congratulations!
\n
You won SOL
\n
\n \n
\n
\n
\n )\n}\n\nexport default Claim","import React, { useEffect, useState } from 'react'\nimport styles from './Round.module.scss';\nimport { getChainCurrentTime } from '../../utils/getChainCurrentTime';\n\ninterface Props {\n endTs: number,\n}\n\n// TODO: Remove this and get from API\nconst FIVE_MINUTES = 60 * 5;\n\nconst ProgressBar = ({ endTs }: Props) => {\n const [elapsed, setElapsed] = useState(0);\n\n useEffect(() => {\n let interval = setInterval(() => {\n const now = getChainCurrentTime() / 1000;\n\n const remaining = endTs - now;\n\n const percentage = (FIVE_MINUTES - remaining) / FIVE_MINUTES * 100;\n\n setElapsed(Math.min(percentage, 100))\n }, 60)\n\n return () => {\n clearInterval(interval);\n }\n }, [endTs, setElapsed])\n\n if (!endTs) return null;\n\n return (\n
\n \n
\n )\n}\n\nexport default React.memo(ProgressBar)","import React from 'react';\r\nimport { Bet, convertToBetEnum } from 'sol-seer-lib';\r\nimport { useGetPlayerBet } from '../../state/playerBets/hooks/usePlayerBets';\r\nimport { useGetRound } from '../../state/rounds/hooks/useRound';\r\nimport { Number } from '../Intl';\r\nimport { ReactComponent as BetUp } from '../Icons/BetUp.svg';\r\nimport { ReactComponent as BetDraw } from '../Icons/BetDraw.svg';\r\nimport { ReactComponent as BetDown } from '../Icons/BetDown.svg';\r\nimport styles from './Round.module.scss';\r\n\r\ninterface Props {\r\n round: number,\r\n gameState: string\r\n}\r\n\r\nconst UserPosition = ({ gameState, round }: Props) => {\r\n const playerBet = useGetPlayerBet(gameState, round)!;\r\n const roundData = useGetRound(gameState, round);\r\n const selectedChoice = playerBet ? convertToBetEnum(playerBet.choice) : null;\r\n \r\n if (roundData?.isRefund) {\r\n return null;\r\n }\r\n\r\n let betLabel = 'DRAW'\r\n let betIcon = \r\n if (selectedChoice === Bet.UP) {\r\n betLabel = 'UP';\r\n betIcon = \r\n } else if (selectedChoice === Bet.DOWN) {\r\n betLabel = 'DOWN';\r\n betIcon = \r\n }\r\n return (\r\n
\r\n
ENTERED
\r\n
\r\n {betIcon}\r\n {betLabel}\r\n SOL\r\n
\r\n\r\n
\r\n )\r\n}\r\n\r\nexport default UserPosition","import React, { useMemo } from 'react'\nimport { Number } from '../Intl';\nimport { calculatePayoutRatio } from '../../utils/numbers';\n\ninterface Props {\n num: string,\n total: string\n}\n\nconst PayoutRatio = ({ num, total }: Props) => {\n const ratio = useMemo(() => calculatePayoutRatio(num, total), [num, total]);\n\n return (\n <>\n \n \n )\n}\n\nexport default React.memo(PayoutRatio)","import React from 'react'\nimport { theme } from '../../styles/theme';\n\ninterface Props {\n size?: number,\n className?: string,\n active?: boolean\n}\n\nconst BetUp = ({ size = 35, className, active = false }: Props) => {\n const arrowColor = active ? \"#FFF\" : '#8489A0'\n const bgColor = active ? theme.green : '#D2D4DF';\n\n return (\n \n \n \n \n )\n}\n\nexport default React.memo(BetUp)","import React from 'react'\nimport { theme } from '../../styles/theme';\n\ninterface Props {\n size?: number,\n className?: string,\n active?: boolean\n}\n\nconst BetDown = ({ size = 35, className, active = false }: Props) => {\n const arrowColor = active ? \"#FFF\" : '#8489A0'\n const bgColor = active ? theme.red : '#D2D4DF';\n\n return (\n \n \n \n \n )\n}\n\nexport default React.memo(BetDown)","import React from 'react'\nimport { theme } from '../../styles/theme';\n\ninterface Props {\n size?: number,\n className?: string,\n active?: boolean\n}\n\nconst BetDown = ({ size = 35, className, active }: Props) => {\n const arrowColor = active ? \"#FFF\" : '#8489A0'\n const bgColor = active ? theme.gray : '#D2D4DF';\n\n return (\n \n \n \n \n )\n}\n\nexport default React.memo(BetDown)","import React from 'react';\nimport { Bet, convertToBetEnum } from 'sol-seer-lib';\nimport { useGetPlayerBet } from '../../state/playerBets/hooks/usePlayerBets';\nimport { useGetRound, useGetRoundTotal } from '../../state/rounds/hooks/useRound';\nimport PayoutRatio from './PayoutRatio';\nimport { BetUp, BetDraw, BetDown } from '../Icons/';\nimport styles from './Round.module.scss';\nimport classNames from 'classnames';\n\ninterface Props {\n round: number,\n gameState: string,\n}\n\n// For Past Rounds\nconst UserBetPast = ({ gameState, round }: Props) => {\n const playerBet = useGetPlayerBet(gameState, round)!;\n const roundData = useGetRound(gameState, round);\n const selectedChoice = playerBet ? convertToBetEnum(playerBet.choice) : null;\n const total = useGetRoundTotal(gameState, round);\n\n const betUpClass = classNames(styles.payoutBox, styles.betButton, styles.disabled, {\n [styles.betButtonActiveGreen]: selectedChoice === Bet.UP,\n })\n\n const betDrawClass = classNames(styles.payoutBox, styles.betButton, styles.disabled, {\n [styles.betButtonActiveGray]: selectedChoice === Bet.DRAW,\n })\n\n const betDownClass = classNames(styles.payoutBox, styles.betButton, styles.disabled, {\n [styles.betButtonActiveRed]: selectedChoice === Bet.DOWN,\n })\n\n return (\n
\n
\n Up\n \n \n
\n
\n Draw\n \n \n
\n
\n Down\n \n \n
\n
\n )\n}\n\nexport default React.memo(UserBetPast);","import React from 'react';\nimport styles from './Round.module.scss';\nimport { useGetRound, useGetRoundTotal } from '../../state/rounds/hooks/useRound';\nimport { useGetPlayerBet } from '../../state/playerBets/hooks/usePlayerBets';\nimport { useGetCurrentRound } from '../../state/games/hooks/useGame';\nimport { Number } from '../Intl';\nimport PriceDiff from '../PriceDiff';\nimport { useGetPrice } from '../../state/price/hooks/usePrice';\nimport { Bet, convertToBetEnum, getCorrectChoice } from 'sol-seer-lib';\nimport { BN } from '@project-serum/anchor';\nimport Claim from '../Claim';\nimport ProgressBar from './ProgressBar';\nimport UserPosition from './UserPosition';\nimport classNames from 'classnames';\nimport UserBetPast from './UserBetPast';\nimport { BodyFlex, Container, Title } from './styles';\nimport { theme } from '../../styles';\n\ninterface Props {\n round: number,\n gameState: string,\n onFlip: (e: Bet | null) => void\n}\n\nconst RoundDetails = ({ gameState, round, onFlip }: Props) => {\n const roundData = useGetRound(gameState, round)!;\n const currentRound = useGetCurrentRound(gameState);\n const playerBet = useGetPlayerBet(gameState, round)!;\n const price = useGetPrice(gameState);\n const selectedChoice = playerBet ? convertToBetEnum(playerBet.choice) : null;\n const total = useGetRoundTotal(gameState, round);\n const correctChoice = getCorrectChoice(new BN(roundData.startValue), new BN(roundData.endValue))\n \n const priceDiff = (+roundData.endValue || price * 10 ** 8) - +roundData.startValue;\n\n const bodyClass = classNames({\n [styles.bodyGreen]: priceDiff > 0,\n [styles.bodyRed]: priceDiff < 0\n })\n\n let borderColor;\n if (priceDiff > 0) {\n borderColor = theme.green;\n } else if (priceDiff < 0) {\n borderColor = theme.red;\n } else {\n borderColor = theme.gray;\n }\n \n const isLive = roundData.round === currentRound && !!roundData.endTs;\n\n return (\n \n \n <span>{isLive ? 'LIVE' : 'FINISHED'}</span>\n <span>{' '}#{round}</span>\n \n {roundData.round === currentRound ? : }\n \n
Last Price
\n
\n {roundData.round !== currentRound ? \n : \n }\n
\n \n
\n Prize Pool:\n SOL\n
\n
\n Start Price:\n \n
\n
\n
\n \n
\n {\n playerBet && (\n <>\n {(correctChoice === selectedChoice || roundData.isRefund) && !playerBet.claimed ? (\n \n ) : (\n \n )}\n \n )\n }\n
\n )\n}\n\nexport default React.memo(RoundDetails)","import React from 'react';\nimport { Bet, convertToBetEnum } from 'sol-seer-lib';\nimport { useGetPlayerBet } from '../../state/playerBets/hooks/usePlayerBets';\nimport { useGetRound, useGetRoundTotal } from '../../state/rounds/hooks/useRound';\nimport PayoutRatio from './PayoutRatio';\nimport { BetUp, BetDraw, BetDown } from '../Icons/';\nimport styles from './Round.module.scss';\nimport classNames from 'classnames';\n\ninterface Props {\n round: number,\n gameState: string,\n onClickFlip: (d: Bet | null) => void\n}\n\nconst UserBet = ({ gameState, round, onClickFlip }: Props) => {\n const playerBet = useGetPlayerBet(gameState, round)!;\n const roundData = useGetRound(gameState, round);\n const bettable = !roundData?.endTs && !playerBet;\n const selectedChoice = playerBet ? convertToBetEnum(playerBet.choice) : null;\n const total = useGetRoundTotal(gameState, round);\n\n const betUpClass = classNames(styles.payoutBox, styles.nextBetButtonHoverGreen, {\n [styles.betButtonActiveGreen]: selectedChoice === Bet.UP,\n [styles.disabled]: !bettable\n })\n\n const betDrawClass = classNames(styles.payoutBox, styles.nextBetButtonHoverGray, {\n [styles.betButtonActiveGray]: selectedChoice === Bet.DRAW,\n [styles.disabled]: !bettable\n })\n\n const betDownClass = classNames(styles.payoutBox, styles.nextBetButtonHoverRed, {\n [styles.betButtonActiveRed]: selectedChoice === Bet.DOWN,\n [styles.disabled]: !bettable\n })\n\n return (\n
\n
onClickFlip(Bet.UP)} className={betUpClass}>\n Up\n \n \n
\n
onClickFlip(Bet.DRAW)} className={betDrawClass}>\n Draw\n \n \n
\n
onClickFlip(Bet.DOWN)} className={betDownClass}>\n Down\n \n \n
\n
\n )\n}\n\nexport default React.memo(UserBet);","import React from 'react'\nimport { useGetRoundTotal } from '../../state/rounds/hooks/useRound';\nimport styles from './Round.module.scss';\nimport classNames from 'classnames';\nimport UserBet from './UserBet';\nimport { Number } from '../Intl';\nimport { useGetPlayerBet } from '../../state/playerBets/hooks/usePlayerBets';\nimport UserPosition from './UserPosition';\nimport { Bet } from 'sol-seer-lib';\nimport { BodyFlex, Container, Title } from './styles';\n\ninterface Props {\n gameState: string,\n round: number,\n onFlip: (e: Bet | null) => void\n}\n\nconst UpcomingRound = ({ gameState, round, onFlip }: Props) => {\n const playerBet = useGetPlayerBet(gameState, round)!;\n const total = useGetRoundTotal(gameState, round);\n\n return (\n \n \n <span>NEXT</span>\n <span>{' '}#{round}</span>\n \n \n
Select position
\n \n
\n Prize Pool:\n SOL\n
\n
\n {playerBet ? : null}\n
\n )\n}\n\nexport default React.memo(UpcomingRound)","import React from 'react';\nimport styled from 'styled-components';\nimport styles from './Round.module.scss';\nimport UserBetPast from './UserBetPast';\nimport { rem } from '../../styles';\nimport { BodyFlex, Container, Title } from './styles';\n\ninterface Props {\n round: number,\n gameState: string,\n}\n\nconst LogoImg = styled.img`\n height: ${rem(55)};\n width: ${rem(55)};\n margin-bottom: ${rem(16)};\n`\n\nconst CalculatingStyle = styled.span`\n font-weight: 600;\n font-size: ${rem(20)};\n color: #6A6299;\n`\n\nconst Calculating = () => {\n return (\n \n Calculating...\n \n )\n}\n\nconst CalculatingRound = ({ gameState, round }: Props) => { \n return (\n \n \n <span>LIVE</span>\n <span>{' '}#{round}</span>\n \n \n \n \n \n
\n \n
\n
\n )\n}\n\nexport default React.memo(CalculatingRound)","// MSS stands for M:SS\nexport function convertReadableTimeMSS(timeMS: number) {\n const timeSeconds = Math.round(timeMS / 1000);\n\n const timeRemainingMinutes = Math.floor(timeSeconds / 60)\n\n const timeRemainingSeconds = timeSeconds % 60;\n\n return `${timeRemainingMinutes}:${timeRemainingSeconds.toString().padStart(2, '0')}`\n}","import React, { useEffect, useState } from 'react'\nimport { useGetCurrentRound } from '../../state/games/hooks/useGame'\nimport { useGetRound } from '../../state/rounds/hooks/useRound'\nimport { rem } from '../../styles'\nimport { BodyFlex, Container, Title } from './styles'\nimport { getChainCurrentTime } from '../../utils/getChainCurrentTime';\nimport { convertReadableTimeMSS } from '../../utils/convertReadableTime';\nimport styled from 'styled-components';\n\ninterface Props {\n gameState: string,\n round: number\n}\n\nconst RoundLabel = styled.span`\n font-size: ${rem(18)};\n color: #312F7E;\n font-weight: 600;\n margin-bottom: ${rem(8)};\n`\n\nconst TimeRemaining = styled.span`\n font-size: ${rem(24)};\n color: #312F7E;\n font-weight: 800; \n`\n\nconst UpcomingRound = ({ gameState, round }: Props) => {\n const currentRound = useGetCurrentRound(gameState);\n const currentRoundData = useGetRound(gameState, currentRound);\n const [timePending, setTimePending] = useState(0);\n const roundDiff = round - currentRound;\n const addedMinutes = 300_000 * (roundDiff - 2);\n\n useEffect(() => {\n let interval: NodeJS.Timer;\n\n if (currentRoundData?.endTs) {\n interval = setInterval(() => {\n const now = getChainCurrentTime();\n \n const roundTimeRemaining = currentRoundData?.endTs * 1000 - now;\n\n setTimePending(Math.max(roundTimeRemaining, 0));\n }, 500)\n }\n\n return () => {\n if (!!interval) {\n clearInterval(interval)\n }\n }\n }, [setTimePending, currentRoundData?.endTs])\n\n return (\n \n \n <span>UPCOMING</span>\n <span>{' '}#{round}</span>\n \n \n {\n currentRoundData?.endTs ? (\n <>\n Entry starts\n ~ {convertReadableTimeMSS(timePending + addedMinutes)} mins\n \n ) : (\n Waiting for players\n )\n } \n \n \n )\n}\n\nexport default React.memo(UpcomingRound)","import React, { useCallback, useState } from 'react'\nimport ReactCardFlip from 'react-card-flip';\nimport BetBox from './BetBox';\nimport { useGetIsRoundCalculating, useGetRound } from '../../state/rounds/hooks/useRound';\nimport RoundDetails from './RoundDetails';\nimport styles from './Round.module.scss';\nimport { Bet } from 'sol-seer-lib';\nimport NextRound from './NextRound';\nimport CalculatingRound from './CalculatingRound';\nimport UpcomingRound from './UpcomingRound';\nimport { Flex } from '../Box';\nimport { rem } from '../../styles';\n\ninterface Props {\n round: number,\n gameState: string,\n}\n\nconst Round = ({ gameState, round }: Props) => {\n const roundData = useGetRound(gameState, round);\n const [direction, setDirection] = useState(null)\n\n const bettable = !roundData?.endTs;\n\n const isCalculating = useGetIsRoundCalculating(gameState, round);\n\n const handleFlip = useCallback((d: Bet | null) => {\n if (bettable) {\n setDirection(d)\n }\n }, [setDirection, bettable])\n\n let displayRound = null;\n if (!roundData) {\n displayRound = \n } else if (isCalculating) {\n displayRound = \n } else if (!bettable) {\n displayRound = \n } else {\n displayRound = \n }\n \n return (\n \n \n {displayRound} \n \n \n \n )\n}\n\nexport default React.memo(Round);","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"Game_container__s-AyM\",\"gameDetails\":\"Game_gameDetails__IdLjM\",\"betBoxes\":\"Game_betBoxes__+gUGg\",\"gameDetailsItem\":\"Game_gameDetailsItem__GSUHb\",\"clock\":\"Game_clock__d+DSf\",\"clockText\":\"Game_clockText__Mzn6u\",\"clockTime\":\"Game_clockTime__U2AqA\",\"clockInterval\":\"Game_clockInterval__mFYSM\",\"clockItem\":\"Game_clockItem__G5QrI\",\"historyButton\":\"Game_historyButton__y7prb\",\"roundToggle\":\"Game_roundToggle__I9m6i\",\"roundToggleLeft\":\"Game_roundToggleLeft__p-6NI\",\"roundToggleRight\":\"Game_roundToggleRight__7kLNT\",\"mobileDetailsSection\":\"Game_mobileDetailsSection__wN+r6\",\"mobilleBuffer\":\"Game_mobilleBuffer__lcHbX\",\"mobileDetails\":\"Game_mobileDetails__7mHv5\",\"mobileDetailItem\":\"Game_mobileDetailItem__zNEUb\",\"mobileDetailLabel\":\"Game_mobileDetailLabel__+F5Ve\",\"mobileDetailBody\":\"Game_mobileDetailBody__h1fyF\"};","import React, { memo, useEffect, useState } from 'react'\nimport { convertReadableTimeMSS } from '../../utils/convertReadableTime'\nimport { getChainCurrentTime } from '../../utils/getChainCurrentTime'\nimport styles from './Game.module.scss'\n\ninterface Props {\n endTs?: number,\n mobile?: boolean\n}\n\nconst TimeRemaining = ({ endTs, mobile = false }: Props) => {\n const [timeRemaining, setTimeRemaining] = useState(0);\n\n useEffect(() => {\n let interval: NodeJS.Timeout;\n\n if (endTs) {\n const getTimeRemaining = () => {\n const now = getChainCurrentTime();\n \n setTimeRemaining(Math.round(endTs! * 1000 - now));\n }\n\n getTimeRemaining();\n\n interval = setInterval(getTimeRemaining, 200)\n }\n\n return () => {\n if (interval) clearInterval(interval);\n }\n }, [endTs])\n \n let timeDisplay = <>;\n\n if (!endTs) {\n timeDisplay = Waiting For Players\n } else if (timeRemaining <= 0) {\n timeDisplay = Calculating...\n } else {\n timeDisplay = (\n <>\n \n {convertReadableTimeMSS(timeRemaining)}\n \n \n {mobile ? '5 min round' : '5 mins'}\n \n \n )\n }\n\n return (\n
\n {timeDisplay}\n
\n )\n}\n\nexport default memo(TimeRemaining)","import React from 'react'\n\ninterface Props {\n size?: number,\n className?: string,\n onClick?: () => void\n}\n\nconst HistoryIcon = ({ size = 20, className, onClick }: Props) => {\n const height = 22/20 * size;\n\n return (\n \n \n \n \n \n )\n}\n\nexport default React.memo(HistoryIcon)","import React, { useCallback } from 'react'\nimport { useModal, Modal } from '../../providers/Modal';\nimport styles from './Game.module.scss';\nimport HistoryIcon from '../Icons/HistoryIcon';\nimport { useUserPK } from '../../hooks/useUserPK';\n\nconst HistoryButton = ({ gameState }: { gameState: string}) => {\n const { openModal } = useModal();\n\n const userPK = useUserPK(); \n\n const openHistory = useCallback(() => {\n openModal(Modal.HISTORY, { gameState });\n }, [openModal, gameState])\n \n if (!userPK) return null;\n\n return (\n \n )\n}\n\nexport default React.memo(HistoryButton)","import React from 'react'\n\ninterface Props {\n direction: 'left' | 'right',\n size?: number,\n className?: string,\n onClick?: () => void\n}\n\nconst Arrow = ({ direction, size = 16, className, onClick }: Props) => {\n let icon = ;\n\n if (direction === 'left') icon = \n\n const height = 15 / size * 16\n\n return (\n \n {icon}\n \n )\n}\n\nexport default React.memo(Arrow)","import React from 'react'\n\ninterface Props {\n size?: number,\n className?: string\n}\n\nconst Cards = ({ size = 82, className }: Props) => {\n const height = 91 / 82 * size;\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nexport default React.memo(Cards)","import React from 'react'\nimport { Swiper } from 'swiper/types'\nimport Arrow from '../Icons/Arrow';\nimport Cards from '../Icons/Cards'\nimport styles from './Game.module.scss';\n\ninterface Props {\n swiper: Swiper | null\n}\n\nconst RoundToggle = ({ swiper }: Props) => {\n const handleLeft = () => {\n if (swiper) {\n swiper.slidePrev()\n }\n }\n\n const handleRight = () => {\n if (swiper) {\n swiper.slideNext()\n }\n }\n\n return (\n
\n
\n \n
\n \n
\n \n
\n
\n )\n}\n\nexport default RoundToggle","import React from 'react'\nimport { useGetPrice } from '../../state/price/hooks/usePrice';\nimport Cards from '../Icons/Cards';\nimport styles from './Game.module.scss';\nimport { Number } from '../Intl';\nimport TimeRemaining from './TimeRemaining';\nimport { useGetRound } from '../../state/rounds/hooks/useRound';\n\ninterface Props {\n gameState: string,\n currentRound: number\n}\n\nconst MobileDetailsSection = ({ gameState, currentRound }: Props) => {\n const price = useGetPrice(gameState);\n const roundData = useGetRound(gameState, currentRound);\n \n return (\n
\n
\n
\n SOL/USD\n \n {price && } \n \n
\n \n
\n \n
\n
\n
\n )\n}\n\nexport default MobileDetailsSection","import React from 'react'\n\ninterface Props {\n size?: number\n}\n\nconst Timer = ({ size = 53 }: Props) => {\n const height = 78 / 53 * size;\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nexport default React.memo(Timer)","import React, { useCallback, useState } from 'react'\nimport { Swiper, SwiperSlide } from 'swiper/react';\nimport { Swiper as SwiperClass } from 'swiper/types';\nimport { useGame } from '../../state/games/hooks';\nimport { SolPrice } from '../Price';\nimport Round from '../Round';\nimport TimeRemaining from './TimeRemaining';\nimport styles from './Game.module.scss'\nimport HistoryButton from './HistoryButton';\nimport { useGetRound } from '../../state/rounds/hooks/useRound';\nimport { useSlidesPerView } from '../../hooks/useSlidesPerView';\nimport 'swiper/css';\nimport RoundToggle from './RoundToggle';\nimport MobileDetailsSection from './MobileDetailsSection';\nimport Timer from '../Icons/Timer';\nimport { useModal, Modal } from '../../providers/Modal';\n\ninterface Props {\n gameState: string\n}\n\nconst Game = ({ gameState }: Props) => {\n const [swiper, setSwiper] = useState(null);\n\n const gameStateData = useGame(gameState);\n\n const { currentRound } = gameStateData;\n\n const viewableRounds = [currentRound - 3, currentRound - 2, currentRound - 1, currentRound, currentRound + 1, currentRound + 2, currentRound + 3]\n .filter((value) => value > 0)\n\n const initialSlide = Math.min(Math.max(0, currentRound - 1), 3);\n\n const currentRoundData = useGetRound(gameState, currentRound);\n\n const slidesPerView = useSlidesPerView();\n\n const { openModal } = useModal();\n\n const handleOpenChart = useCallback(() => {\n openModal(Modal.CHART, { gameState });\n }, [openModal]);\n\n return (\n <>\n
\n
\n
\n \n
\n
\n \n
\n
\n {/* */}\n
\n \n \n
\n \n
\n
\n
\n setSwiper(swiper)}\n >\n {\n viewableRounds.map((round, index) => {\n return (\n \n \n \n )\n })\n }\n \n
\n
\n
\n \n \n )\n}\n\nexport default Game","import { useEffect, useState } from 'react';\n\nexport function useSlidesPerView(): number {\n const [slidesPerView, setSlidesPerView] = useState(1);\n\n useEffect(() => {\n const listenToResize = (): void => {\n const width = window.innerWidth;\n\n if (width >= 410) {\n setSlidesPerView(Math.max(width / 400, 1.2));\n } else if (width >= 390) {\n setSlidesPerView(1.25);\n } else {\n setSlidesPerView(1.2); \n }\n };\n\n listenToResize();\n\n window.addEventListener('resize', listenToResize);\n return (): void => {\n window.removeEventListener('resize', listenToResize);\n };\n }, []);\n\n return slidesPerView;\n}","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"Home_container__qRlyu\",\"loading\":\"Home_loading__bhRmr\"};","import React from 'react'\nimport { GAME_STATES } from '../../configs';\nimport Game from '../../components/Game';\nimport { useGetLoaded } from '../../state/global/hooks/useGlobal';\nimport styles from './Home.module.scss';\nimport Loading from '../../components/Icons/Loading';\nimport { useKeepUpdated } from '../../hooks/useKeepUpdated';\n\nconst Home = () => {\n const loaded = useGetLoaded();\n\n useKeepUpdated();\n\n if (!loaded) return (\n
\n \n
\n );\n\n return (\n
\n {\n GAME_STATES.map(({ name, address }) => {\n return (\n
\n \n
\n )\n })\n }\n
\n );\n}\n\nexport default Home","import { useEffect } from \"react\";\nimport { useUpdateGameState } from \"../state/games/hooks/useUpdateGame\";\n\n// This is to make sure that users with phone devices are up to date when they switch close their app and then reopen\nexport function useKeepUpdated() {\n const [updateGameState] = useUpdateGameState();\n\n useEffect(() => {\n let lastUpdated = new Date().getTime();\n\n const interval = setInterval(() => {\n const now = new Date().getTime()\n\n if ((now - lastUpdated) > 250_000) {\n updateGameState();\n }\n\n lastUpdated = now;\n }, 5000)\n\n return () => {\n clearInterval(interval);\n }\n }, [updateGameState])\n}","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"Faq_container__4PRrc\",\"header\":\"Faq_header__b7-Kl\",\"faqItem\":\"Faq_faqItem__4Z7rv\",\"faqItemTitle\":\"Faq_faqItemTitle__jDxSX\"};","import React from 'react'\nimport styles from './Faq.module.scss';\nimport { Lang } from '../../components/Intl';\n\nconst FaqItem = ({ title, href, children }: { title: string, href: string, children: React.ReactNode }) => {\n return (\n
\n

\n \n \n \n

\n

{children}

\n
\n )\n}\n\nconst Faq = () => {\n return (\n
\n

FAQ

\n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n
\n )\n}\n\nexport default Faq","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"Navigation_container__oqhZU\",\"containerOpened\":\"Navigation_containerOpened__Kasjl\",\"hamburger\":\"Navigation_hamburger__pPLFA\",\"mobileNav\":\"Navigation_mobileNav__-iCCn\",\"historyIcon\":\"Navigation_historyIcon__DhbCc\",\"icon\":\"Navigation_icon__lPT0N\",\"subMenu\":\"Navigation_subMenu__qZ62t\",\"opened\":\"Navigation_opened__h+chN\",\"iconText\":\"Navigation_iconText__tAJpx\",\"links\":\"Navigation_links__t9QCk\",\"link\":\"Navigation_link__Jlf0e\",\"connectWallet\":\"Navigation_connectWallet__+NeRR\",\"navRightSection\":\"Navigation_navRightSection__KRGjo\",\"walletButton\":\"Navigation_walletButton__Cg+oX\",\"socials\":\"Navigation_socials__caR3H\",\"social\":\"Navigation_social__gZRPN\"};","import React, { useState, useCallback } from 'react'\nimport {\n Link\n} from \"react-router-dom\";\nimport classNames from 'classnames';\nimport { SiTwitter, SiDiscord } from \"react-icons/si\";\nimport ConnectWallet from '../ConnectWallet';\nimport Logo from '../Icons/Logo';\nimport styles from './Navigation.module.scss';\nimport { GiHamburgerMenu } from \"react-icons/gi\";\nimport { MdClose } from 'react-icons/md';\nimport { useWindowSize } from '../../hooks/useWindowWidth';\nimport HistoryIcon from '../Icons/HistoryIcon';\nimport { Modal, useModal } from '../../providers/Modal';\nimport { useDefaultGame } from '../../state/games/hooks/useGame';\nimport { useUserPK } from '../../hooks/useUserPK';\n\nconst Navigation = () => {\n const [menuOpened, setMenuOpened] = useState(false);\n\n const { width } = useWindowSize();\n\n const { openModal } = useModal();\n\n const gameState = useDefaultGame();\n\n const userPk = useUserPK(); \n\n const openHistory = useCallback(() => {\n setMenuOpened(false) \n openModal(Modal.HISTORY, { gameState });\n }, [openModal, gameState])\n\n const logoSize = width < 768 ? 30 : 48;\n\n const handleOpen = useCallback(() => {\n setMenuOpened(true) \n }, [setMenuOpened])\n\n const handleClose = useCallback(() => {\n setMenuOpened(false) \n }, [setMenuOpened])\n\n return (\n \n )\n}\n\nexport default Navigation","import { useEffect, useState } from 'react';\n\ninterface State {\n height: number\n width: number\n}\n\nexport function useWindowSize(): State {\n const [size, setSize] = useState({ height: 0, width: 0 });\n\n useEffect(() => {\n const listenToResize = (): void => {\n const width = window.innerWidth;\n const height = window.innerHeight;\n\n\n window.requestAnimationFrame(() => {\n setSize({ width, height });\n })\n };\n\n listenToResize();\n\n window.addEventListener('resize', listenToResize);\n return (): void => {\n window.removeEventListener('resize', listenToResize);\n };\n }, []);\n\n return size;\n}","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"App_container__4L7Vo\"};","import { BN } from '@project-serum/anchor'\nimport BigNumber from 'bignumber.js'\nimport React, { ChangeEvent, useCallback, useState } from 'react'\nimport { Number } from '../../components/Intl'\nimport useSolSeer from '../../hooks/useSolSeer'\nimport { useGame } from '../../state/games/hooks'\nimport { useUpdateGameState } from '../../state/games/hooks/useUpdateGame'\n\ninterface Props {\n gameState: string\n}\n\nconst GameLoaded = ({ gameState }: Props) => {\n const game = useGame(gameState);\n\n const [newState, setNewState] = useState({\n minTotalRequired: game.minTotalRequired,\n decimalPlaces: game.decimalPlaces,\n advanceMinBalanceRequired: game.advanceMinBalanceRequired\n });\n\n const solSeer = useSolSeer(gameState);\n\n const [updateGameState] = useUpdateGameState();\n \n const handleClaim = useCallback(async () => {\n await solSeer.adminClaimFees()\n\n await updateGameState();\n\n alert('Claimed')\n }, [solSeer, updateGameState])\n\n const handleUpdateState = useCallback(async () => {\n await solSeer.adminUpdateGameState({\n advanceMinBalanceRequired: new BN(newState.advanceMinBalanceRequired),\n minTotalRequired: new BN(newState.minTotalRequired),\n decimalPlaces: newState.decimalPlaces,\n })\n\n await updateGameState();\n\n alert('Update State')\n }, [solSeer, updateGameState, newState])\n\n if (!game) return null;\n\n const updateState = (key: string) => (e: ChangeEvent) => {\n setNewState({\n ...newState,\n [key]: e.target.value\n })\n }\n\n\n return (\n
\n
\n Advance Balance: \n
\n
\n Unclaimed Fees: \n
\n
\n \n
\n
\n

Update State

\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n \n
\n
\n )\n}\n\nconst GameAdminPanel = ({ gameState }: Props) => {\n const game = useGame(gameState)\n\n if (!game) return null;\n\n return (\n \n )\n}\n\nexport default GameAdminPanel","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"Admin_container__K0VWl\"};","import React from 'react'\nimport { GAME_STATES } from '../../configs'\nimport Game from './GameAdminPanel'\nimport styles from './Admin.module.scss';\n\nconst Admin = () => {\n return (\n
\n {\n GAME_STATES.map(({ name, address }) => {\n return (\n
\n \n
\n )\n })\n }\n
\n )\n}\n\nexport default Admin","import React from 'react';\nimport {\n BrowserRouter as Router,\n Routes,\n Route,\n} from \"react-router-dom\";\nimport Home from './pages/Home/Home';\nimport Faq from './pages/Faq/Faq';\nimport Navigation from './components/Navigation/Navigation';\nimport { useInitGamesData } from './state/games/hooks';\nimport styles from './App.module.scss';\nimport Admin from './pages/Admin/Admin';\n\nexport default function App() {\n useInitGamesData();\n \n return (\n \n
\n \n \n } />\n } />\n } />\n \n
\n
\n );\n}\n","import { createReducer } from '@reduxjs/toolkit'\nimport { initializeData, updateData } from './actions';\nimport { GameStateSerializable } from 'sol-seer-lib';\n\ninterface State {\n [key: string]: GameStateSerializable\n}\n\nconst initialState: State = {}\n\nexport default createReducer(initialState, (builder) =>\n builder\n .addCase(initializeData, (state, action) => {\n action.payload.games.forEach(({ gameState, gameStateData }) => {\n state[gameState] = gameStateData;\n })\n })\n .addCase(updateData, (state, action) => {\n action.payload.forEach(({ gameState, gameStateData }) => {\n state[gameState] = gameStateData;\n })\n })\n);","import { createReducer } from '@reduxjs/toolkit'\nimport { initializeData, updateData } from '../games/actions';\nimport { LatestResponseSerializable, RoundStateSerializable } from 'sol-seer-lib';\nimport { GAME_STATES } from '../../configs'\n\ninterface State {\n [key: string]: {\n [round: number]: RoundStateSerializable\n }\n}\n\nconst initialState: State = {}\n\nGAME_STATES.forEach(({ address }) => {\n initialState[address.toBase58()] = {} \n})\n\nexport default createReducer(initialState, (builder) =>\n builder\n .addCase(initializeData, (state, action) => {\n action.payload.games.forEach(({ gameState, rounds }) => {\n rounds.forEach((round) => {\n state[gameState] = state[gameState] || {};\n state[gameState][round.round] = round;\n })\n })\n })\n .addCase(updateData, (state, action) => {\n const latest = action.payload! as LatestResponseSerializable[];\n\n latest.forEach((item) => {\n const currentRound = item.currentRound;\n const nextRound = item.nextRound;\n const gameState = item.gameState; \n \n state[gameState] = state[gameState] || {};\n state[gameState][nextRound.round] = nextRound;\n\n // When it's round 0, current round does not exist\n if (currentRound) { \n state[gameState][currentRound.round] = currentRound;\n }\n })\n })\n);","import { createReducer } from '@reduxjs/toolkit'\nimport { initializeData } from '../games/actions';\nimport { PlayerBetHistorySerializable, PlayerBetStateSerializable } from 'sol-seer-lib';\nimport { GAME_STATES } from '../../configs'\n\ninterface State {\n [key: string]: {\n history: PlayerBetHistorySerializable | null\n items: {\n [round: number]: PlayerBetStateSerializable\n }\n }\n}\n\nconst initialState: State = {}\n\nGAME_STATES.forEach(({ address }) => {\n initialState[address.toBase58()] = {\n history: null, \n items: {}\n }\n})\n\nexport default createReducer(initialState, (builder) =>\n builder\n .addCase(initializeData, (state, action) => {\n action.payload.games.forEach(({ gameState, historyItems, playerBetHistory }) => {\n state[gameState] = state[gameState] || { items: {} };\n state[gameState].history = playerBetHistory || null;\n\n historyItems.forEach((playerBetState) => { \n state[gameState].items[playerBetState.round] = playerBetState;\n })\n })\n })\n // Add round after bet\n);","import { createReducer } from '@reduxjs/toolkit'\nimport { updateData } from '../games/actions';\nimport { LatestResponseSerializable } from 'sol-seer-lib';\n\ninterface State {\n [key: string]: number\n}\n\nconst initialState: State = {}\n\nexport default createReducer(initialState, (builder) =>\n builder\n .addCase(updateData, (state, action) => {\n const latest = action.payload! as LatestResponseSerializable[];\n\n latest.forEach(({ nextRound, oracleData }) => {\n const gameState = nextRound.gameState;\n\n if (oracleData.price) {\n state[gameState] = oracleData.price;\n }\n })\n })\n);","import { createReducer } from '@reduxjs/toolkit'\nimport { initializeData } from '../games/actions';\nimport { updateBalance } from './actions';\n\ninterface State {\n loaded: boolean,\n solBalance: number \n}\n\nconst initialState: State = {\n loaded: false,\n solBalance: 0,\n}\n\nexport default createReducer(initialState, (builder) =>\n builder\n .addCase(initializeData, (state, action) => {\n state.solBalance = action.payload.balance;\n state.loaded = true;\n })\n .addCase(updateBalance, (state, action) => {\n state.solBalance = action.payload;\n })\n);","import { createAction } from '@reduxjs/toolkit'\nimport { RoundStateSerializable } from 'sol-seer-lib'\n\nexport const LoadChartData = createAction<{ gameState: string, roundsData: RoundStateSerializable[] }>('games/updateData')","import { createReducer } from '@reduxjs/toolkit'\nimport { LoadChartData } from './actions';\nimport { RoundStateSerializable } from 'sol-seer-lib';\nimport { GAME_STATES } from '../../configs'\n\ninterface State {\n [key: string]: RoundStateSerializable[] \n}\n\nconst initialState: State = {}\n\nGAME_STATES.forEach(({ address }) => {\n initialState[address.toBase58()] = []\n})\n\nexport default createReducer(initialState, (builder) =>\n builder\n .addCase(LoadChartData, (state, action) => {\n state[action.payload.gameState] = action.payload.roundsData;\n })\n);","import { configureStore, combineReducers } from '@reduxjs/toolkit'\nimport gamesReducer from './games/reducer'\nimport roundsReducer from './rounds/reducer';\nimport playerBetsReducer from './playerBets/reducer';\nimport priceReducer from './price/reducer';\nimport globalReducer from './global/reducer';\nimport chartReducer from './chart/reducer'\n\nexport default configureStore({\n reducer: combineReducers({\n games: gamesReducer,\n rounds: roundsReducer,\n playerBets: playerBetsReducer,\n price: priceReducer,\n global: globalReducer,\n graph: chartReducer\n }),\n})","import React, { useState } from 'react';\nimport { ConnectionProvider, WalletProvider } from '@solana/wallet-adapter-react';\nimport { WalletModalProvider } from '@solana/wallet-adapter-react-ui';\nimport { WalletAdapterNetwork } from '@solana/wallet-adapter-base';\nimport App from './App';\nimport { IntlProvider } from './providers/Intl'\nimport { ModalProvider } from './providers/Modal'\nimport {\n LedgerWalletAdapter,\n PhantomWalletAdapter,\n SlopeWalletAdapter,\n SolflareWalletAdapter,\n SolletExtensionWalletAdapter,\n SolletWalletAdapter,\n TorusWalletAdapter,\n} from '@solana/wallet-adapter-wallets';\nimport { ThemeProvider } from 'styled-components';\nimport './wallet.scss';\nimport { RPC } from './configs';\nimport store from './state/store';\nimport { Provider } from 'react-redux';\nimport { theme } from './styles/theme';\n\nconst Providers = () => {\n const [waited, setWaited] = useState(false);\n\n // Wait a little to prevent multiple rerenders\n setTimeout(() => {\n setWaited(true)\n }, 100);\n\n // The network can be set to 'devnet', 'testnet', or 'mainnet-beta'.\n const network = WalletAdapterNetwork.Devnet;\n\n // @solana/wallet-adapter-wallets includes all the adapters but supports tree shaking and lazy loading --\n // Only the wallets you configure here will be compiled into your application, and only the dependencies\n // of wallets that your users connect to will be loaded.\n const wallets = [\n new PhantomWalletAdapter(),\n new SlopeWalletAdapter(),\n new SolflareWalletAdapter({ network }),\n new TorusWalletAdapter(),\n new LedgerWalletAdapter(),\n new SolletWalletAdapter({ network }),\n new SolletExtensionWalletAdapter({ network }),\n ]\n\n return (\n \n \n \n \n \n \n \n {waited && }\n \n \n \n \n \n \n \n )\n}\n\nexport default Providers;","import React from 'react'\n\ninterface Props {\n size?: number,\n className?: string,\n}\n\nconst Logo = ({ size = 48, className }: Props) => {\n const height = 61/48 * size;\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nexport default React.memo(Logo)"],"names":["RPC","process","SOL_SEER_PROGRAM","anchor","SOL_USDC_GAME_STATE","GAME_STATES","name","address","connection","web3","randomWallet","wallet","useWallet","useMemo","provider","Provider","preflightCommitment","commitment","Program","SolSeerIDL","updateBalance","createAction","initializeData","updateData","useGame","gameState","useSelector","state","games","shallowEqual","useGetCurrentRound","currentRound","useUserPK","debugUser","debug","URL","document","location","searchParams","get","PublicKey","e","useUrlParams","publicKey","gameStates","map","v","gameStatesString","toBase58","useInitGamesData","dispatch","useDispatch","program","useProgram","userPK","batch","Batch","currentRounds","filter","useCurrentRounds","oracleAccounts","oracleAccount","useOracles","useEffect","getAllData","then","balance","window","data","gameStateData","convertFullDataSerializable","poll","cleared","pollFn","pollParams","latest","index","pubkey","convertLatestSerializable","length","AsyncPolling","start","pause","useGetPrice","price","Solana","size","className","svg","width","height","viewBox","fill","xmlns","path","d","React","locales","fetchLocale","locale","localeData","ActionTypes","GetLocaleData","UpdateLocale","initialState","browserLocale","navigator","language","exactMatch","find","startsWith","determineLanguage","Context","createContext","useIntl","useContext","updateLocale","useCallback","type","payload","reducer","action","Error","IntlProvider","children","useReducer","context","value","Lang","translation","console","error","decimals","prefix","suffix","withColorValue","digits","props","decimal","BigNumber","dividedBy","toNumber","formatProps","undefined","maximumFractionDigits","minimumFractionDigits","formattedNumber","Intl","NumberFormat","format","colorClass","pnlBN","classNames","styles","isPositive","isZero","isNegative","span","div","Number","useUpdateGameState","updateGameState","gameStatePubkeys","computeTotal","roundData","totalBetUp","plus","totalBetDown","totalBetDraw","toFixed","calculatePayoutRatio","num","total","numBN","totalBN","eq","ratio","multipliedBy","calculatePayoutAmount","poolTotal","feeRate","totalBeforeFees","fees","totlaAfterFees","minus","amount","profit","getChainCurrentTime","Date","getTime","useGetRound","round","rounds","useGetRoundTotal","useGetRoundStatus","endValue","RoundStatus","COMPLETED","endTs","LIVE","UPCOMING","useGetPlayerBet","playerBets","items","useGetPlayerHistory","playerHistoryRounds","history","sort","a","b","useProfitLoss","playerBetHistory","playerHistory","game","claimedPNL","totalWinnings","totalRefunds","totalSpend","unclaimedTotalRewards","playerBet","claimed","isRefund","correctChoice","getCorrectChoice","BN","startValue","userChoice","convertToBetEnum","choice","totalBetAmount","Bet","getPoolTotal","feeRateBips","reduce","prev","current","pnl","unclaimedAmount","useCalculateUserPayout","userBet","useGetRoundWinningChoice","claimable","roundWon","modals","useModal","openModal","modal","closeModal","Modal","slice","ModalProvider","Modals","title","handleClose","h2","MdClose","onClick","styled","background","border","layout","position","space","Box","flexbox","color","preserveAspectRatio","circle","cx","cy","stroke","strokeWidth","r","strokeDasharray","animateTransform","attributeName","repeatCount","dur","values","keyTimes","rem","Variant","PrimarySM","PrimaryLG","_path","ButtonNormal","theme","red","variant","loading","disabled","Loading","HistoryDetails","useClaim","claim","claimLoading","claimableRounds","playerRounds","useGetClaimableRounds","handleClaimAll","Flex","flexDirection","flex","Button","_excluded","_extends","Object","assign","target","i","arguments","source","key","prototype","hasOwnProperty","call","apply","this","_objectWithoutProperties","excluded","sourceKeys","keys","indexOf","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","SvgBetUp","_ref","svgRef","titleId","ref","id","_circle","ForwardRef","SvgBetDraw","SvgBetDown","directionIcon","BetDraw","text","BetUp","BetDown","startPrice","endPrice","lt","diff","sub","isNeg","toString","playerBetDirection","roundTotal","roundStatus","roundCompleted","upPayout","drawPayout","downPayout","resultColor","result","roundPriceDiff","roundBoxClass","ChoiceDisplay","PriceDiff","hr","maximumSignificantDigits","direction","comp","strokeLinecap","strokeLinejoin","green","gray","HistoryItem","active","edit","onSelectRound","useClosePlayerBet","closePlayerBet","closePlayerBetLoading","handleClosePlayerBet","handleClaim","stopPropagation","Bin","alignItems","Chevron","HistoryItemDetail","HistoryModal","useState","openedRound","setOpenedRound","setEdit","openEdit","closeEdit","ModalWrapper","previousRound","startRound","Math","max","getRoundData","log","useLoadGraphData","show","modalRoot","getElementById","ModalPortal","elem","createElement","appendChild","removeChild","createPortal","message","ModalContainer","HISTORY","ERROR","ErrorModal","CHART","ChartModal","useSolSeer","statePubkey","SolSeer","convertGameStateFromSerializable","solSeer","setLoading","closePlayerBets","claims","ConnectWallet","WalletMultiButton","onChange","placeholder","handleChange","input","replace","Input","Container","live","BodyFlex","Title","Text","dotted","big","useRef","solTotal","Sol","add","prizePool","feePercent","rewards","rewardAfterFees","justifyContent","mb","data-tip","ReactTooltip","backgroundColor","textColor","_g","_path2","_path3","_path4","_path5","_path6","_path7","_path8","_path9","_path10","_path11","_path12","_path13","_path14","_g2","_defs","BetLabel","SolIcon","BetBoxContainer","Confirm","Warning","onFlip","setValue","setError","userPk","global","solBalance","handleOnChange","usePlaceBet","playerHistoryExists","earliestHistoryRound","requiresClosePlayerBet","closeRoundParams","requiresClaimFirst","selectedChoice","closeRound","claimFirst","handlePlaceBet","bet","placeBet","placeBetLoading","handleBet","onPillClick","percentage","maxAmount","calculatedValue","floor","min","MdArrowBackIosNew","NumberInput","GrayPill","PayoutEstimate","SvgBetTrophy","opacity","maskUnits","x","y","fillRule","clipRule","mask","style","maskType","x1","y1","x2","y2","gradientUnits","stopColor","offset","isDraw","BetTrophy","ProgressBar","elapsed","setElapsed","interval","setInterval","now","clearInterval","betLabel","betIcon","PayoutRatio","arrowColor","bgColor","UserBetPast","betUpClass","betDrawClass","betDownClass","RoundDetails","borderColor","priceDiff","bodyClass","isLive","display","UserPosition","Claim","UserBet","onClickFlip","bettable","UpcomingRound","LogoImg","CalculatingStyle","Calculating","CalculatingRound","src","convertReadableTimeMSS","timeMS","timeSeconds","timeRemainingMinutes","timeRemainingSeconds","padStart","RoundLabel","TimeRemaining","currentRoundData","timePending","setTimePending","addedMinutes","roundTimeRemaining","Round","setDirection","isCalculating","setIsCalculating","timeout","currentTime","setTimeout","clearTimeout","useGetIsRoundCalculating","handleFlip","displayRound","NextRound","ReactCardFlip","isFlipped","flipDirection","containerClassName","BetBox","mobile","timeRemaining","setTimeRemaining","getTimeRemaining","timeDisplay","memo","HistoryIcon","HistoryButton","openHistory","Arrow","icon","Cards","rect","rx","transform","g","ellipse","ry","defs","filterUnits","colorInterpolationFilters","feFlood","floodOpacity","feColorMatrix","in","feOffset","dx","dy","feGaussianBlur","stdDeviation","feComposite","in2","operator","feBlend","mode","swiper","slidePrev","slideNext","Timer","linearGradient","stop","stopOpacity","setSwiper","viewableRounds","initialSlide","slidesPerView","setSlidesPerView","listenToResize","innerWidth","addEventListener","removeEventListener","useSlidesPerView","SolPrice","RoundToggle","Swiper","spaceBetween","centeredSlides","mousewheel","keyboard","resizeObserver","threshold","onSwiper","SwiperSlide","MobileDetailsSection","loaded","lastUpdated","useKeepUpdated","Game","FaqItem","href","p","h1","menuOpened","setMenuOpened","setSize","innerHeight","requestAnimationFrame","useWindowSize","logoSize","handleOpen","nav","Link","to","Logo","GiHamburgerMenu","ul","li","rel","SiTwitter","SiDiscord","GameLoaded","minTotalRequired","decimalPlaces","advanceMinBalanceRequired","newState","setNewState","adminClaimFees","alert","handleUpdateState","adminUpdateGameState","updateState","advanceBalance","totalFees","totalFeesClaimed","button","label","App","Router","Navigation","Routes","Route","element","Admin","Faq","Home","createReducer","builder","addCase","forEach","item","nextRound","historyItems","playerBetState","oracleData","LoadChartData","roundsData","configureStore","combineReducers","gamesReducer","roundsReducer","playerBetsReducer","priceReducer","globalReducer","graph","chartReducer","waited","setWaited","network","WalletAdapterNetwork","wallets","PhantomWalletAdapter","SlopeWalletAdapter","SolflareWalletAdapter","TorusWalletAdapter","LedgerWalletAdapter","SolletWalletAdapter","SolletExtensionWalletAdapter","ThemeProvider","WalletProvider","autoConnect","WalletModalProvider","store","ConnectionProvider","endpoint"],"sourceRoot":""}