{"version":3,"sources":["Standart/images/MMProLogo.svg","Standart/images/arrowUpWhite.svg","components/Footer.js","components/common/Button.js","components/common/Modal/index.js","hooks/useOnClickOutside.js","wallet/connectors.js","wallet/ethereum.js","components/common/ConnectModal/index.js","Standart/components/HidingText/index.tsx","Standart/components/Header/localization.js","Standart/LocaleContext.ts","Standart/hooks/localized.js","Standart/components/Header/index.tsx","components/AllocationHeader/localization.js","components/AllocationHeader/index.js","hooks/useContracts.js","utils/getRpcUrl.js","utils/getAddress.js","components/AllocationContainer/index.js","utils/common.js","components/common/BorderCard/index.js","hooks/useBalance.js","components/common/Spinner/index.js","components/AllocationItem/localization.js","components/AllocationItem/index.js","pages/Allocation/localization.js","pages/Allocation/index.js","Standart/hooks/useConnectionCheck.js","App.js","Standart/hooks/useLocale.js","index.js"],"names":["module","exports","Footer","className","style","minWidth","href","target","rel","src","alt","width","color","bgColor","showBorder","onClick","children","uppercase","disabled","cx","transition","borderRadius","padding","fontSize","border","fontWeight","Modal","onClose","title","ref","useRef","handler","useEffect","listener","event","current","contains","document","addEventListener","removeEventListener","useOnClickOutside","querySelector","classList","remove","injected","InjectedConnector","supportedChainIds","walletconnect","WalletConnectConnector","rpc","56","97","qrcode","bridge","walletconnectNoQr","switchNetwork","window","ethereum","isConnected","isMetaMask","chainId","a","request","method","params","code","rpcUrls","chainName","nativeCurrency","name","decimals","symbol","blockExplorerUrls","console","error","ConnectModal","props","useWeb3React","activate","active","opened","closeHandle","setError","initNetwork","height","then","location","reload","HidingText","defaultText","hidingText","peekOut","en","ja","LocaleContext","React","createContext","localized","strings","setLocale","newLocale","locale","Header","str","account","deactivate","connector","useContext","useState","isOpen","setIsOpen","disconnectIsPossible","setDisconnectIsPossible","isDisplayingMetamaskDisconnectTip","setIsDisplayingMetamaskDisconnectTip","logo","arrowUp","texts","zIndex","Button","walletConnectProvider","setTimeout","length","substr","AllocationHeader","key","RPC_URL","getRpcUrl","httpProvider","Web3","providers","HttpProvider","timeout","useContract","abi","address","web3","library","useMemo","currentProvider","useWeb3","eth","Contract","useBUSDContract","BUSD","useAllocationMarketplaceContract","AllocationMarketplace","AllocationContainer","wei2eth","val","Number","BigInt","noLine","useBalanceOfToken","tokenContract","balance","setBalance","balanceLoading","setBalanceLoading","updateBalance","useCallback","methods","balanceOf","call","b","Spinner","animationDuration","size","borderWidth","borderTopColor","borderBottomColor","defaultProps","ALLOWANCE","AllocationItem","tier","price","initAmount","allocationValue","ticketAmount","INSUFFICIENT_BALANCE_ERROR_MESSAGE","TRANSACTION_ERROR_MESSAGE","allocationMarketplaceContract","pancakeRouterContract","PancakeRouter","usePancakeRouterContract","BUSDContract","loadingBuy","setLoadingBuy","amount","setAmount","allocationData","setAllocationData","Math","floor","Date","getTime","currentTime","setCurrentTime","loading","setLoading","claimable","setClaimable","numbers","setNumbers","id","unlockEndsAt","geTicketClaimable","newClaimable","clearTimeout","mounted","geTicketNumbers","newTicketNumbers","geTicketData","data","displayError","text","time","claimLocked","send","from","once","getLotteryTicketsOf","availableToClaim","userLevelTokenInfo","getMinAmountOut","path","BigNumber","getAmountsOut","getDeadline","getAllowance","allowance","approve","amount2eth","fromExponential","mint","multipliedBy","toFixed","toString","handleBuy","parseInt","log","videoRef","createRef","playbackRate","locked","intitialUnlockAvailableAt","allClaimed","totalReserved","totalClaimed","timeLeft","stakeEndTime","diffSecs","diff_in_days","diff_in_hours","diff_in_mins","diff_in_secs","calcTimeToWithdraw","autoPlay","loop","muted","type","undefined","parseFloat","originalLockedAmount","map","ticketNumber","TIERS","Allocation","contact","useBalanceOfBUSD","Array","fill","allocationBalances","setAllocationBalances","allocationPrices","setAllocationPrices","allocationWorthArray","setAllocationWorthArray","ticketAmounts","setTicketAmounts","loadingBalances","setLoadingBalances","loadingPrices","setLoadingPrices","loadAllocationBalances","accounts","balanceOfBatch","balances","loadAllocationPrices","prices","nftInfos","tierInfos","push","allocationWorth","numberOfTickets","showConnectWallet","showLoading","showAllocationBody","balanceMessage","ind","useConnectionCheck","shouldTryWalletConnect","setShouldTryWalletConnect","App","networkError","userLocale","getUserLocale","useCookies","cookies","setCookie","setLocaleState","updateLocale","isUserLocaleJA","includes","useLocale","isAuthorized","Provider","value","minHeight","display","flexDirection","justifyContent","baseUrl","getElementsByTagName","getAttribute","rootElement","getElementById","ReactDOM","render","basename","getLibrary","provider"],"mappings":"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","file":"static/js/main.44716f55.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/MMProLogo.55877753.svg\";","module.exports = __webpack_public_path__ + \"static/media/arrowUpWhite.e6371f0c.svg\";","import React from \"react\";\n\nexport const Footer = () => {\n return (\n
\n \n
\n );\n};\n","import React from \"react\";\nimport cx from \"classnames\";\n\nexport default ({\n color = \"white\",\n bgColor = \"primary\",\n showBorder = false,\n onClick,\n className,\n children,\n uppercase,\n disabled,\n }) => {\n return (\n \n {children}\n \n );\n};\n","import React, {useRef} from \"react\";\nimport useOnClickOutside from \"../../../hooks/useOnClickOutside\";\nimport './index.css'\n\nconst Modal = ({children, onClose, title}) => {\n const ref = useRef(null);\n\n const closeModal = () => {\n document.querySelector(\"body\").classList.remove(\"overflow-hidden\");\n onClose();\n };\n\n useOnClickOutside(ref, () => {\n closeModal();\n });\n\n return (\n \n \n
\n
{title}
\n
\n {children}\n \n \n );\n};\n\nexport default Modal;\n","import {useEffect} from \"react\";\n\nexport default function useOnClickOutside(ref, handler) {\n useEffect(() => {\n const listener = (event) => {\n // Do nothing if clicking ref's element or descendent elements\n if (!ref.current || ref.current.contains(event.target)) {\n return;\n }\n\n handler(event);\n };\n\n document.addEventListener(\"mousedown\", listener);\n document.addEventListener(\"touchstart\", listener);\n\n return () => {\n document.removeEventListener(\"mousedown\", listener);\n document.removeEventListener(\"touchstart\", listener);\n };\n }, [ref, handler]);\n}\n","import {InjectedConnector} from \"@web3-react/injected-connector\";\nimport {WalletConnectConnector} from \"@web3-react/walletconnect-connector\";\nimport Web3 from \"web3\";\n\n// Chain IDs\n// These are the IDs of the Ethereum chains that MetaMask supports by default. Consult chainid.network (opens new window)for more.\n// Hex\tDecimal\tNetwork\n// 0x1\t1\tEthereum Main Network (Mainnet)\n// 0x3\t3\tRopsten Test Network\n// 0x4\t4\tRinkeby Test Network\n// 0x5\t5\tGoerli Test Network\n// 0x2a\t42\tKovan Test Network\nexport const injected = new InjectedConnector({\n supportedChainIds: [56, 97],\n});\n\nexport const walletconnect = new WalletConnectConnector({\n rpc: {\n 56: \"https://bsc-dataseed.binance.org/\",\n 97: \"https://data-seed-prebsc-1-s1.binance.org:8545/\",\n },\n qrcode: true,\n bridge: \"https://bridge.walletconnect.org\",\n});\n\nexport const walletconnectNoQr = new WalletConnectConnector({\n rpc: {\n 56: \"https://bsc-dataseed.binance.org/\",\n 97: \"https://data-seed-prebsc-1-s1.binance.org:8545/\",\n },\n qrcode: false,\n bridge: \"https://bridge.walletconnect.org\",\n});\n\nexport const getLibrary = (provider) => new Web3(provider);\n","export const ethereumConnect = () =>\n window.ethereum.request({method: \"eth_requestAccounts\"});\nexport const isEthereumConnected = window.ethereum\n ? window.ethereum.isConnected()\n : false;\nexport const isEthereumMetaMask = window.ethereum\n ? window.ethereum.isMetaMask\n : null;\nexport const ethereumSendTransaction = (params) =>\n window.ethereum.request({\n method: \"eth_sendTransaction\",\n params,\n });\n\nexport const switchNetwork = async (chainId) => {\n try {\n await window.ethereum.request({\n method: \"wallet_switchEthereumChain\",\n params: [{chainId: \"0x61\"}],\n });\n } catch (switchError) {\n // This error code indicates that the chain has not been added to MetaMask.\n if (switchError.code === 4902) {\n try {\n await window.ethereum.request({\n method: \"wallet_addEthereumChain\",\n params: [\n {\n chainId: \"0x61\",\n rpcUrls: [\"https://data-seed-prebsc-1-s1.binance.org:8545\"],\n chainName: \"BSC Mainnet\",\n nativeCurrency: {name: \"BNB\", decimals: 18, symbol: \"BNB\"},\n blockExplorerUrls: [\"https://testnet.bscscan.com\"],\n },\n ],\n });\n } catch (error) {\n console.error(error);\n }\n }\n }\n};\n","/* eslint-disable react-hooks/exhaustive-deps */\nimport React, {useEffect} from \"react\";\nimport Modal from \"../Modal\";\nimport './index.css'\nimport {useWeb3React} from \"@web3-react/core\";\nimport {injected, walletconnect, switchNetwork} from \"../../../wallet\";\n\nexport default function ConnectModal(props) {\n const {chainId, activate, active, error} = useWeb3React();\n const {opened, closeHandle, setError} = props;\n\n useEffect(() => {\n if(chainId){\n const initNetwork = async () => {\n setError(56 !== chainId && active);\n if (56 !== chainId) {\n await switchNetwork();\n }\n };\n initNetwork();\n }\n }, [active, chainId, error]);\n\n return (\n <>\n {opened && (\n \n
\n {\n activate(injected);\n // setProvider(\"coinbaseWallet\");\n closeHandle();\n }}\n >\n \n

Metamask

\n \n {\n activate(walletconnect).then(()=>{\n window.location.reload()\n });\n // setProvider(\"coinbaseWallet\");\n closeHandle();\n }}\n >\n \n

Wallet connect

\n \n
\n
\n )}\n \n );\n}\n","import React from \"react\";\nimport './index.css'\n\ntype hidingTextProps = {\n defaultText: string,\n hidingText: string,\n peekOut: boolean\n}\n\nexport const HidingText = ({defaultText, hidingText, peekOut}: hidingTextProps) => {\n\n return (\n <>\n
\n {defaultText}\n
\n
\n {hidingText}\n
\n \n );\n};","export default {\n MetaMaskDisconnectMessage: {\n en: 'Please disconnect using MetaMask',\n ja: 'MetaMaskを使用して切断してください'\n },\n Disconnect: {\n en: 'Disconnect',\n ja: '切断する'\n },\n ConnectWallet: {\n en: 'Connect Wallet',\n ja: 'ウォレットを接続する'\n }\n}","import React from 'react';\n\nconst LocaleContext = React.createContext({ localized: (strings: any)=>{return ''}, setLocale: (newLocale: string)=>{}, locale: 'en' });\n\nexport default LocaleContext;\n","export function localized(strings, locale){\n return strings[locale] || strings['en']\n}","import React, {useContext, useState} from \"react\";\nimport Button from \"../../../components/common/Button.js\";\nimport ConnectModal from \"../../../components/common/ConnectModal\";\nimport {useWeb3React} from \"@web3-react/core\";\nimport './index.css'\n// @ts-ignore\nimport {HidingText} from \"../HidingText\";\nimport logo from '../../images/MMProLogo.svg'\nimport arrowUp from '../../images/arrowUpWhite.svg'\nimport {LocaleSelector} from \"../LocaleSelector\";\nimport texts from './localization'\nimport {useLocale} from \"../../hooks/useLocale\";\nimport LocaleContext from \"../../LocaleContext\";\nimport {localized} from \"../../hooks/localized\";\n\nexport const Header = () => {\n const {account, deactivate, active, connector} = useWeb3React();\n const {locale} = useContext(LocaleContext)\n const [isOpen, setIsOpen] = useState(false);\n // eslint-disable-next-line no-unused-vars\n const [error, setError] = useState(false);\n const [disconnectIsPossible, setDisconnectIsPossible] = useState(false)\n const [isDisplayingMetamaskDisconnectTip, setIsDisplayingMetamaskDisconnectTip] = useState(false)\n\n const disconnect = () => {\n if (disconnectIsPossible) {\n // @ts-ignore\n if(connector && connector.walletConnectProvider){\n deactivate();\n }else{\n setIsDisplayingMetamaskDisconnectTip(true)\n setTimeout(()=>{\n setIsDisplayingMetamaskDisconnectTip(false)\n }, 5000)\n }\n } else {\n setDisconnectIsPossible(true)\n setTimeout(() => {\n setDisconnectIsPossible(false)\n }, 1500)\n }\n };\n\n function truncate(str: string) {\n return str.length > 0\n ? str.substr(0, 6) + \"...\" + str.substr(str.length - 4, str.length - 1)\n : str;\n }\n\n return (\n <>\n
\n
\n
\n \n \n \n
\n {isDisplayingMetamaskDisconnectTip &&\n
\n \n {localized(texts.MetaMaskDisconnectMessage, locale)}\n
\n }\n {/**/}\n {!isDisplayingMetamaskDisconnectTip &&\n <>\n {!active ? (\n // @ts-ignore\n {\n setIsOpen(true);\n }}\n >\n {localized(texts.ConnectWallet, locale)}\n \n ) : (\n
\n
\n {/* @ts-ignore */}\n \n
\n
\n )}\n \n }\n
\n
\n {\n setIsOpen(false);\n }}\n />\n \n );\n};","export default {\n AllocationMarket: {\n en: 'Welcome to the MMPRO NFT page',\n ja: '配分市場'\n },\n ConnectWalletMessage: {\n en: 'Here you can choose one of the NFT tickets to participate in the contest',\n ja: 'ウォレットを接続して、METAMASKシェアの割り当てを取得します'\n },\n MetamaskPricesMessage: {\n en: 'Choose wisely, decide quickly',\n ja: ''\n }\n}","import React, {useContext} from 'react';\nimport {useLocale} from \"../../Standart/hooks/useLocale\";\nimport texts from './localization'\nimport LocaleContext from \"../../Standart/LocaleContext\";\nimport {localized} from \"../../Standart/hooks/localized\";\n\nexport const AllocationHeader = () => {\n const {locale} = useContext(LocaleContext)\n return (\n
\n
\n
\n

{localized(texts.AllocationMarket, locale)}

\n

\n {localized(texts.ConnectWalletMessage, locale)}\n

\n

\n {localized(texts.MetamaskPricesMessage, locale)}\n

\n
\n
\n
\n )\n};\n","import Web3 from \"web3\";\nimport {useWeb3React} from \"@web3-react/core\";\n\nimport {\n getAllocationMarketplaceAddress,\n getBUSDAddress,\n getMMProAddress,\n getPancakeRouterAddress,\n} from \"../utils/getAddress\";\n\nimport MMPRO from \"../contracts/MMPRO.json\";\nimport BUSD from \"../contracts/Busd.json\";\nimport AllocationMarketplace from \"../contracts/AllocationMarketplace.json\";\nimport PancakeRouter from \"../contracts/PancakeRouter.json\"\nimport getRpcUrl from \"../utils/getRpcUrl\";\nimport {useMemo} from \"react\";\n\nconst RPC_URL = getRpcUrl();\nconst httpProvider = new Web3.providers.HttpProvider(RPC_URL, {\n timeout: 10000,\n});\n\nexport const useWeb3 = () => {\n const {library} = useWeb3React();\n return useMemo(() => {\n if (library) {\n return new Web3(library.currentProvider || httpProvider);\n } else {\n return new Web3(httpProvider);\n }\n }, [library]);\n};\n\nconst useContract = (abi, address) => {\n const web3 = useWeb3();\n return useMemo(() => new web3.eth.Contract(abi, address), [web3, abi, address]);\n};\n\nexport const useBUSDContract = () => {\n const abi = useMemo(() => BUSD.abi, []);\n return useContract(abi, getBUSDAddress());\n};\n\nexport const useMMProContract = () => {\n const abi = useMemo(() => MMPRO.abi, []);\n return useContract(abi, getMMProAddress());\n};\n\nexport const useAllocationMarketplaceContract = () => {\n const abi = useMemo(() => AllocationMarketplace.abi, []);\n return useContract(abi, getAllocationMarketplaceAddress());\n};\n\nexport const usePancakeRouterContract = () => {\n const abi = useMemo(() => PancakeRouter.abi, []);\n return useContract(abi, getPancakeRouterAddress());\n}\n","const getRpcUrl = () => {\n return \"https://bsc-dataseed.binance.org/\";\n};\n\nexport default getRpcUrl;\n","export const getBUSDAddress = () => {\n return \"0xe9e7CEA3DedcA5984780Bafc599bD69ADd087D56\";\n};\n\nexport const getMMProAddress = () => {\n return \"0x6067490d05F3cF2fdFFC0e353b1f5Fd6E5CCDF70\";\n};\n\nexport const getAllocationMarketplaceAddress = () => {\n return \"0x7846CA06f58Ce7669AacdCeF87FE739Cb873ca3d\";\n};\n\nexport const getPancakeRouterAddress = () => {\n return \"0x10ed43c718714eb63d5aa57b78b54704e256024e\";\n};","import React from \"react\";\nimport './index.css'\n\nexport const AllocationContainer = ({children}) => {\n return (\n
\n {children}\n
\n )\n};","/* eslint-disable no-undef */\nexport const wei2eth = (val) => {\n if (val) {\n return Number((BigInt(val) * BigInt(1000)) / BigInt(1000000000000000000)) / 1000;\n }\n return BigInt(0);\n};\n","import React from \"react\";\nimport './index.css'\n\nexport default ({title, className, noLine, children}) => {\n return (\n \n \n {title}\n \n {children}\n \n );\n};\n","import {useCallback, useEffect, useState} from \"react\";\nimport {useBUSDContract, useMMProContract} from \"./useContracts\";\nimport {useWeb3React} from \"@web3-react/core\";\nexport const useBalanceOfToken = (tokenContract) => {\n\n const {account, active} = useWeb3React();\n\n const [balance, setBalance] = useState();\n const [balanceLoading, setBalanceLoading] = useState(true)\n\n const updateBalance = useCallback(async () => {\n if (active) {\n setBalanceLoading(true)\n const b = await tokenContract.methods.balanceOf(account).call();\n setBalance(b)\n setBalanceLoading(false)\n }\n\n }, [tokenContract, account, active])\n\n useEffect(() => {\n updateBalance().then()\n }, [updateBalance])\n\n return {balance, balanceLoading, updateBalance}\n};\n\nexport const useBalanceOfBUSD = () => {\n const contact = useBUSDContract()\n return useBalanceOfToken(contact)\n};\n\nexport const useBalanceOfMMPRO = () => {\n const contact = useMMProContract()\n return useBalanceOfToken(contact)\n};","import React from \"react\";\nimport \"./index.css\";\n\nconst Spinner = ({ animationDuration, size, color }) => {\n return (\n \n \n \n \n );\n};\n\nSpinner.defaultProps = {\n animationDuration: 1000,\n size: 40,\n color: \"#2c6fa5\",\n};\n\nexport default Spinner;\n","export default {\n InsufficientBalance: {\n en: 'Insufficient balance',\n ja: '残高不足'\n },\n TransactionFailed: {\n en: 'Transaction failed',\n ja: '処理に失敗しました'\n },\n Days: {\n en: 'Days',\n ja: '日々'\n },\n hours: {\n en: 'hours',\n ja: '時間'\n },\n Owned: {\n en: 'Owned',\n ja: '所有'\n },\n AllocationUpTo: {\n en: 'Allocation up to',\n ja: 'までの割り当て'\n },\n Price: {\n en: 'Price',\n ja: '価格'\n },\n Locked: {\n en: 'Locked',\n ja: 'ロック済み'\n },\n Claimable: {\n en: 'Claimable',\n ja: 'クレーム可能'\n },\n AlreadyClaimed: {\n en: 'Already claimed',\n ja: 'すでに主張'\n },\n Claim: {\n en: 'Claim',\n ja: '請求'\n },\n YourTickets: {\n en: 'Your tickets',\n ja: 'あなたのチケット'\n },\n Buy: {\n en: 'Buy',\n ja: '買う'\n },\n BuyMore: {\n en: 'Buy more',\n ja: 'もっと買う'\n }\n}","import React, {useContext, useEffect, useState} from \"react\";\nimport Spinner from \"../common/Spinner\";\nimport {wei2eth} from \"../../utils/common\";\nimport {useAllocationMarketplaceContract, useBUSDContract, usePancakeRouterContract} from \"../../hooks/useContracts\";\nimport fromExponential from \"from-exponential\";\nimport {getAllocationMarketplaceAddress, getBUSDAddress, getMMProAddress} from \"../../utils/getAddress\";\nimport {useWeb3React} from \"@web3-react/core\";\nimport './index.css'\nimport {HidingText} from \"../../Standart/components/HidingText\";\nimport BigNumber from \"bignumber.js\";\nimport Button from \"../common/Button\";\nimport {useLocale} from \"../../Standart/hooks/useLocale\";\nimport texts from './localization'\nimport LocaleContext from \"../../Standart/LocaleContext\";\nimport {localized} from \"../../Standart/hooks/localized\";\n\nconst DEADLINE_OVER_NOW = 60 * 5 // 5 min\nconst ALLOWANCE = 10 ** 10 * 10 ** 18\n\nconst SLIPPAGE_PERCENT = 0.93 // 7 %\n\nexport const AllocationItem = ({tier, price, initAmount, updateBalance, balance, allocationValue, ticketAmount}) => {\n const {account} = useWeb3React();\n const {locale} = useContext(LocaleContext)\n\n const calcTimeToWithdraw = (stakeEndTime, currentTime) => {\n const diffSecs = stakeEndTime - currentTime\n\n if (diffSecs <= 0) {\n return ''\n }\n const diff_in_days = Math.floor(diffSecs / 3600 / 24).toFixed(0);\n const diff_in_hours = Math.floor((diffSecs % (3600 * 24)) / 3600).toFixed(\n 0\n );\n const diff_in_mins = Math.floor(\n ((diffSecs % (3600 * 24)) % 3600) / 60\n ).toFixed(0);\n const diff_in_secs = Math.floor((diffSecs % (3600 * 24)) % 3600) % 60;\n\n if(+diff_in_days > 0){\n return `${diff_in_days} ${localized(texts.Days, locale)}, ${+diff_in_hours > 0 ? `${diff_in_hours} ${localized(texts.hours, locale)}`: ''}`\n }\n\n return `${+diff_in_hours > 0 ? `${diff_in_hours}:` : ''}${(+diff_in_mins < 10 && +diff_in_mins > 0) ? '0': ''}${+diff_in_mins > 0 ? `${diff_in_mins}:` : ''}${diff_in_secs < 10 ? `0${diff_in_secs}`: `${diff_in_secs}`}`;\n\n };\n\n const INSUFFICIENT_BALANCE_ERROR_MESSAGE = localized(texts.InsufficientBalance, locale);\n const TRANSACTION_ERROR_MESSAGE = localized(texts.TransactionFailed, locale);\n\n const allocationMarketplaceContract = useAllocationMarketplaceContract();\n const pancakeRouterContract = usePancakeRouterContract();\n const BUSDContract = useBUSDContract()\n const [loadingBuy, setLoadingBuy] = useState(false)\n const [error, setError] = useState(\"\")\n const [amount, setAmount] = useState(initAmount)\n const [allocationData, setAllocationData] = useState({})\n const [currentTime, setCurrentTime] = useState(Math.floor(new Date().getTime() / 1000));\n const [loading, setLoading] = useState(false)\n const [claimable, setClaimable] = useState(0)\n const [numbers, setNumbers] = useState([])\n\n useEffect(() => {\n let id = 0\n // @ts-ignore\n if(allocationData && currentTime < allocationData.unlockEndsAt){\n id = setTimeout(() => {\n setCurrentTime(Math.floor(new Date().getTime() / 1000));\n }, 1000);\n }\n if(allocationData && currentTime < allocationData.unlockEndsAt){\n geTicketClaimable().then((newClaimable) => setClaimable(newClaimable))\n }\n\n return(\n ()=>{\n window.clearTimeout(id);\n }\n )\n }, [currentTime, allocationData]);\n\n useEffect( () => {\n let mounted = true\n geTicketClaimable().then(newClaimable => {\n if(mounted) {\n setClaimable(newClaimable)\n }\n })\n geTicketNumbers().then(newTicketNumbers => {\n if(mounted) {\n setNumbers(newTicketNumbers)\n }\n })\n geTicketData().then(data => {\n if(mounted) {\n setAllocationData(data)\n }\n })\n\n return () => {mounted = false}\n }, [])\n\n const displayError = (text, time) => {\n setError(text)\n setTimeout(()=>{\n setError(\"\")\n }, time)\n }\n\n async function mainButtonClicked(){\n setLoading(true)\n await allocationMarketplaceContract.methods.claimLocked(tier).send({from: account}).once('receipt', () => {\n geTicketData().then(data => setAllocationData(data))\n geTicketClaimable().then((newClaimable) => setClaimable(newClaimable))\n setLoading(false)\n })\n }\n\n async function geTicketNumbers(){\n return allocationMarketplaceContract.methods.getLotteryTicketsOf(account, tier).call({from: account})\n }\n\n async function geTicketClaimable(){\n return allocationMarketplaceContract.methods.availableToClaim(account, `${tier}`).call({from: account})\n }\n\n async function geTicketData(){\n return allocationMarketplaceContract.methods.userLevelTokenInfo(account, tier).call({from: account})\n }\n\n const getMinAmountOut = async () => {\n const path = [getBUSDAddress(), getMMProAddress()]\n return new BigNumber((await pancakeRouterContract\n .methods\n .getAmountsOut(price, path)\n .call())[1])\n }\n\n const getDeadline = () => {\n return Math.floor(new Date().getTime() / 1000) + DEADLINE_OVER_NOW;\n }\n\n const getAllowance = async () => {\n return await BUSDContract\n .methods\n .allowance(account, getAllocationMarketplaceAddress())\n .call();\n }\n\n const approve = async () => {\n const amount2eth = fromExponential(ALLOWANCE);\n await BUSDContract\n .methods\n .approve(getAllocationMarketplaceAddress(), amount2eth)\n .send({from: account});\n };\n\n async function mint() {\n const amountOutMin = await getMinAmountOut()\n await allocationMarketplaceContract\n .methods\n .mint(tier, ((await getMinAmountOut()).multipliedBy(SLIPPAGE_PERCENT).toFixed(0).toString()), getDeadline())\n .send({from: account}).once('receipt', ()=> {\n geTicketData().then(data => setAllocationData(data))\n })\n }\n\n const handleBuy = async () => {\n if (loadingBuy){\n return\n }\n\n if (parseInt(price) > parseInt(balance)) {\n displayError(INSUFFICIENT_BALANCE_ERROR_MESSAGE, 2000);\n return\n }\n\n setLoadingBuy(true)\n try {\n const allowance = await getAllowance()\n if (parseInt(price) > parseInt(allowance)) {\n await approve()\n }\n await mint()\n await updateBalance()\n setError(\"\")\n setAmount(amount + 1)\n } catch (e) {\n displayError(TRANSACTION_ERROR_MESSAGE, 2000)\n console.log({error: e})\n }\n setLoadingBuy(false)\n\n }\n\n const videoRef = React.createRef();\n\n useEffect(()=>{\n if(videoRef.current){\n videoRef.current.playbackRate = 0.7;\n }\n }, [videoRef])\n\n const locked = allocationData && currentTime < allocationData.intitialUnlockAvailableAt\n const allClaimed = (allocationData.totalReserved - allocationData.totalClaimed === 0) && allocationData.totalClaimed > 0\n const timeLeft = calcTimeToWithdraw(allocationData.intitialUnlockAvailableAt, currentTime)\n\n return (\n \n
0 && `border-t-${tier + 1}`}`}>\n {amount > 0 &&\n
\n {localized(texts.Owned, locale)}\n
\n }\n {/*{amount === 0 &&*/}\n {/*
*/}\n {/* Only {ticketAmount} left*/}\n {/*
*/}\n {/*}*/}\n \n {price !== undefined && amount <= 0 &&\n
\n
\n {localized(texts.AllocationUpTo, locale)} {wei2eth(allocationValue)}$\n
\n
\n {localized(texts.Price, locale)}: {wei2eth(price)} BUSD\n
\n
\n }\n {amount === 0 &&\n \n {loadingBuy ? (\n \n ) : (\n \n )}\n \n }\n {amount > 0 &&\n
\n
\n {localized(texts.Locked, locale)}: {parseFloat(wei2eth(allocationData.originalLockedAmount).toString()).toFixed(2)} MMPRO\n
\n
\n {localized(texts.Claimable, locale)}: {parseFloat(wei2eth(claimable).toString()).toFixed(2)} MMPRO\n
\n {/* @ts-ignore */}\n \n {loading ? (\n \n ) : (\n <>\n \n {locked ? timeLeft : (allClaimed ? localized(texts.AlreadyClaimed, locale) : localized(texts.Claim, locale))}\n \n )}\n \n
\n }\n {numbers.length !== 0 &&\n
\n
\n {localized(texts.YourTickets, locale)}\n
\n
\n {numbers.map(ticketNumber => (\n {+ticketNumber}\n ))}\n
\n
\n }\n
\n \n )\n\n}","export default {\n Loading: {\n en: 'Loading',\n ja: '読み込み中'\n },\n ConnectWallet: {\n en: 'Connect Wallet',\n ja: 'ウォレットを接続する'\n },\n Available: {\n en: 'Available',\n ja: '利用可能'\n }\n}","import React, {useCallback, useContext, useEffect, useState} from \"react\";\nimport {AllocationHeader} from \"../../components/AllocationHeader\";\nimport {useWeb3React} from \"@web3-react/core\";\nimport {useAllocationMarketplaceContract} from \"../../hooks/useContracts\";\nimport {AllocationContainer} from \"../../components/AllocationContainer\";\nimport {wei2eth} from \"../../utils/common\";\nimport BorderCard from \"../../components/common/BorderCard\"\nimport {useBalanceOfBUSD} from \"../../hooks/useBalance\";\nimport {AllocationItem} from \"../../components/AllocationItem\";\nimport texts from './localization'\nimport {useLocale} from \"../../Standart/hooks/useLocale\";\nimport LocaleContext from \"../../Standart/LocaleContext\";\nimport {localized} from \"../../Standart/hooks/localized\";\n\nconst TIERS = [0, 1, 2, 3];\n\nexport const Allocation = () => {\n const {active, account} = useWeb3React();\n const {locale} = useContext(LocaleContext)\n const allocationMarketplaceContract = useAllocationMarketplaceContract();\n\n const {balance, balanceLoading, updateBalance} = useBalanceOfBUSD(account)\n\n const [allocationBalances, setAllocationBalances] = useState(Array(TIERS.length).fill(0));\n const [allocationPrices, setAllocationPrices] = useState(Array(TIERS.length).fill(undefined));\n const [allocationWorthArray, setAllocationWorthArray] = useState(Array(TIERS.length).fill(undefined));\n const [ticketAmounts, setTicketAmounts] = useState(Array(TIERS.length).fill(undefined));\n\n const [loadingBalances, setLoadingBalances] = useState(false);\n const [loadingPrices, setLoadingPrices] = useState(false);\n\n const loadAllocationBalances = useCallback(async () => {\n const accounts = Array(TIERS.length).fill(account);\n if (active) {\n const balances = await allocationMarketplaceContract\n .methods\n .balanceOfBatch(accounts, TIERS)\n .call();\n setAllocationBalances(balances.map(val => parseInt(val)));\n }\n }, [active, account, allocationMarketplaceContract]);\n\n const loadAllocationPrices = useCallback(async () => {\n const prices = [];\n const allocationWorthArray = []\n const ticketAmounts = []\n\n\n for (let tier of TIERS) {\n let tierInfos = await allocationMarketplaceContract\n .methods\n .nftInfos(tier)\n .call();\n prices.push(tierInfos.price);\n allocationWorthArray.push(tierInfos.allocationWorth)\n ticketAmounts.push(tierInfos.numberOfTickets)\n }\n\n setAllocationPrices(prices);\n setAllocationWorthArray(allocationWorthArray)\n setTicketAmounts(ticketAmounts)\n }, [allocationMarketplaceContract]);\n\n useEffect(() => {\n setLoadingBalances(true);\n loadAllocationBalances()\n .then(() => setLoadingBalances(false));\n }, [loadAllocationBalances]);\n\n useEffect(() => {\n setLoadingPrices(true);\n loadAllocationPrices()\n .then(() => setLoadingPrices(false))\n }, [loadAllocationPrices]);\n\n const showConnectWallet = !active\n const showLoading = loadingBalances && loadingPrices\n const showAllocationBody = !showLoading && !showConnectWallet\n\n const balanceMessage = balanceLoading ? `${localized(texts.Loading, locale)}...` : `${localized(texts.Available, locale)}: ${wei2eth(balance)} BUSD`\n\n return (\n
\n \n {showConnectWallet &&
{localized(texts.ConnectWallet, locale)}
}\n {showLoading &&
{localized(texts.Loading, locale)}...
}\n {showAllocationBody &&\n \n \n {TIERS.map((tier, ind) =>\n \n )}\n \n \n }\n\n
\n )\n};\n\n","import {useEffect, useState} from \"react\";\nimport {useWeb3React} from \"@web3-react/core\";\nimport {walletconnectNoQr} from \"../../wallet/connectors\";\n\nexport const useConnectionCheck = () => {\n const {active, activate} = useWeb3React();\n\n const [shouldTryWalletConnect, setShouldTryWalletConnect] = useState(false)\n\n function tryWalletConnect() {\n if(!active && shouldTryWalletConnect){\n setShouldTryWalletConnect(false)\n activate(walletconnectNoQr);\n }\n }\n\n useEffect(() => {\n if(active && shouldTryWalletConnect){\n setShouldTryWalletConnect(false)\n } else {\n tryWalletConnect()\n }\n }, [active, shouldTryWalletConnect])\n\n useEffect(()=>{\n setTimeout(()=>{\n setShouldTryWalletConnect(true)\n }, 1000)\n }, [])\n};","/* eslint-disable react-hooks/exhaustive-deps */\n/* eslint-disable no-undef */\nimport React, {useEffect} from \"react\";\nimport {useWeb3React} from \"@web3-react/core\";\nimport {Footer} from \"./components/Footer\";\nimport {Header} from \"./Standart/components/Header\";\n\nimport {injected} from \"./wallet\";\nimport {Allocation} from \"./pages/Allocation\";\nimport {useConnectionCheck} from \"./Standart/hooks/useConnectionCheck\";\nimport {useLocale} from \"./Standart/hooks/useLocale\";\nimport LocaleContext from \"./Standart/LocaleContext\";\n\nexport const App = () => {\n const {active, activate, networkError} = useWeb3React();\n const {localized, setLocale, locale} = useLocale()\n useConnectionCheck()\n\n useEffect(() => {\n injected.isAuthorized().then((isAuthorized) => {\n if (isAuthorized && !active && !networkError) {\n activate(injected);\n }\n });\n }, [activate, networkError]);\n\n return (\n \n
\n
\n
\n \n
\n
\n
\n
\n );\n};\n","import getUserLocale from \"get-user-locale\";\nimport {useCookies} from \"react-cookie/cjs\";\nimport {useEffect, useState} from \"react\";\n\nexport const useLocale = () => {\n const userLocale = getUserLocale();\n const [cookies, setCookie, removeCookie] = useCookies(['cookie-name']);\n const [locale, setLocaleState] = useState('')\n\n useEffect(()=>{\n setLocaleState(updateLocale())\n }, [])\n\n function updateLocale(){\n let newLocale = cookies[\"locale\"] || ''\n\n const isUserLocaleJA = userLocale.includes(\"ja\") || userLocale.includes(\"JA\") || userLocale[0].includes(\"ja\") || userLocale[0].includes(\"JA\")\n if(newLocale === '' && isUserLocaleJA){\n newLocale = 'ja'\n }\n // @ts-ignore\n if (newLocale === '') {\n newLocale = \"en\"\n }\n return newLocale\n }\n\n const setLocale = (newLocale) => {\n setCookie(\"locale\", newLocale)\n setLocaleState(newLocale)\n }\n\n return {\n setLocale,\n locale,\n updateLocale\n }\n}","import \"./styles/tailwind.css\";\nimport \"./styles/index.css\";\nimport React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport {BrowserRouter} from \"react-router-dom\";\nimport {Web3ReactProvider} from \"@web3-react/core\";\nimport {App} from \"./App\";\nimport {getLibrary} from \"./wallet\";\n\nconst baseUrl = document.getElementsByTagName(\"base\")[0].getAttribute(\"href\");\nconst rootElement = document.getElementById(\"root\");\n\nReactDOM.render(\n \n \n \n \n ,\n rootElement\n);\n"],"sourceRoot":""}