{"version":3,"sources":["logo.svg","components/button/Button.js","components/question/Question.js","components/abis/abi.js","pages/index/Index.js","App.js","reportWebVitals.js","index.js"],"names":["Button","props","className","disabled","children","Teams","convertToWei","amount","convertToBNB","Question","useState","setAmount","hasBetted","setHasBetted","hasEnded","setHasEnded","setWinTeam","rewardClaimed","setRewardClaimed","playerWon","setPlayerWon","isLoading","setIsLoading","firstTeamBetAmount","setFirstTeamBetAmount","secondTeamBetAmount","setSecondTeamBetAmount","contract","web3","eth","Contract","contractABI","contractAddress","updateBettingStatus","methods","getHasEnded","call","then","result","getPlayerBetted","selectedAccount","getWinTeam","getPlayerWon","getPlayerClaimedReward","getTotalBetOne","getTotalBetTwo","balance","optionClicked","team","bet","send","from","value","extraCallback","error","claimReward","title","onClick","type","onChange","event","target","placeholder","style","marginRight","firstTeamAnswer","secondTeamAnswer","href","CONTRACT_ABI","Questions","Index","setWeb3","setSelectedAccount","setBalance","updateBalance","web3Provider","account","web3Local","getBalance","err","console","log","utils","fromWei","provider","window","ethereum","Web3","request","method","accounts","catch","on","Math","round","toFixed","map","question","index","App","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","ReactDOM","render","StrictMode","document","getElementById"],"mappings":"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","file":"static/js/main.30c3b9b0.chunk.js","sourcesContent":["export default __webpack_public_path__ + \"static/media/logo.6ce24c58.svg\";","import React from 'react';\nimport './button.css';\n\nexport default function Button(props) {\n return (\n \n )\n}","import React, { useState } from 'react';\nimport Button from '../button/Button';\nimport './question.css';\n\nconst Teams = {\n FIRST_TEAM: 1,\n SECOND_TEAM: 2,\n};\n\nconst convertToWei = (amount) => {\n return amount * (10 ** 18);\n};\n\nconst convertToBNB = (amount) => {\n return amount / (10 ** 18);\n}\n\nexport default function Question(props) {\n const [amount, setAmount] = useState(0);\n const [hasBetted, setHasBetted] = useState(null);\n const [hasEnded, setHasEnded] = useState(null);\n const [winTeam, setWinTeam] = useState(null);\n const [rewardClaimed, setRewardClaimed] = useState(null);\n const [playerWon, setPlayerWon] = useState(null);\n const [isLoading, setIsLoading] = useState(false);\n const [firstTeamBetAmount, setFirstTeamBetAmount] = useState(0);\n const [secondTeamBetAmount, setSecondTeamBetAmount] = useState(0);\n\n const contract = props.web3 && new props.web3.eth.Contract(\n props.contractABI,\n props.contractAddress,\n );\n\n const optionPicked = (callback) => {\n callback(amount);\n };\n\n const updateBettingStatus = () => {\n contract.methods.getHasEnded().call().then((result) => {\n setHasEnded(result);\n });\n\n contract.methods.getPlayerBetted(props.selectedAccount).call().then((result) => {\n setHasBetted(result);\n });\n\n contract.methods.getWinTeam().call().then((result) => {\n setWinTeam(result);\n });\n\n contract.methods.getPlayerWon(props.selectedAccount).call().then((result) => {\n setPlayerWon(result);\n });\n\n contract.methods.getPlayerClaimedReward(props.selectedAccount).call().then((result) => {\n setRewardClaimed(result);\n });\n\n contract.methods.getTotalBetOne().call().then((result) => {\n setFirstTeamBetAmount(result);\n });\n\n contract.methods.getTotalBetTwo().call().then((result) => {\n setSecondTeamBetAmount(result);\n });\n };\n\n useState(() => {\n updateBettingStatus();\n }, []);\n\n useState(() => {\n updateBettingStatus();\n }, [props.balance]);\n\n const optionClicked = (team) => {\n setIsLoading(true);\n try {\n contract.methods.bet(team).send({\n from: props.selectedAccount,\n value: convertToWei(amount)\n }).then(() => {\n updateBettingStatus();\n if (props.extraCallback) {\n props.extraCallback();\n }\n setIsLoading(false);\n });\n } catch (error) {\n setIsLoading(false);\n }\n }\n\n const claimReward = () => {\n setIsLoading(true);\n try {\n contract.methods.claimReward().send({ from: props.selectedAccount }).then(() => {\n updateBettingStatus();\n if (props.extraCallback) {\n props.extraCallback();\n }\n setIsLoading(false);\n });\n } catch (error) {\n setIsLoading(false);\n }\n }\n\n const getButtonJSX = () => {\n if (hasEnded == null) {\n return null;\n }\n if (hasEnded) {\n return (\n <>\n

\n Bet has ended. \n You {\n playerWon \n ? 'won'\n : 'lost'\n }!\n \n

\n {\n playerWon &&\n <>\n {\n isLoading &&\n

Loading, please wait...

\n }\n \n \n }\n \n );\n }\n if (hasBetted) {\n return (\n

\n You already bet on this one! Check back later to see if you won or lost.\n

\n );\n }\n return (\n <>\n setAmount(event.target.value)} placeholder='Amount to bet (in BNB)' />\n {\n isLoading &&\n

Loading, please wait...

\n }\n
\n \n \n
\n \n )\n };\n\n return (\n
\n

\n {props.title}\n

\n {getButtonJSX()}\n

\n Bet contract URL: {props.contractAddress}\n

\n
\n

Total bet YES: {convertToBNB(firstTeamBetAmount)} BNB

\n

Total bet NO: {convertToBNB(secondTeamBetAmount)} BNB

\n
\n
\n );\n}","export const CONTRACT_ABI = [{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_minimumBet\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_teamSelected\",\"type\":\"uint256\"}],\"name\":\"bet\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claimReward\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"winTeam\",\"type\":\"uint256\"}],\"name\":\"endBetting\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getHasEnded\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"player\",\"type\":\"address\"}],\"name\":\"getPlayerBetted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"player\",\"type\":\"address\"}],\"name\":\"getPlayerClaimedReward\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"player\",\"type\":\"address\"}],\"name\":\"getPlayerWon\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTotalBetOne\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTotalBetTwo\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getWinTeam\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minimumBet\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"numberOfBets\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"playerInfo\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountBet\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"teamSelected\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"betted\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"claimed\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalBetOne\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalBetTwo\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}];","import React, { useEffect, useCallback, useState } from 'react';\nimport './index.css';\nimport Button from '../../components/button/Button';\nimport Web3 from 'web3';\nimport Question from '../../components/question/Question';\nimport { CONTRACT_ABI } from '../../components/abis/abi';\n\nconst Questions = [\n {\n title: 'Will FutureCoin launch any project in the next 12 months?',\n firstTeamAnswer: 'Yes',\n secondTeamAnswer: 'No',\n contractAddress: '0xcb1A37C7038ba82D944dFd1E0aeE0813f1Dff6B3',\n contractABI: CONTRACT_ABI,\n },\n {\n title: 'Will FutureCoin enlist on any exchange in the next 3 months?',\n firstTeamAnswer: 'Yes',\n secondTeamAnswer: 'No',\n contractAddress: '0xda53B3752ba9F8E2Cde03da6BF889D8CdE0CD6a1',\n contractABI: CONTRACT_ABI,\n },\n {\n title: 'Will FutureCoin reach $2/FUTURE in the next 2 years?',\n firstTeamAnswer: 'Yes',\n secondTeamAnswer: 'No',\n contractAddress: '0x2246497C825D58845B82Ab6Ebaf4f2B15aD0a225',\n contractABI: CONTRACT_ABI,\n },\n {\n title: 'Will FutureCoin launch TRADELINK (our blockchain) in the next 2 years?',\n firstTeamAnswer: 'Yes',\n secondTeamAnswer: 'No',\n contractAddress: '0xD55480f9Ff9f29740CD66046Cb67636A9321f576',\n contractABI: CONTRACT_ABI,\n },\n];\n\nexport default function Index() {\n const [web3, setWeb3] = useState(null);\n const [selectedAccount, setSelectedAccount] = useState(null);\n const [balance, setBalance] = useState(null);\n\n const connectWallet = () => {\n let provider = window.ethereum;\n\n if (typeof provider !== 'undefined') {\n // MetaMask is installed\n const web3Provider = new Web3(provider);\n\n provider.request({ method: 'eth_requestAccounts' })\n .then((accounts) => { \n setSelectedAccount(accounts[0]);\n updateBalance(web3Provider, accounts[0]);\n })\n .catch((err) => { \n console.error(err);\n });\n \n window.ethereum.on('accountsChanged', (accounts) => {\n setSelectedAccount(accounts[0]);\n updateBalance(web3Provider, accounts[0]);\n });\n\n setWeb3(web3Provider);\n }\n };\n\n const updateBalance = (web3Provider, account) => {\n const web3Local = web3Provider || web3 || null;\n web3Local.eth.getBalance(account || selectedAccount, (err, result) => {\n if (err) {\n console.log(err)\n } else {\n setBalance(web3Local.utils.fromWei(result, \"ether\"))\n }\n }) \n }\n\n const isWalletConnected = () => {\n return web3 !== null;\n };\n\n const getQuestionsJSX = () => {\n return (\n <>\n {\n Questions.map((question, index) => {\n return (\n
\n
\n \n
\n );\n })\n }\n \n );\n }\n\n console.log(balance);\n\n return (\n
\n
\n {\n !isWalletConnected()\n ? \n :
\n Conneted as {selectedAccount}\n Balance: {(Math.round(balance * 1000000) / 1000000).toFixed(6) + ' BNB'}\n
\n }\n
\n

Welcome!

\n

We created this to give the people who don't believe in FutureCoin the ability to short us.

\n

Connect your wallet (MetaMask) to see the bets and the pots.

\n

Make sure you're conneted to Binance Smart Chain.

\n

Place the BNB amount you want to bet in the inputs below. Then pick YES or NO, and click the button.

\n

If you're using a mobile device, make sure you connect from the MetaMask browser.

\n

Minimum bet is 0.01 BNB.

\n
\n
\n {\n web3 && selectedAccount && balance &&\n <>\n

Available bets

\n {getQuestionsJSX()}\n \n }\n
\n
\n
\n );\n}","import logo from './logo.svg';\nimport Index from './pages/index/Index';\n\nfunction App() {\n return (\n \n );\n}\n\nexport default App;\n","const reportWebVitals = onPerfEntry => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport App from './App';\nimport reportWebVitals from './reportWebVitals';\n\nReactDOM.render(\n \n \n ,\n document.getElementById('root')\n);\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals();\n"],"sourceRoot":""}