{"version":3,"sources":["AppTheme.ts","history.ts","Hooks/useWeb3React.ts","Contexts/InjectedContext.ts","constants.ts","Hooks/useChangeNetwork.ts","Content/Discord-Logo-White.svg","Content/telegram-logo.svg","Components/Header.tsx","Hooks/index.ts","Components/Layout.tsx","Components/LayoutRoute.tsx","Hooks/useContract.ts","Hooks/useRockState.ts","Views/All.tsx","Views/Home.tsx","Content/preview.png","Content/i.png","AppRoutes.tsx","App.tsx","index.tsx"],"names":["DefaultTheme","palette","background","red","main","dark","pr","value","history","createBrowserHistory","useWeb3React","_useWeb3React","InjectedContext","React","useInjected","chainIdHex","toString","rpcUrl","useChangeNetwork","ethereum","window","request","method","params","chainId","catch","switchError","code","chainName","nativeCurrency","name","symbol","decimals","rpcUrls","blockExplorerUrls","console","error","Container","styled","div","ConnectButton","button","theme","Header","activate","account","connector","injected","changeNetwork","activatingConnector","setActivatingConnector","undefined","suppress","active","on","handleConnect","log","handleChainChanged","handleAccountsChanged","accounts","length","handleNetworkChanged","networkId","removeListener","useInactiveListener","tried","setTried","isAuthorized","then","e","UnsupportedChainIdError","useEagerConnect","className","to","href","target","rel","src","discordLogoWhite","alt","tg","onClick","substring","Layout","children","LayoutRoute","Component","component","rest","render","props","getRocksContract","signerOrProvider","abi","address","Contract","getContract","rocks","useRocksContract","useRockState","fetch","s","n","tokensOf","bal","BigNumber","from","state","setState","library","fallbackProvider","JsonRpcProvider","signer","getSigner","rocksContract","getBalance","fetchRocksOf","owner","a","balanceOf","ownerRockIds","gt","fetchingRocks","i","lt","add","push","tokenOfOwnerByIndex","Promise","all","rockIds","map","rid","toNumber","fetchData","promises","maxSupply","total","totalSupply","available","price","Number","utils","formatEther","startTime","interval","fetching","setInterval","clearInterval","mint","parseEther","tx","wait","receipt","status","lastErrorMessage","data","message","replace","includes","lastError","MintStatus","All","style","textAlign","waifu","MintButton","input","fullWidth","Home","num","maxBuy","mintResult","setMintResult","Pending","mintStatus","setMintStatus","minting","setMinting","setStarted","user","setUser","lastRocklist","lastUser","isAddress","current","handleMint","result","Success","Fail","checkStarted","Date","toLocaleDateString","toLocaleTimeString","now","insufficientBal","preview","AppRoutes","exact","path","getLibrary","provider","Web3Provider","App","InjectedConnector","supportedChainIds","Provider","ReactDOM","StrictMode","document","getElementById"],"mappings":"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","file":"static/js/main.fb0d411a.chunk.js","sourcesContent":["import \"styled-components\";\n\ninterface ITheme {\n palette: {\n background: string;\n red: {\n main: string;\n dark: string;\n };\n };\n}\n\ndeclare module \"styled-components\" {\n export interface DefaultTheme extends ITheme {}\n}\n\nexport const DefaultTheme: ITheme = {\n palette: {\n background: \"#ffaaeb\",\n red: { main: \"#fff\", dark: \"#AD2D37\" },\n },\n};\n\nexport const pr = (value: number) => `${value / 16}rem`;\n","import { createBrowserHistory } from \"history\";\n\nexport const history = createBrowserHistory();\n","import { Web3Provider } from \"@ethersproject/providers\";\nimport { useWeb3React as _useWeb3React } from \"@web3-react/core\";\n\nexport function useWeb3React() {\n return _useWeb3React();\n}\n","import * as React from \"react\";\nimport { InjectedConnector } from \"@web3-react/injected-connector\";\n\nexport const InjectedContext = React.createContext(\n null\n);\n\nexport function useInjected() {\n return React.useContext(InjectedContext);\n}\n\nexport function getInjected() {\n return new InjectedConnector({ supportedChainIds: [43114] });\n}\n","export const chainId = 43114;\nexport const chainIdHex = `0x${chainId.toString(16)}`;\n\nexport const rpcUrl = \"https://api.avax.network/ext/bc/C/rpc\";\n\nexport const avaxfuAddress = \"0xDec9d62e3B8CD3321731BF2418b6f455a05C610A\";\n","import * as React from \"react\";\nimport { chainIdHex, rpcUrl } from \"../constants\";\n\nexport function useChangeNetwork(): () => Promise {\n const changeNetwork = React.useCallback(() => {\n const { ethereum } = window as any;\n if (ethereum) {\n return ethereum\n .request({\n method: \"wallet_switchEthereumChain\",\n params: [{ chainId: chainIdHex }],\n })\n .catch((switchError: any) => {\n if (switchError.code === 4902) {\n ethereum\n .request({\n method: \"wallet_addEthereumChain\",\n params: [\n {\n chainId: chainIdHex,\n chainName: \"Avalanche Network\",\n nativeCurrency: {\n name: \"Avalanche\",\n symbol: \"AVAX\",\n decimals: 18,\n },\n rpcUrls: [rpcUrl],\n blockExplorerUrls: [\n \"https://cchain.explorer.avax.network/\",\n ],\n },\n ],\n })\n .catch(console.error);\n }\n });\n }\n }, []);\n\n return changeNetwork;\n}\n","export default __webpack_public_path__ + \"static/media/Discord-Logo-White.958d6cb7.svg\";","export default __webpack_public_path__ + \"static/media/telegram-logo.f7b883c4.svg\";","import * as React from \"react\";\nimport styled from \"styled-components\";\nimport { pr } from \"../AppTheme\";\nimport { useWeb3React } from \"../Hooks/useWeb3React\";\nimport { useInjected } from \"../Contexts/InjectedContext\";\nimport { useEagerConnect, useInactiveListener } from \"../Hooks\";\nimport { InjectedConnector } from \"@web3-react/injected-connector\";\nimport { UnsupportedChainIdError } from \"@web3-react/core\";\nimport { useChangeNetwork } from \"../Hooks/useChangeNetwork\";\nimport icon from \"../Content/icon.png\";\nimport { Link } from \"react-router-dom\";\nimport discordLogoWhite from \"../Content/Discord-Logo-White.svg\";\nimport tg from \"../Content/telegram-logo.svg\";\n\nconst Container = styled.div`\n padding: ${pr(24)} ${pr(64)};\n margin: auto;\n display: flex;\n align-items: center;\n justify-content: space-between;\n background-color: white;\n position: fixed;\n width: 100%;\n box-sizing: border-box;\n\n @media (max-width: 959px) {\n max-width: unset;\n padding-left: ${pr(18)};\n padding-right: ${pr(18)};\n flex-wrap: wrap;\n position: unset;\n }\n\n div.left {\n display: flex;\n align-items: center;\n\n div.wallet {\n font-size: ${pr(18)};\n padding-left: ${pr(24)};\n font-weight: bold;\n color: black;\n\n :hover {\n text-decoration: underline;\n }\n }\n\n a {\n text-decoration: none;\n }\n\n img {\n cursor: pointer;\n max-height: 100%;\n min-height: 0;\n width: auto;\n height: ${pr(64)};\n display: block;\n }\n\n div.h {\n font-family: \"ABeeZee\", sans-serif;\n color: black;\n font-weight: bold;\n font-size: ${pr(32)};\n }\n }\n\n div.right {\n flex-grow: 1;\n padding-right: ${pr(16)};\n\n @media (max-width: 959px) {\n padding-right: 0;\n }\n }\n\n div.links {\n display: flex;\n justify-content: flex-end;\n align-items: center;\n\n a {\n margin: 0 ${pr(12)};\n\n img {\n width: ${pr(32)};\n display: block;\n }\n }\n }\n`;\n\nconst ConnectButton = styled.button`\n background-color: ${({ theme }) => theme.palette.red.main};\n font-weight: bold;\n font-size: ${pr(18)};\n padding: ${pr(6)} ${pr(32)} ${pr(8)};\n border: 1px solid white;\n cursor: pointer;\n border-color: black;\n border-radius: 1000px;\n\n @media (max-width: 959px) {\n font-size: ${pr(12)};\n width: 100%;\n margin-top: ${pr(12)};\n }\n\n :active {\n background-color: #888;\n }\n`;\n\nexport const Header: React.FC = () => {\n const { activate, account, connector, error } = useWeb3React();\n const injected = useInjected();\n const changeNetwork = useChangeNetwork();\n\n const [activatingConnector, setActivatingConnector] = React.useState<\n InjectedConnector | null | undefined\n >();\n React.useEffect(() => {\n if (activatingConnector && activatingConnector === connector) {\n setActivatingConnector(undefined);\n }\n }, [activatingConnector, connector]);\n\n const triedEager = useEagerConnect();\n useInactiveListener(!triedEager || !!activatingConnector);\n\n const handleConnect = React.useCallback(() => {\n if (injected && !account) {\n setActivatingConnector(injected);\n activate(injected);\n }\n }, [activate, injected, account]);\n\n React.useEffect(() => {\n if (error instanceof UnsupportedChainIdError) {\n changeNetwork();\n }\n }, [error, changeNetwork]);\n\n return (\n \n
\n \n
AVAXFU
\n \n \n
Wallet
\n \n
\n
\n
\n \n \"Discord\"\n \n \n \"Telegram\"\n \n
\n
\n \n {account\n ? `${account.substring(0, 6)}...${account.substring(\n account.length - 4\n )}`\n : \"Connect\"}\n \n
\n );\n};\n","import * as React from \"react\";\nimport { useInjected } from \"../Contexts/InjectedContext\";\nimport { useWeb3React } from \"./useWeb3React\";\nimport { useChangeNetwork } from \"./useChangeNetwork\";\nimport { UnsupportedChainIdError } from \"@web3-react/core\";\n\nexport function useEagerConnect() {\n const { activate, active } = useWeb3React();\n const injected = useInjected();\n const changeNetwork = useChangeNetwork();\n\n const [tried, setTried] = React.useState(false);\n\n React.useEffect(() => {\n if (injected) {\n injected.isAuthorized().then((isAuthorized: boolean) => {\n if (isAuthorized) {\n activate(injected, undefined, true).catch((e) => {\n if (e instanceof UnsupportedChainIdError) {\n changeNetwork().catch(() => setTried(true));\n } else {\n setTried(true);\n }\n });\n } else {\n setTried(true);\n }\n });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []); // intentionally only running on mount (make sure it's only mounted once :))\n\n // if the connection worked, wait until we get confirmation of that to flip the flag\n React.useEffect(() => {\n if (!tried && active) {\n setTried(true);\n }\n }, [tried, active]);\n\n return tried;\n}\n\nexport function useInactiveListener(suppress: boolean = false) {\n const { active, error, activate } = useWeb3React();\n const injected = useInjected();\n\n React.useEffect((): any => {\n const { ethereum } = window as any;\n if (ethereum && ethereum.on && !active && !error && !suppress && injected) {\n const handleConnect = () => {\n console.log(\"Handling 'connect' event\");\n activate(injected);\n };\n const handleChainChanged = (chainId: string | number) => {\n console.log(\"Handling 'chainChanged' event with payload\", chainId);\n activate(injected);\n };\n const handleAccountsChanged = (accounts: string[]) => {\n console.log(\"Handling 'accountsChanged' event with payload\", accounts);\n if (accounts.length > 0) {\n activate(injected);\n }\n };\n const handleNetworkChanged = (networkId: string | number) => {\n console.log(\"Handling 'networkChanged' event with payload\", networkId);\n activate(injected);\n };\n\n ethereum.on(\"connect\", handleConnect);\n ethereum.on(\"chainChanged\", handleChainChanged);\n ethereum.on(\"accountsChanged\", handleAccountsChanged);\n ethereum.on(\"networkChanged\", handleNetworkChanged);\n\n return () => {\n if (ethereum.removeListener) {\n ethereum.removeListener(\"connect\", handleConnect);\n ethereum.removeListener(\"chainChanged\", handleChainChanged);\n ethereum.removeListener(\"accountsChanged\", handleAccountsChanged);\n ethereum.removeListener(\"networkChanged\", handleNetworkChanged);\n }\n };\n }\n }, [active, error, suppress, activate, injected]);\n}\n","import * as React from \"react\";\nimport { Header } from \"./Header\";\n\nexport const Layout: React.FC = ({ children }) => {\n return (\n <>\n
\n
{children}
\n \n );\n};\n","import * as React from \"react\";\nimport { OmitNative, RouteProps } from \"react-router\";\nimport { Route } from \"react-router-dom\";\nimport { Layout } from \"./Layout\";\n\ntype Props = RouteProps & OmitNative;\n\nexport const LayoutRoute: React.FC> = ({\n component: Component,\n ...rest\n}) => {\n return (\n (\n {Component && }\n )}\n />\n );\n};\n","import { Provider } from \"@ethersproject/providers\";\nimport { Contract, ContractInterface, Signer } from \"ethers/lib/ethers\";\nimport * as React from \"react\";\nimport rocks from \"../Abis/avaxfu.json\";\nimport { avaxfuAddress } from \"../constants\";\n\nfunction getContract(\n abi: ContractInterface,\n address: string,\n signerOrProvider: Signer | Provider\n) {\n return new Contract(address, abi, signerOrProvider);\n}\n\nfunction getRocksContract(signerOrProvider: Signer | Provider) {\n return getContract(rocks, avaxfuAddress, signerOrProvider);\n}\n\nexport function useRocksContract(signerOrProvider: Signer | Provider) {\n return React.useMemo(\n () => getRocksContract(signerOrProvider),\n [signerOrProvider]\n );\n}\n","import * as React from \"react\";\nimport { useRocksContract } from \"./useContract\";\nimport { BigNumber, utils } from \"ethers\";\nimport { rpcUrl } from \"../constants\";\nimport { useWeb3React } from \"./useWeb3React\";\nimport { JsonRpcProvider } from \"@ethersproject/providers\";\nimport { parseEther } from \"ethers/lib/utils\";\n\nexport interface IRockState {\n price?: number;\n available?: number;\n total?: number;\n maxBuy?: number;\n startTime?: number;\n tokensOf: { [owner: string]: number[] };\n lastError?: string;\n bal: BigNumber;\n}\n\nexport function useRockState(fetch = false) {\n const [state, setState] = React.useReducer<\n (s: IRockState, n: Partial) => IRockState\n >((s, n) => ({ ...s, ...n }), { tokensOf: {}, bal: BigNumber.from(0) });\n const { library, account } = useWeb3React();\n const fallbackProvider = React.useMemo(() => new JsonRpcProvider(rpcUrl), []);\n\n const signer = React.useMemo(() => library?.getSigner(), [library]);\n\n const rocksContract = useRocksContract(signer ?? fallbackProvider);\n\n React.useEffect(() => {\n if (library && account) {\n library.getBalance(account).then((bal) => {\n setState({\n bal,\n });\n });\n }\n }, [account, library]);\n\n const fetchRocksOf = React.useCallback(\n async (owner: string) => {\n const bal: BigNumber = await rocksContract.balanceOf(owner);\n const ownerRockIds: number[] = [];\n if (bal.gt(0)) {\n const fetchingRocks: Promise[] = [];\n\n for (let i = BigNumber.from(0); i.lt(bal); i = i.add(1)) {\n fetchingRocks.push(rocksContract.tokenOfOwnerByIndex(owner, i));\n }\n\n await Promise.all(fetchingRocks).then((rockIds: BigNumber[]) => {\n ownerRockIds.push(...rockIds.map((rid) => rid.toNumber()));\n });\n }\n\n setState({\n tokensOf: {\n ...state.tokensOf,\n [owner]: ownerRockIds,\n },\n });\n\n return ownerRockIds;\n },\n [rocksContract, state]\n );\n\n const fetchData = React.useCallback(async () => {\n const promises: Promise[] = [];\n\n promises.push(\n rocksContract.maxSupply().then((maxSupply: BigNumber) => {\n setState({\n total: maxSupply.toNumber(),\n });\n return rocksContract.totalSupply().then((totalSupply: BigNumber) => {\n setState({\n available: maxSupply.toNumber() - totalSupply.toNumber(),\n });\n });\n })\n );\n\n promises.push(\n rocksContract.price().then((price: BigNumber) => {\n setState({\n price: Number(utils.formatEther(price)),\n });\n })\n );\n\n promises.push(\n rocksContract.startTime().then((startTime: BigNumber) => {\n setState({\n startTime: startTime.toNumber(),\n });\n })\n );\n\n await Promise.all(promises).catch(console.error);\n }, [rocksContract]);\n\n React.useEffect(() => {\n let interval = -1;\n\n if (fetch) {\n fetchData();\n let fetching = false;\n interval = window.setInterval(async () => {\n if (!fetching) {\n fetching = true;\n await fetchData();\n fetching = false;\n }\n }, 2000);\n }\n\n return () => {\n window.clearInterval(interval);\n };\n }, [fetchData, fetch]);\n\n const mint = React.useCallback(async () => {\n try {\n const tx = await rocksContract.mint({\n value: parseEther((state.price ?? 0).toString()),\n });\n console.log(tx);\n const receipt = await tx.wait();\n return receipt.status;\n } catch (e) {\n console.error(e);\n const lastErrorMessage = (e.data?.message as string)?.replace(\n \"execution reverted: \",\n \"\"\n );\n const code = e.data?.code;\n if (\n lastErrorMessage?.includes(\"insufficient funds for gas * price + value\")\n ) {\n setState({\n lastError: `${e.message} - insufficient funds`,\n });\n } else {\n setState({\n lastError: `${e.message}${\n lastErrorMessage && code === 3 ? ` - ${lastErrorMessage}` : \"\"\n }`,\n });\n }\n return false;\n }\n }, [rocksContract, state.price]);\n\n return {\n state,\n fetchRocksOf,\n mint,\n };\n}\n","import * as React from \"react\";\nimport styled from \"styled-components\";\nimport { pr } from \"../AppTheme\";\nimport { useRockState } from \"../Hooks/useRockState\";\nimport { useWeb3React } from \"../Hooks/useWeb3React\";\n\nconst Container = styled.div`\n display: flex;\n margin: ${pr(30)} ${pr(30)} 0;\n flex-wrap: wrap;\n justify-content: center;\n\n @media (max-width: 959px) {\n justify-content: flex-start;\n }\n\n div.cell {\n width: 25%;\n display: flex;\n flex-direction: column;\n padding: ${pr(16)};\n\n @media (max-width: 959px) {\n width: 100%;\n }\n\n p {\n text-align: center;\n font-size: ${pr(18)};\n font-weight: bold;\n }\n\n .waifu-img {\n display: flex;\n justify-content: center;\n\n img {\n width: 50%;\n }\n }\n }\n`;\n\nexport const All: React.FC = () => {\n const { state, fetchRocksOf } = useRockState(true);\n const { total, tokensOf } = state;\n const { account } = useWeb3React();\n\n /* const tokensOf = {\n [account!]: [0],\n }; */\n\n React.useEffect(() => {\n if (account) {\n fetchRocksOf(account);\n }\n }, []);\n\n return (\n <>\n

Wallet

\n \n {account &&\n tokensOf[account]?.map((waifu) => (\n
\n

Waifu #{waifu + 1}

\n
\n \"\"\n
\n
\n ))}\n
\n \n );\n};\n","import * as React from \"react\";\nimport styled from \"styled-components\";\nimport { pr } from \"../AppTheme\";\nimport icon from \"../Content/icon.png\";\nimport rock10 from \"../Content/10.png\";\nimport { useRockState } from \"../Hooks/useRockState\";\nimport { useWeb3React } from \"../Hooks/useWeb3React\";\nimport { DateTime } from \"luxon\";\nimport { utils } from \"ethers\";\nimport { Link } from \"react-router-dom\";\nimport preview from \"../Content/preview.png\";\nimport i from \"../Content/i.png\";\nimport j from \"../Content/j.png\";\n\nconst Container = styled.div`\n padding: ${pr(64)};\n height: calc(100vh - 86px);\n box-sizing: border-box;\n display: flex;\n\n .i {\n position: absolute;\n left: 0;\n bottom: 0;\n width: 12%;\n\n @media (max-width: 959px) {\n display: none;\n }\n }\n\n div.w-left {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 100%;\n flex-basis: 50%;\n }\n\n div.w-right {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 100%;\n flex-basis: 50%;\n\n p {\n font-weight: bold;\n font-size: ${pr(58)};\n }\n\n div.available {\n font-size: ${pr(128)};\n font-weight: bold;\n }\n\n @media (max-width: 959px) {\n height: auto;\n\n p {\n text-align: center;\n font-size: ${pr(22)};\n margin-bottom: 0;\n }\n\n div.available {\n font-size: ${pr(36)};\n }\n }\n }\n\n margin: auto;\n\n @media (max-width: 959px) {\n max-width: unset;\n padding: ${pr(32)} ${pr(24)};\n }\n\n p.para {\n font-size: ${pr(18)};\n\n @media (max-width: 959px) {\n font-size: ${pr(12)};\n }\n }\n\n .big-rock img {\n margin: auto;\n display: block;\n height: ${pr(400)};\n max-height: 50vh;\n\n @media (max-width: 959px) {\n height: ${pr(200)};\n max-height: 25vh;\n }\n }\n\n h1 {\n font-size: ${pr(52)};\n text-align: center;\n\n @media (max-width: 959px) {\n font-size: ${pr(28)};\n }\n }\n\n /* .mint {\n padding-top: ${pr(40)};\n display: flex;\n\n @media (max-width: 959px) {\n display: block;\n }\n\n > div:not(.preview) {\n padding-left: ${pr(80)};\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n\n @media (max-width: 959px) {\n padding-left: 0;\n padding-top: ${pr(24)};\n\n display: flex;\n flex-direction: column;\n align-items: center;\n\n p {\n text-align: center;\n }\n }\n }\n\n .preview img {\n box-shadow: 0 0 24px -8px rgba(0, 0, 0, 0.85);\n margin: auto;\n display: block;\n height: ${pr(400)};\n max-height: 50vh;\n }\n } */\n\n p.status-pending {\n color: #ffed94;\n font-weight: bold;\n }\n\n p.status-success {\n color: #00ca22;\n font-weight: bold;\n }\n\n p.status-fail {\n color: #ff0000;\n font-weight: bold;\n }\n\n p.mint-start {\n font-weight: bold;\n color: ${({ theme }) => theme.palette.red.main};\n text-decoration: line-through;\n }\n\n p.sold-out {\n padding-top: ${pr(24)};\n font-weight: bold;\n }\n\n p {\n font-size: ${pr(16)};\n }\n\n div.users-rocks {\n padding-top: ${pr(40)};\n display: flex;\n flex-direction: column;\n\n @media (max-width: 959px) {\n padding-top: 0;\n }\n }\n\n div.table {\n display: flex;\n margin: ${pr(30)} ${pr(30)} 0;\n flex-wrap: wrap;\n justify-content: center;\n\n @media (max-width: 959px) {\n justify-content: flex-start;\n }\n\n div.cell {\n width: 25%;\n display: flex;\n flex-direction: column;\n padding: ${pr(16)};\n\n @media (max-width: 959px) {\n width: 100%;\n }\n\n p {\n text-align: center;\n font-size: ${pr(18)};\n font-weight: bold;\n }\n\n .rock-img img {\n width: 100%;\n }\n }\n }\n\n div.view-all {\n flex-grow: 1;\n width: 100%;\n display: flex;\n align-items: flex-end;\n justify-content: flex-end;\n\n a {\n color: ${({ theme }) => theme.palette.red.main};\n }\n }\n\n @media (max-width: 959px) {\n flex-direction: column;\n height: auto;\n }\n\n p.price {\n font-weight: bold;\n font-size: ${pr(24)};\n text-align: center;\n\n @media (max-width: 959px) {\n flex-direction: column;\n }\n }\n\n p.mint {\n font-weight: bold;\n font-size: ${pr(36)};\n text-align: center;\n }\n`;\n\nconst InputButton = styled.button`\n color: black;\n height: ${pr(36)};\n width: ${pr(36)};\n background-color: black;\n font-weight: bold;\n font-size: ${pr(16)};\n cursor: pointer;\n`;\n\nconst Input = styled.input<{ fullWidth?: boolean }>`\n height: ${pr(30)};\n width: ${({ fullWidth }) => (fullWidth ? undefined : pr(75))};\n flex-grow: ${({ fullWidth }) => (fullWidth ? 1 : 0)};\n font-size: ${pr(18)};\n text-align: center;\n color: black;\n`;\n\nconst MintButton = styled.button`\n background-color: ${({ theme }) => theme.palette.red.main};\n border: 1px solid black;\n font-size: ${pr(18)};\n padding: ${pr(6)} ${pr(16)} ${pr(8)};\n width: 100%;\n border-radius: 1000px;\n\n :active {\n background-color: #888;\n }\n\n :not(:disabled) {\n cursor: pointer;\n }\n`;\n\nconst Loading = styled.div`\n display: flex;\n justify-content: center;\n\n .lds-ellipsis {\n display: inline-block;\n position: relative;\n width: 80px;\n height: 80px;\n }\n .lds-ellipsis div {\n position: absolute;\n top: 33px;\n width: 13px;\n height: 13px;\n border-radius: 50%;\n background: #fff;\n animation-timing-function: cubic-bezier(0, 1, 1, 0);\n }\n .lds-ellipsis div:nth-child(1) {\n left: 8px;\n animation: lds-ellipsis1 0.6s infinite;\n }\n .lds-ellipsis div:nth-child(2) {\n left: 8px;\n animation: lds-ellipsis2 0.6s infinite;\n }\n .lds-ellipsis div:nth-child(3) {\n left: 32px;\n animation: lds-ellipsis2 0.6s infinite;\n }\n .lds-ellipsis div:nth-child(4) {\n left: 56px;\n animation: lds-ellipsis3 0.6s infinite;\n }\n @keyframes lds-ellipsis1 {\n 0% {\n transform: scale(0);\n }\n 100% {\n transform: scale(1);\n }\n }\n @keyframes lds-ellipsis3 {\n 0% {\n transform: scale(1);\n }\n 100% {\n transform: scale(0);\n }\n }\n @keyframes lds-ellipsis2 {\n 0% {\n transform: translate(0, 0);\n }\n 100% {\n transform: translate(24px, 0);\n }\n }\n`;\n\nenum MintStatus {\n Pending = \"pending\",\n Success = \"success\",\n Fail = \"fail\",\n}\n\nexport const Home: React.FC = () => {\n const [num, _setNum] = React.useState(1);\n const { state, fetchRocksOf, mint } = useRockState(true);\n const {\n available,\n price,\n total,\n lastError,\n maxBuy,\n startTime,\n tokensOf,\n bal,\n } = state;\n const { account } = useWeb3React();\n const [mintResult, setMintResult] = React.useState(\"\");\n const [mintStatus, setMintStatus] = React.useState(MintStatus.Pending);\n const [minting, setMinting] = React.useState(false);\n const [started, setStarted] = React.useState(true);\n const [user, setUser] = React.useState(\"\");\n\n const lastRocklist = React.useRef();\n const rockList = React.useMemo(() => {\n if (utils.isAddress(user)) {\n lastRocklist.current = tokensOf[user];\n return lastRocklist.current;\n }\n return lastRocklist.current;\n }, [tokensOf, user]);\n\n const lastUser = React.useRef(\"\");\n React.useEffect(() => {\n if (lastUser.current !== user && utils.isAddress(user)) {\n lastUser.current = user;\n fetchRocksOf(user);\n }\n }, [fetchRocksOf, user]);\n\n React.useEffect(() => {\n if (account) {\n setUser(account);\n }\n }, [account]);\n\n const totalMintCost = React.useMemo(() => {\n if (price === undefined) {\n return \"-\";\n }\n return price * num;\n }, [price, num]);\n\n const handleMint = React.useCallback(async () => {\n if (!minting) {\n const buyingNum = num;\n setMinting(true);\n setMintResult(\"Transaction Pending\");\n setMintStatus(MintStatus.Pending);\n const result = await mint();\n setMinting(false);\n if (result !== false) {\n setMintResult(`You've got your AVAXFU!`);\n setMintStatus(MintStatus.Success);\n fetchRocksOf(account!);\n } else {\n setMintResult(`Transaction Failed! Please try again.`);\n setMintStatus(MintStatus.Fail);\n }\n }\n }, [account, mint, fetchRocksOf, minting, num]);\n\n const formatStartDate = React.useMemo(\n () => (startTime ? new Date(startTime * 1000).toLocaleDateString() : \"-\"),\n [startTime]\n );\n\n const formatStartTime = React.useMemo(\n () => (startTime ? new Date(startTime * 1000).toLocaleTimeString() : \"-\"),\n [startTime]\n );\n\n const checkStarted = React.useCallback(() => {\n setStarted(startTime !== undefined && Date.now() / 1000 >= startTime);\n }, [startTime]);\n\n React.useEffect(() => {\n checkStarted();\n const interval = window.setInterval(() => {\n checkStarted();\n }, 100);\n\n return () => window.clearInterval(interval);\n }, [checkStarted]);\n\n const handleUserChange = React.useCallback(\n (e: React.ChangeEvent) => {\n setUser(e.target.value);\n },\n [setUser]\n );\n\n const insufficientBal = React.useMemo(\n () => utils.parseEther(((price ?? 0) * num).toString()).gt(bal),\n [price, num, bal]\n );\n\n return (\n \n {/*
\n \"\"\n
\n

\n Originally on ETH, rocks are now on Avalanche!\n
\n
\n These rocks are hand crafted, unique, and celebrate the Avalanche\n ecosystem along with the history of Crypto! Each Rock is an ERC721\n (\"Non-Fungible Token\") secured on the Avalanche Blockchain. You should\n note that these virtual rocks serve NO PURPOSE beyond giving you a\n strong sense of pride in being an owner of 1 of the only 102 rocks in\n the game.\n

\n\n

Sold out in 2 minutes!

\n

\n Minting opens at {formatStartDate} {formatStartTime} (\n {DateTime.local().toFormat(\"ZZZZ\")}).\n
\n Rocks will be revealed within 6 hours after sell out or 7 days after\n minting opens.\n

\n
\n
\n \"Preview\"\n
\n
\n
\n -\n \n +\n
\n \n {account\n ? `Mint ${num} Rock${\n num !== 1 ? \"s\" : \"\"\n } (${totalMintCost} AVAX)`\n : \"Not Connected\"}\n \n {insufficientBal && (\n

Insufficient Balance

\n )}\n

\n {available ?? \"-\"} / {total ?? \"-\"} Available. Max{\" \"}\n {maxRemaining ?? \"-\"} per transaction. Each rock is {price ?? \"-\"}{\" \"}\n AVAX.\n

\n

{mintResult}

\n {mintStatus === MintStatus.Fail && (\n

{lastError}

\n )}\n
\n View all rocks\n
\n
\n
\n
\n

User's Rocks

\n \n {!!rockList || (\n \n
\n
\n
\n
\n
\n
\n
\n )}\n
\n {rockList?.map((rock) => (\n
\n

Unique AvaxRock #{rock}

\n
\n \"\"\n
\n
\n ))}\n
\n
*/}\n \"\"\n
\n
\n \"Preview\n
\n
\n

Mint Your Waifu

\n \n {mintStatus === MintStatus.Fail\n ? lastError\n : insufficientBal\n ? \"Insufficient Funds\"\n : mintResult\n ? mintResult\n : \"Mint AVAXFU\"}\n \n

Price: 5 AVAX

\n

Minting enabled at 12AM EST

\n
\n
\n
\n

Waifus Left:

\n
{available ?? \"-\"}
\n
\n
\n );\n};\n","export default __webpack_public_path__ + \"static/media/preview.1fd951ca.png\";","export default __webpack_public_path__ + \"static/media/i.a1b39f05.png\";","import * as React from \"react\";\nimport { Redirect, Switch } from \"react-router-dom\";\nimport { LayoutRoute } from \"./Components/LayoutRoute\";\nimport { All } from \"./Views/All\";\nimport { Home } from \"./Views/Home\";\n\nexport const AppRoutes: React.FC = () => {\n return (\n \n \n \n \n \n );\n};\n","import * as React from \"react\";\nimport { ThemeProvider } from \"styled-components\";\nimport { DefaultTheme } from \"./AppTheme\";\nimport { history } from \"./history\";\nimport { Router } from \"react-router-dom\";\nimport { AppRoutes } from \"./AppRoutes\";\nimport { Web3ReactProvider } from \"@web3-react/core\";\nimport { Web3Provider } from \"@ethersproject/providers\";\nimport { getInjected, InjectedContext } from \"./Contexts/InjectedContext\";\n\nfunction getLibrary(provider: any): Web3Provider {\n return new Web3Provider(provider);\n}\n\nexport const App: React.FC = () => {\n const [injected] = React.useState(() => getInjected());\n\n return (\n \n \n \n \n \n \n \n \n \n );\n};\n","import React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport \"./index.scss\";\nimport { App } from \"./App\";\n\nReactDOM.render(\n \n \n ,\n document.getElementById(\"root\")\n);\n"],"sourceRoot":""}