{"version":3,"sources":["config.ts","utilities/web3.tsx","contexts/Metamask.tsx","hooks/useSwitch.ts","components/ProgressBar.tsx","configs/font.ts","configs/colors.ts","components/Spinner.tsx","components/Button.tsx","utilities/utils.ts","configs/contract.ts","assets/Logo.png","components/navBar.tsx","helpers/web3.ts","helpers/contracts.ts","configs/airtable.ts","components/TermsModal.tsx","pages/ClaimTokens.tsx","hooks/useInput.ts","components/admin/AddAdmin.tsx","utilities/validate.ts","components/admin/AddUser.tsx","components/admin/Withdraw.tsx","components/admin/Revoke.tsx","components/admin/Pause.tsx","components/admin/tab.tsx","pages/Admin.tsx","assets/metamask.png","pages/MetamaskAuth.tsx","pages/MetamaskNotAvailable.tsx","App.tsx","utilities/getContract.ts","contexts/Contract.tsx","index.tsx"],"names":["allowedChains","id","name","rpcUrl","ContractAddress","Vesting_General","Vesting_Seed","Vesting_New","Token","contracts","abi","ChumbiVestingABI","address","ChumbiTokenABI","Web3Instance","Service","instance","a","this","window","ethereum","enable","Web3","givenProvider","getWeb3","Container","get","getAccounts","web3","eth","getBalance","utils","fromWei","getNetworkId","net","getId","getAccountInformation","accounts","balance","console","error","code","toast","checkIsBsc","preferred_chain_id","networkId","Metamask","createContext","user","primaryAccount","connect","disconnect","useMetamask","useContext","MetamaskProvider","props","useState","setAccounts","setBalance","data","useEffect","on","location","reload","wallet","Provider","value","children","useSwitch","initalState","setValue","off","toggle","set","true","false","ProgressBar","classes","useStyles","progress","colorStyle","backgroundColor","fillColor","boxShadow","bgColor","className","bar","style","makeStyles","theme","createStyles","width","height","border","borderRadius","transition","breakpoints","down","font","primary","bungeeRegular","sairaRegular","sairaBold","sairaSemiBold","poppinsBoldItalic","poppinsSemiBoldItalic","poppinsRegular","poppinsExtraLightItalic","poppinsItalic","sourceSansProSemiBold","sourceSansProRegular","fontSize","sm","m","l","xl","xxl","fontWeight","small","regular","bold","extraBold","colors","borderPrimary","btnPrimary","bgPrimary","textWhite","bgWhite","textDarkgrey","bgLightgreen","textLightgreen","textBlue","bgPalegreen","bgGrey","bgDarkgreen","borderDarkgreen","borderGrey","textDarkgreen","borderCard","bgTransparent","cardBg","transparent","inputBackground","white","textPrimary","textSecondary","textTertiary","success","black","grey","lightGrey","Spinner","Button","invert","invertedButton","button","onClick","disabled","loading","text","color","fontFamily","letterSpacing","lineHeight","textTransform","padding","display","alignItems","cursor","background","stringToDate","dateString","Date","toUnixTimestamp","date","Math","floor","getTime","fromNow","moment","unixTimestamp","__ChumbiVestingABI","ChumbiABI","_ChumbiABI","ChumbiAddress","Navbar","metamask","connectedToBSC","checkConnection","isConnectedToBSC","addTokenToWallet","request","method","params","type","options","symbol","decimals","image","log","chainId","Number","toString","nav","logoContainer","src","Logo","alt","logo","switchButton","link","href","rel","target","Typography","walletAddress","substr","length","marginRight","justifyContent","margin","marginBottom","gap","flexDirection","list","stakeChmbButton","outline","textDecoration","transform","_instance","Contracts","_instances","ContractInstances","forEach","contract","Contract","find","c","getAirtableInstance","airtable","apiKey","process","base","chumbiTermsAgreedBase","create","fields","hasAgreed","chumbiTermsAgreedCheck","select","filterByFormula","firstPage","records","position","top","left","p","maxWidth","buttonStyle","TermsModal","open","handleClose","handleAgree","Modal","onClose","disableEnforceFocus","Box","sx","variant","component","Link","ClaimTokens","showTermsModal","setShowTermsModal","isAlreadyAgreed","setIsAlreadyAgreed","selectedVesting","setSelectedVesting","totalAmount","amountClaimed","unlockAmount","vestAmount","claimableAmount","endTime","paused","claim","setClaim","isTransactionInProgress","fetchClaim","instances","VestingContract","methods","account","getClaim","call","from","setNetwork","claimInterval","setInterval","clearInterval","then","isAgreed","claimChumbi","callableNFT","send","parseFloat","claimableProgress","claimedProgress","status","round","now","isDisabled","isActive","root","_","reason","CssBaseline","content","card","header","title","defaultValue","onChange","e","inputGroup","label","desc","toLocaleString","replace","colSpan","timeLeft","marginLeft","flexGrow","spacing","marginTop","maWidth","boxSizing","textAlign","paddingRight","useInput","reset","AddAdmin","adminWalletAddress","isActiveAdmin","VestingContext","timeout","onWalletAddressChange","clearTimeout","setTimeout","callableIsAdmin","isAdmin","addAdmin","setAdmin","estimateGas","block","flexDirectionColumn","inputRow","input","clsx","isAdminButton","green","red","isAdminButtonText","borderColor","validateAmount","amount","info","parseInt","AddUser","startDate","endDate","unlockTime","addUser","UNIXStartDate","UNIXEndDate","UNIXUnlockDate","_approveAmount","BN","mul","pow","_vestAmount","_unlockAmount","allowance","gt","approve","createClaim","Withdraw","_amount","BigInt","withdrawTokens","Revoke","revoke","Pause","isClaimPaused","fetchClaimPaused","claimPaused","pauseUnpauseClaim","unpause","pause","visibility","BLOCK","React","TabItem","tabListItem","active","tab","animation","to","Tab","stage","setStage","navBarOptions","selected","cardContent","map","item","i","Admin","minHeight","overlay","zIndex","backdropFilter","overflowX","MetamaskAuth","overlayDetails","metamaskLogo","alertDetail","up","MetamaskNotAvailable","App","path","ContractsInstance","_ChumbiVesting","_ChumbiToken","Error","ChumbiVesting","undefined","ChumbiToken","ContractProvider","ChumbiContract","setChumbiContract","ChumbiTokenContract","setChumbiTokenContract","load","useCallback","ChumbiVestingContract","configure","ReactDOM","render","StrictMode","document","getElementById"],"mappings":"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","file":"static/js/main.eafa940c.chunk.js","sourcesContent":["import ChumbiVestingABI from \"contracts/ChumbiVesting.json\";\nimport ChumbiTokenABI from \"contracts/ChumbiToken.json\";\n\nimport { ChumbiVesting } from \"types/ChumbiVesting\";\nimport { ChumbiToken } from \"types/ChumbiToken\";\nimport { AllowedChainConfig, ContractConfig } from \"types/config\";\n\nexport const allowedChains: AllowedChainConfig[] = [\n // {\n // \tid: 97,\n // \tname: 'BSC Testnet',\n // \trpcUrl: 'https://data-seed-prebsc-1-s1.binance.org:8545/',\n // },\n {\n id: 56,\n name: \"BSC Mainnet\",\n rpcUrl: \"https://bsc-dataseed.binance.org/\",\n },\n];\n\nexport const ContractAddress = {\n Vesting_General: \"0x389D1e034E72B46e062133Ac30ca9FeeABb031Ad\",\n Vesting_Seed: \"0x1A0a045518983F1fcb7a67EAeDD0d0015D8c687f\",\n Vesting_New: \"0xA124CD5B0Db95D90C2BA8f799FecaA6A13738583\",\n Token: \"0x5492Ef6aEebA1A3896357359eF039a8B11621b45\",\n};\n\nexport const contracts: ContractConfig[] = [\n {\n name: \"Vesting_General\",\n abi: ChumbiVestingABI.abi,\n address: ContractAddress.Vesting_General,\n },\n {\n name: \"Vesting_Seed\",\n abi: ChumbiVestingABI.abi,\n address: ContractAddress.Vesting_Seed,\n },\n {\n name: \"Vesting_New\",\n abi: ChumbiVestingABI.abi,\n address: ContractAddress.Vesting_New,\n },\n {\n name: \"Token\",\n abi: ChumbiTokenABI.abi,\n address: ContractAddress.Token,\n },\n];\n\nexport interface ContractInstances {\n Vesting_General: ChumbiVesting;\n Vesting_Seed: ChumbiVesting;\n Vesting_New: ChumbiVesting;\n Token: ChumbiToken;\n}\n","import Container, { Service } from 'typedi';\nimport Web3 from 'web3';\nimport { toast } from 'react-toastify';\n\n@Service()\nexport class Web3Instance {\n private instance: Web3 | null = null;\n\n async getWeb3(): Promise {\n if (this.instance === null) {\n try {\n await window.ethereum.enable();\n this.instance = new Web3(Web3.givenProvider || 'http://localhost:8545');\n } catch (error) {\n throw error;\n }\n }\n return this.instance;\n }\n}\n\nexport async function getWeb3(): Promise {\n return Container.get(Web3Instance).getWeb3();\n}\n\nexport async function getAccounts() {\n const web3 = await getWeb3();\n return web3.eth.getAccounts();\n}\n\nexport async function getBalance(address: string) {\n const web3 = await getWeb3();\n return web3.utils.fromWei(await web3.eth.getBalance(address));\n}\n\nexport async function getNetworkId() {\n const web3 = await getWeb3();\n return web3.eth.net.getId();\n}\n\nexport async function getAccountInformation() {\n let accounts: string[] = [];\n let balance = '0';\n try {\n accounts = await getAccounts();\n balance = await getBalance(accounts[0]);\n } catch (err: any) {\n console.error(err);\n if (err?.code === 4001) {\n toast.error('Please connect wallet to continue');\n }\n }\n return { accounts, balance };\n}\n","import { allowedChains } from 'config';\nimport { useEffect } from 'react';\nimport { useState, createContext, useContext } from 'react';\nimport { getNetworkId, getAccountInformation } from '../utilities/web3';\n\ninterface MetamaskContext {\n\tuser: {\n\t\taccounts: string[];\n\t\tbalance: string | undefined;\n\t\tprimaryAccount: string;\n\t};\n\tconnect: () => void;\n\tdisconnect: () => void;\n\tcheckIsBsc: () => Promise;\n}\n\ninterface MetamaskProviderProps {\n\tchildren: JSX.Element;\n}\n\nconst checkIsBsc = async () => {\n\tconst preferred_chain_id = allowedChains[0].id;\n\tconst networkId = await getNetworkId();\n\treturn networkId === preferred_chain_id;\n};\n\nconst Metamask = createContext({\n\tuser: {\n\t\taccounts: [],\n\t\tbalance: '0',\n\t\tprimaryAccount: '',\n\t},\n\tconnect: () => {},\n\tdisconnect: () => {},\n\tcheckIsBsc,\n});\n\nconst MetamaskProvider = (props: MetamaskProviderProps) => {\n\tconst [accounts, setAccounts] = useState([]);\n\tconst [balance, setBalance] = useState();\n\n\tasync function connect() {\n\t\tconst data = await getAccountInformation();\n\t\tsetAccounts(data?.accounts);\n\t\tsetBalance(data?.balance);\n\t}\n\n\tconst disconnect = () => {\n\t\tsetAccounts([]);\n\t\tsetBalance('');\n\t};\n\n\tuseEffect(() => {\n\t\tconst { ethereum } = window as any;\n\t\tethereum.on('chainChanged', () => window.location.reload());\n\t\tethereum.on('accountsChanged', () => window.location.reload());\n\t}, []);\n\n\tconst wallet = {\n\t\tuser: { accounts, primaryAccount: accounts[0], balance },\n\t\tconnect,\n\t\tdisconnect,\n\t\tcheckIsBsc,\n\t};\n\treturn {props.children};\n};\n\nexport const useMetamask = () => {\n\treturn useContext(Metamask);\n};\n\nexport default MetamaskProvider;\n","import { useState } from \"react\";\n\nexport default function useSwitch(initalState: boolean = false) {\n const [value, setValue] = useState(initalState);\n const on = () => setValue(true);\n const off = () => setValue(false);\n const toggle = () => setValue((value) => !value);\n const set = (value: boolean) => setValue(value);\n return { value, true: on, false: off, toggle, set };\n}\n","import { makeStyles, Theme, createStyles } from '@material-ui/core/styles';\n\ninterface ProgressBarProps {\n bgColor: string;\n fillColor: string;\n progress: number;\n}\n\nexport default function ProgressBar(props: ProgressBarProps) {\n const classes = useStyles();\n const progress = 350 - props.progress * 3.5;\n const colorStyle = {\n backgroundColor: props.fillColor,\n boxShadow: `inset -${progress}px 0px 0px ${props.bgColor}`\n };\n if (progress === 350) {\n colorStyle.boxShadow = `inset -${progress + 50}px 0px 0px ${props.bgColor}`;\n }\n return
;\n}\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n bar: {\n width: '360px',\n height: '28px',\n border: '1px solid #000000',\n borderRadius: '50px',\n transition: 'box-shadow 0.8s ease-in-out',\n [theme.breakpoints.down('sm')]: {\n width: '250px'\n },\n [theme.breakpoints.down('xs')]: {\n width: '100%'\n }\n }\n })\n);\n","const font = {\n primary: 'Nunito, sans-serif',\n bungeeRegular: 'Bungee-Regular',\n sairaRegular: 'Saira-Regular',\n sairaBold: 'Saira-Bold',\n sairaSemiBold: 'Saira-SemiBold',\n poppinsBoldItalic: 'Poppins-BoldItalic',\n poppinsSemiBoldItalic: 'Poppins-SemiBoldItalic',\n poppinsRegular: 'Poppins-Regular',\n poppinsExtraLightItalic: 'Poppins-ExtraLightItalic',\n poppinsItalic: 'Poppins-Italic',\n sourceSansProSemiBold: 'SourceSansPro-SemiBold',\n sourceSansProRegular: 'SourceSansPro-Regular',\n fontSize: {\n sm: '13px',\n m: '20px',\n l: '36px',\n xl: '40px',\n xxl: '48px'\n },\n fontWeight: {\n small: '200',\n regular: 400,\n bold: 500,\n extraBold: 900\n }\n};\n\nexport default font;\n","const colors = {\n borderPrimary: '#005766',\n btnPrimary: '#67A65E',\n bgPrimary: 'rgba(103, 166, 94, 1)',\n textWhite: '#ffffff',\n bgWhite: '#ffffff',\n textDarkgrey: '#8E8E8E',\n bgLightgreen: '#c2d9e6',\n textLightgreen: '#c2d9e6',\n textBlue: '#008eb0',\n bgPalegreen: '#e7faff',\n bgGrey: '#f6f6f6',\n bgDarkgreen: '#008eb0',\n borderDarkgreen: '#008eb0',\n borderGrey: '#272727',\n textDarkgreen: '#008eb0',\n borderCard: '#c4c4c4',\n bgTransparent: 'transparent',\n cardBg: '#032422',\n\n primary: '#121212',\n transparent: 'rgba(0,0,0,0)',\n inputBackground: '#FFFFFF',\n white: '#FFFFFF',\n textPrimary: '#E6947E',\n textSecondary: '#65656B',\n textTertiary: '#A7A7A7',\n success: '#28a745',\n error: '#dc3545',\n black: '#000',\n //darkgrey: '#8E8E8E',\n grey: '#2E2E2E',\n lightGrey: '#AEAEAE',\n border: '#272727'\n};\n\nexport default colors;\n","import \"../styles/Spinner.css\";\nexport default function Spinner() {\n return
;\n}\n","import { makeStyles, createStyles } from \"@material-ui/core/styles\";\n\n// configs\nimport font from \"../configs/font\";\nimport colors from \"../configs/colors\";\nimport Spinner from \"./Spinner\";\n\ninterface ButtonProps {\n text: string;\n className?: any;\n onClick: () => void;\n loading?: boolean;\n invert?: boolean;\n disabled?: boolean;\n}\n\nexport default function Button(props: ButtonProps) {\n const classes = useStyles();\n return (\n \n {props.loading && }\n {props.text}\n \n );\n}\n\nconst useStyles = makeStyles(() =>\n createStyles({\n button: {\n color: \"#fff\",\n backgroundColor: colors.btnPrimary,\n fontFamily: font.primary,\n fontSize: \"18px\",\n letterSpacing: \"0.15em\",\n lineHeight: \"32px\",\n textTransform: \"uppercase\",\n border: \"none\",\n padding: \"5px 20px\",\n borderRadius: 50,\n display: \"flex\",\n alignItems: \"center\",\n cursor: \"pointer\",\n \"&:disabled\": {\n cursor: \"not-allowed\",\n },\n \"&:hover\": {\n background: colors.btnPrimary,\n },\n },\n invertedButton: {\n backgroundColor: colors.lightGrey,\n color: colors.textDarkgrey,\n border: `1px solid ${colors.borderPrimary}`,\n fontFamily: font.primary,\n fontSize: \"14.6px\",\n letterSpacing: \"0.15em\",\n lineHeight: \"32px\",\n textTransform: \"uppercase\",\n padding: \"0px 10px\",\n borderRadius: 5,\n display: \"flex\",\n alignItems: \"center\",\n cursor: \"pointer\",\n \"&:disabled\": {\n cursor: \"not-allowed\",\n },\n },\n })\n);\n","import moment from \"moment\";\n\n// convert string to date\nexport function stringToDate(dateString: string): Date {\n return new Date(dateString);\n}\n\n// convert date to unix timestamp\nexport function toUnixTimestamp(date: Date) {\n return Math.floor(date.getTime() / 1000);\n}\n\n// convert unix timestamp to date\nexport function fromUnixTimestamp(unixTimestamp: number) {\n return new Date(unixTimestamp * 1000);\n}\n\n// moment fromNow implemenation\nexport function fromNow(date: number) {\n return moment(fromUnixTimestamp(date)).fromNow(true);\n}\n","import { abi as __ChumbiVestingABI } from \"../contracts/ChumbiVesting.json\";\nimport { abi as _ChumbiABI } from \"../contracts/ChumbiToken.json\";\n\nexport const ChumbiVestingABI = __ChumbiVestingABI;\nexport const ChumbiVestingAddress =\n \"0xAD190C1924D625E6a5d8620918f856Cbc1515523\";\nexport const ChumbiABI = _ChumbiABI;\nexport const ChumbiAddress = \"0x59A1e03a44d7e9b1CCd18CFC282b5ACFb720c979\";\n","export default __webpack_public_path__ + \"static/media/Logo.ddb781aa.png\";","// hooks\nimport { useMetamask } from '../contexts/Metamask';\n\nimport { makeStyles, Theme, createStyles } from '@material-ui/core/styles';\nimport { Typography } from '@material-ui/core';\nimport { toast } from 'react-toastify';\n\n// configs\nimport colors from '../configs/colors';\nimport font from '../configs/font';\nimport { ChumbiAddress } from '../configs/contract';\n\n// assets\nimport Logo from '../assets/Logo.png';\nimport useSwitch from '../hooks/useSwitch';\nimport { useEffect } from 'react';\nimport { allowedChains } from 'config';\n\nexport default function Navbar() {\n\tconst classes = useStyles();\n\tconst metamask = useMetamask();\n\n\tconst connectedToBSC = useSwitch(true);\n\n\tuseEffect(() => {\n\t\tconst checkConnection = async () => {\n\t\t\tconst isConnectedToBSC = await metamask.checkIsBsc();\n\t\t\tconnectedToBSC.set(isConnectedToBSC);\n\t\t};\n\t\tcheckConnection();\n\t}, []);\n\n\tconst addTokenToWallet = async () => {\n\t\tconst isConnectedToPolygon = await metamask.checkIsBsc();\n\t\tif (!isConnectedToPolygon) {\n\t\t\ttoast.error('Please connect to the Bsc Chain');\n\t\t\treturn;\n\t\t}\n\n\t\tlet tokenAddress = ChumbiAddress;\n\n\t\ttry {\n\t\t\tawait (window as any).ethereum.request({\n\t\t\t\tmethod: 'wallet_watchAsset',\n\t\t\t\tparams: {\n\t\t\t\t\ttype: 'ERC20',\n\t\t\t\t\toptions: {\n\t\t\t\t\t\taddress: tokenAddress,\n\t\t\t\t\t\tsymbol: 'CHMB',\n\t\t\t\t\t\tdecimals: 18,\n\t\t\t\t\t\timage: 'https://chumbivalley.com/token.png',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t});\n\t\t} catch (error) {\n\t\t\tconsole.log(error);\n\t\t}\n\t};\n\n\tasync function checkNetwork() {\n\t\tif (!window.ethereum) return;\n\t\ttry {\n\t\t\tconst res = await window.ethereum.request({\n\t\t\t\tmethod: 'wallet_switchEthereumChain',\n\t\t\t\tparams: [\n\t\t\t\t\t{\n\t\t\t\t\t\tchainId: `0x${Number(allowedChains[0].id).toString(16)}`,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t});\n\t\t} catch (error: any) {\n\t\t\tif (error.code === 4902) {\n\t\t\t\ttry {\n\t\t\t\t\tawait window.ethereum.request({\n\t\t\t\t\t\tmethod: 'wallet_addEthereumChain',\n\t\t\t\t\t\tparams: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tchainId: `0x${Number(allowedChains[0].id).toString(16)}`,\n\t\t\t\t\t\t\t\trpcUrl: allowedChains[0].rpcUrl,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t});\n\t\t\t\t} catch (addError) {\n\t\t\t\t\tconsole.error(addError);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn (\n\t\t\n\t);\n}\n\nconst useStyles = makeStyles((theme: Theme) =>\n\tcreateStyles({\n\t\tlogoContainer: {\n\t\t\tmarginRight: 'auto',\n\t\t\tdisplay: 'flex',\n\t\t\talignItems: 'center',\n\t\t\tjustifyContent: 'center',\n\t\t\t[theme.breakpoints.down(1000)]: {\n\t\t\t\tmargin: '0',\n\t\t\t\tmarginBottom: '10px',\n\t\t\t},\n\t\t},\n\t\tlogo: {\n\t\t\theight: 89,\n\t\t},\n\n\t\tnav: {\n\t\t\twidth: '100vw',\n\t\t\tdisplay: 'flex',\n\t\t\talignItems: 'center',\n\t\t\tpadding: '30px 40px',\n\t\t\tgap: '10px',\n\t\t\t[theme.breakpoints.down(1000)]: {\n\t\t\t\tflexDirection: 'column',\n\t\t\t\tgap: '12px',\n\t\t\t\talignItems: 'center',\n\t\t\t\tjustifyContent: 'center',\n\t\t\t\tmarginRight: '0px',\n\t\t\t\tmarginBottom: '40px',\n\t\t\t},\n\t\t},\n\t\tlist: {\n\t\t\tdisplay: 'flex',\n\t\t\talignItems: 'center',\n\n\t\t\t[theme.breakpoints.down('sm')]: {\n\t\t\t\tflexDirection: 'column',\n\t\t\t},\n\t\t},\n\t\twalletAddress: {\n\t\t\tcolor: colors.white,\n\t\t\tborder: `2px solid ${colors.bgPrimary}`,\n\t\t\tdisplay: 'flex',\n\t\t\tjustifyContent: 'center',\n\t\t\talignItems: 'center',\n\t\t\tpadding: '0.4rem 1rem',\n\n\t\t\tborderRadius: '.5rem',\n\t\t\tmarginRight: '10px',\n\t\t\tfontSize: '20px',\n\t\t\t[theme.breakpoints.down('md')]: {\n\t\t\t\tmarginRight: '0px',\n\t\t\t},\n\t\t},\n\n\t\tstakeChmbButton: {\n\t\t\tborder: 'none',\n\t\t\toutline: 'none',\n\t\t\tcolor: colors.textWhite,\n\t\t\tbackgroundColor: 'grey',\n\t\t\tfontFamily: font.primary,\n\t\t\tdisplay: 'flex',\n\t\t\tjustifyContent: 'center',\n\t\t\talignItems: 'center',\n\t\t\tpadding: '0.5rem 1rem',\n\t\t\tborderRadius: '.5rem',\n\t\t\tmarginRight: '20px',\n\t\t\tcursor: 'pointer',\n\t\t\ttextDecoration: 'none',\n\t\t\tfontSize: '20px',\n\t\t\ttransition: 'all 0.2s linear',\n\n\t\t\t[theme.breakpoints.down(1000)]: {\n\t\t\t\tmarginRight: '0px',\n\t\t\t},\n\t\t},\n\t\tbutton: {\n\t\t\tborder: 'none',\n\t\t\toutline: 'none',\n\t\t\tcolor: colors.textWhite,\n\t\t\tbackgroundColor: colors.bgPrimary,\n\t\t\tfontFamily: font.primary,\n\t\t\tdisplay: 'flex',\n\t\t\tjustifyContent: 'center',\n\t\t\talignItems: 'center',\n\t\t\tpadding: '0.5rem 1rem',\n\t\t\tborderRadius: '.5rem',\n\t\t\tmarginRight: '20px',\n\t\t\tcursor: 'pointer',\n\t\t\ttextDecoration: 'none',\n\t\t\tfontSize: '20px',\n\t\t\ttransition: 'all 0.2s linear',\n\t\t\t'&:hover': {\n\t\t\t\ttransform: 'scale(1.1)',\n\t\t\t},\n\t\t\t[theme.breakpoints.down(1000)]: {\n\t\t\t\tmarginRight: '0px',\n\t\t\t},\n\t\t},\n\t\tlink: {\n\t\t\tborder: 'none',\n\t\t\toutline: 'none',\n\t\t\tcursor: 'pointer',\n\t\t\ttextDecoration: 'none',\n\t\t\tcolor: colors.textWhite,\n\t\t},\n\t\tswitchButton: {\n\t\t\tcolor: colors.textWhite,\n\t\t\tbackgroundColor: colors.bgPrimary,\n\t\t\tfontFamily: font.primary,\n\t\t\tdisplay: 'flex',\n\t\t\tjustifyContent: 'center',\n\t\t\talignItems: 'center',\n\t\t\tpadding: '0.5rem 1rem',\n\t\t\tborderRadius: '.5rem',\n\t\t\tmarginRight: '20px',\n\t\t\tfontSize: '20px',\n\t\t\tborder: 'none',\n\t\t\toutline: 'none',\n\t\t\tcursor: 'pointer',\n\t\t\ttransition: 'all 0.2s linear',\n\t\t\t'&:hover': {\n\t\t\t\ttransform: 'scale(1.1)',\n\t\t\t},\n\t\t\t[theme.breakpoints.down('md')]: {\n\t\t\t\tmarginRight: '0px',\n\t\t\t},\n\t\t},\n\t})\n);\n","import web3 from 'web3';\n\n// fallback url helpful for loading web3 data even if user not connected to metamask\nexport default class Web3 {\n\tprivate static _instance: web3;\n\n\tpublic static get instance() {\n\t\tif (Web3._instance) return Web3._instance;\n\t\tWeb3._instance = new web3(web3.givenProvider);\n\t\treturn Web3._instance;\n\t}\n\n\tpublic static isEnabled() {\n\t\treturn typeof window.ethereum !== 'undefined';\n\t}\n}\n","import { ContractInstances, contracts } from 'config';\nimport Web3 from 'helpers/web3';\n\nexport default class Contracts {\n\tprivate static _instances: ContractInstances;\n\n\tpublic static get instances(): ContractInstances {\n\t\tif (Contracts._instances) return Contracts._instances;\n\n\t\tconst web3 = Web3.instance;\n\t\tconst ContractInstances: any = {};\n\t\tcontracts.forEach((contract) => {\n\t\t\tContractInstances[contract.name] = new web3.eth.Contract(\n\t\t\t\tcontract.abi as any,\n\t\t\t\tcontract.address\n\t\t\t);\n\t\t});\n\t\tContracts._instances = ContractInstances;\n\t\treturn Contracts._instances;\n\t}\n\n\tpublic static instanceWithDynamicAddress(\n\t\tname: T,\n\t\taddress: string\n\t) {\n\t\tconst web3 = Web3.instance;\n\t\tconst contract = contracts.find((c) => c.name === name);\n\t\tif (contract) {\n\t\t\tconst ContractInstance = new web3.eth.Contract(\n\t\t\t\tcontract.abi as any,\n\t\t\t\taddress\n\t\t\t) as unknown as ContractInstances[T];\n\n\t\t\treturn ContractInstance;\n\t\t}\n\t}\n\n\t/**\n\t * Manual Override\n\t */\n\tpublic static set instances(value: ContractInstances) {\n\t\tContracts._instances = value;\n\t}\n}\n","import airtable from 'airtable'\n\nconst getAirtableInstance = () => {\n return new airtable({ apiKey: process.env.REACT_APP_AIRTABLE_API_KEY }).base(\n process.env.REACT_APP_AIRTABLE_BASE_ID as string\n )\n}\n\nexport const chumbiTermsAgreedBase = async (address: string) => {\n const base = getAirtableInstance()\n await base('Private vesting investors').create([{\n fields: {\n address,\n hasAgreed: 1,\n }\n }])\n}\n\nexport const chumbiTermsAgreedCheck = async (address: string) => {\n const base = getAirtableInstance()\n const records = await base('Private vesting investors').select({\n filterByFormula: `{address} = '${address}'`,\n }).firstPage()\n return records.length > 0\n}\n","import * as React from 'react';\nimport Box from '@material-ui/core/Box';\nimport Button from '@material-ui/core/Button';\nimport Typography from '@material-ui/core/Typography';\nimport Modal from '@material-ui/core/Modal';\nimport Link from '@material-ui/core/Link';\nimport colors from \"../configs/colors\";\nimport font from \"../configs/font\";\nimport {chumbiTermsAgreedBase} from \"../configs/airtable\";\n\nimport {useMetamask} from \"../contexts/Metamask\";\n\nconst style = {\n position: 'absolute' as 'absolute',\n top: '50%',\n left: '50%',\n transform: 'translate(-50%, -50%)',\n backgroundColor: '#032422',\n boxShadow: 24,\n p: 4,\n color: 'white',\n fontFamily: \"Nunito\",\n borderRadius: \"1.25rem\",\n display: \"flex\",\n flexDirection: \"column\" as \"column\",\n gap: \"1rem\",\n alignItems: 'flex-start',\n maxWidth: \"480px\"\n};\n\nconst buttonStyle = {\n border: \"none\",\n outline: \"none\",\n color: colors.textWhite,\n backgroundColor: colors.bgPrimary,\n fontFamily: font.primary,\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n padding: \"0.5rem 1.5rem\",\n borderRadius: \".5rem\",\n marginRight: \"20px\",\n cursor: \"pointer\",\n textDecoration: \"none\",\n fontSize: \"15px\",\n transition: \"all 0.2s linear\",\n fontWeight: 700,\n \"&:hover\": {\n transform: \"scale(1.1)\",\n },\n};\n\ntype TermsModalProps = {\n open: boolean;\n handleClose: (event: any, reason: string) => void;\n}\n\nexport default function TermsModal({open, handleClose}: TermsModalProps) {\n const {user} = useMetamask();\n const handleAgree = async () => {\n try {\n await chumbiTermsAgreedBase(user.accounts[0]);\n handleClose(null, 'agree');\n } catch (err: any) {\n console.log(err)\n }\n }\n\n return (\n
\n \n \n \n New Vesting Terms\n \n \n By claiming tokens from this portal you are agreeing to Option 1 of the\n new CHMB private investor vesting terms (these are the same terms as\n communicated previously). Please read the terms {\" \"}\n \n here before claiming\n \n \n \n \n
\n );\n}\n","// hooks\nimport { useState, useEffect, ChangeEvent } from \"react\";\nimport { useMetamask } from \"contexts/Metamask\";\nimport useSwitch from \"hooks/useSwitch\";\n\n// libraries\nimport { toast } from \"react-toastify\";\nimport CssBaseline from \"@material-ui/core/CssBaseline\";\nimport { Typography as Text } from \"@material-ui/core\";\nimport { makeStyles, Theme, createStyles } from \"@material-ui/core/styles\";\n\n// components\nimport ProgressBar from \"components/ProgressBar\";\nimport Button from \"components/Button\";\n\n// configs\nimport font from \"configs/font\";\nimport colors from \"configs/colors\";\n\n// helpers\nimport { fromNow } from \"utilities/utils\";\nimport Navbar from \"components/navBar\";\nimport Contracts from \"helpers/contracts\";\nimport TermsModal from \"../components/TermsModal\";\nimport {chumbiTermsAgreedCheck} from \"../configs/airtable\";\n\nexport default function ClaimTokens() {\n const [showTermsModal, setShowTermsModal] = useState(false);\n const [isAlreadyAgreed, setIsAlreadyAgreed] = useState(false);\n\n const classes = useStyles();\n const metamask = useMetamask();\n const isConnectedToBSC = useSwitch(false);\n // const isAvailabilty = useSwitch(true);\n // const isClaimAvailable = useSwitch(false);\n const [selectedVesting, setSelectedVesting] = useState<\n \"General\" | \"Seed\" | \"New\"\n >(\"General\");\n\n const [claim, setClaim] = useState({\n totalAmount: 0,\n amountClaimed: 0,\n unlockAmount: 0,\n vestAmount: 0,\n claimableAmount: 0,\n endTime: null,\n paused: false,\n });\n\n const isTransactionInProgress = useSwitch();\n\n const changeVesting = (e: ChangeEvent) => {\n setSelectedVesting(e.target.value as \"General\" | \"Seed\" | \"New\");\n };\n\n const fetchClaim = async () => {\n const contracts = Contracts.instances;\n const VestingContract = contracts[`Vesting_${selectedVesting}`];\n if (!VestingContract?.methods) {\n return;\n }\n /* console.log(totalAmount - amountClaimed == 0)\n if (totalAmount - amountClaimed == 0) return; */\n const isConnectedToBSC = await metamask.checkIsBsc();\n if (!isConnectedToBSC) {\n toast.error(\"Please connect to the Bsc Chain\");\n isTransactionInProgress.false();\n return;\n }\n\n try {\n const account = metamask.user.primaryAccount;\n\n const claim = await VestingContract.methods\n .getClaim(account)\n .call({ from: account });\n\n const claimableAmount = await VestingContract.methods\n .claimableAmount(account)\n .call({ from: account });\n\n const paused = await VestingContract.methods.paused().call();\n\n setClaim({\n ...claim,\n paused,\n claimableAmount,\n });\n\n\n // if (!isClaimAvailable.value) isClaimAvailable.set(true);\n } catch (err) {\n console.log(err);\n toast.error(\"Could not fetch claim\");\n }\n };\n\n const setNetwork = async () => {\n const isConnected = await metamask.checkIsBsc();\n if (isConnected) {\n isConnectedToBSC.set(true);\n } else {\n toast.error(\"Please connect to the Bsc Chain\");\n }\n };\n\n useEffect(() => {\n if (!isConnectedToBSC.value) return;\n // if (!isAvailabilty.value) return;\n console.log(\"fetching claim\");\n fetchClaim()\n const claimInterval = setInterval(fetchClaim, 3000);\n\n return () => clearInterval(claimInterval);\n }, [isConnectedToBSC.value, selectedVesting]);\n\n useEffect(() => {\n if(selectedVesting === \"New\") {\n if((claim as any)?.vestAmount != \"0\" ) {\n if(!isAlreadyAgreed) {\n console.log(\"calling\")\n const account = metamask.user.primaryAccount;\n chumbiTermsAgreedCheck(account)\n .then((isAgreed) => {\n if(isAgreed) setIsAlreadyAgreed(true);\n if(!isAgreed) setShowTermsModal(true);\n })\n\n }\n }\n }\n\n }, [selectedVesting, claim]);\n\n\n useEffect(() => {\n setNetwork();\n }, []);\n\n // useEffect(() => {\n // \tif (isClaimAvailable.value) {\n // \t\tlet isAmountAvailable = totalAmount - amountClaimed == 0;\n // \t\tif (isAmountAvailable) isAvailabilty.set(false);\n // \t}\n // }, [claim]);\n\n const claimChumbi = async () => {\n const contracts = Contracts.instances;\n const VestingContract = contracts[`Vesting_${selectedVesting}`];\n isTransactionInProgress.true();\n const isConnectedToPolygon = await metamask.checkIsBsc();\n if (!isConnectedToPolygon) {\n toast.error(\"Please connect to the Bsc Chain\");\n isTransactionInProgress.false();\n return;\n }\n\n try {\n const callableNFT = VestingContract?.methods.claim();\n await callableNFT?.send({ from: metamask.user.primaryAccount });\n fetchClaim();\n toast.success(\"Claimed\");\n } catch (err) {\n console.log(err);\n toast.error(\"Could not claim.\");\n }\n isTransactionInProgress.false();\n };\n\n const totalAmount =\n (parseFloat(claim?.vestAmount) + parseFloat(claim?.unlockAmount)) / 1e18;\n const claimableAmount =\n (parseFloat(claim?.claimableAmount) + parseFloat(claim?.amountClaimed)) /\n 1e18;\n const amountClaimed = parseFloat(claim?.amountClaimed) / 1e18;\n const claimableProgress =\n (parseFloat(claimableAmount.toString()) /\n parseFloat(totalAmount.toString())) *\n 100;\n const claimedProgress =\n (parseFloat(amountClaimed.toString()) /\n parseFloat(claimableAmount.toString())) *\n 100;\n\n let status = `${fromNow(claim.endTime)} Till Maturity`;\n if (\n Math.round(Date.now() / 1000) > parseFloat(claim.endTime) ||\n !claim.endTime\n )\n status = \"Complete\";\n if (claim?.paused) status = \"Paused\";\n const isDisabled =\n claim?.paused || totalAmount === amountClaimed || !claim?.isActive;\n\n\n const handleTermsModalClose = (_: any, reason: string) => {\n if (reason !== \"backdropClick\") {\n setShowTermsModal(false)\n }\n }\n\n return (\n
\n \n \n \n
\n
\n
\n CLAIM TOKENS\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
Streamed\n \n \n \n {claimableAmount.toLocaleString()} /{\" \"}\n {totalAmount\n .toString()\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\")}{\" \"}\n Total Vested\n \n
Claimed\n \n \n \n {amountClaimed.toLocaleString()} /{\" \"}\n {claimableAmount.toLocaleString()} Streamed\n \n
Time Left\n {status}\n
Availability\n \n \n {(claimableAmount - amountClaimed).toLocaleString()}{\" \"}\n \n \n
\n \n
\n
\n
\n );\n}\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n root: {\n height: \"100%\",\n },\n content: {\n display: \"flex\",\n flexGrow: 1,\n padding: theme.spacing(3),\n justifyContent: \"center\",\n height: \"80%\",\n alignItems: \"center\",\n color: \"#fff\",\n [theme.breakpoints.down(1000)]: {\n alignItems: \"flex-start\",\n marginTop: \"100px\",\n },\n },\n disabled: {\n backgroundColor: \"grey !important\",\n },\n card: {\n backgroundColor: colors.cardBg,\n marginLeft: 20,\n maWidth: \"600px\",\n height: \"fit-content\",\n borderRadius: \"1.25rem\",\n boxShadow: \"0 0 35px 20px rgb(8 58 44 / 80%)\",\n fontFamily: \"Nunito\",\n transition: \"all .3s ease-in-out\",\n boxSizing: \"border-box\",\n color: \"white !important\",\n padding: \"2rem\",\n [theme.breakpoints.down(1000)]: {\n marginLeft: 0,\n },\n\n [theme.breakpoints.down(800)]: {\n width: \"90%\",\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n },\n inputGroup: {\n [theme.breakpoints.down(\"xs\")]: {\n display: \"flex\",\n flexDirection: \"column\",\n },\n\n [theme.breakpoints.down(800)]: {\n display: \"flex\",\n justifyContent: \"center\",\n\n flexDirection: \"column\",\n },\n },\n header: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n\n [theme.breakpoints.down(800)]: {\n display: \"flex\",\n flexDirection: \"column\",\n marginBottom: \"20px\",\n },\n },\n select: {\n padding: \"0.25rem 2rem\",\n background: colors.bgPrimary,\n color: colors.textWhite,\n border: \"none\",\n borderRadius: \"0.25rem\",\n outline: \"none\",\n fontSize: \"1.25rem\",\n [theme.breakpoints.down(500)]: {\n width: \"80%\",\n fontSize: \"16px\",\n padding: \"0.25rem\",\n },\n },\n title: {\n fontFamily: font.primary,\n fontSize: font.fontSize.l,\n color: colors.white,\n letterSpacing: \"0.05em\",\n lineHeight: \"72px\",\n [theme.breakpoints.down(500)]: {\n fontSize: \"25px\",\n },\n },\n data: {\n display: \"flex\",\n flexDirection: \"row\",\n marginBottom: \"30px\",\n },\n label: {\n fontFamily: font.primary,\n fontSize: font.fontSize.sm,\n color: colors.white,\n lineHeight: \"24px\",\n textTransform: \"uppercase\",\n letterSpacing: \"0.05em\",\n padding: \"17px 0px\",\n\n [theme.breakpoints.down(800)]: {\n textAlign: \"center\",\n paddingRight: \"0px\",\n },\n },\n\n desc: {\n color: colors.white,\n fontSize: \"16px\",\n lineHeight: \"24px\",\n textTransform: \"uppercase\",\n letterSpacing: \"0.35em\",\n marginLeft: \"20px\",\n fontWeight: \"bold\",\n\n [theme.breakpoints.down(800)]: {\n textAlign: \"center\",\n marginLeft: \"0px\",\n marginTop: \"10px\",\n },\n },\n timeLeft: {\n color: colors.white,\n fontWeight: 600,\n lineHeight: \"36px\",\n letterSpacing: \"0.5em\",\n textTransform: \"uppercase\",\n [theme.breakpoints.down(800)]: {\n textAlign: \"center\",\n },\n },\n button: {\n border: \"none\",\n outline: \"none\",\n color: colors.textWhite,\n backgroundColor: colors.bgPrimary,\n fontFamily: font.primary,\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n padding: \"0.5rem 1rem\",\n borderRadius: \".5rem\",\n marginRight: \"20px\",\n cursor: \"pointer\",\n textDecoration: \"none\",\n fontSize: \"20px\",\n transition: \"all 0.2s linear\",\n \"&:hover\": {\n transform: \"scale(1.1)\",\n },\n\n [theme.breakpoints.down(800)]: {\n marginTop: \"10px\",\n marginRight: \"0px\",\n },\n },\n\n marginLeft: {\n marginLeft: \"40px\",\n },\n })\n);\n","import { useState } from \"react\";\n\nexport default function useInput(initalState: string = \"\") {\n const [value, setValue] = useState(initalState);\n const set = (e: any) => setValue(e.target.value);\n const reset = () => setValue(\"\");\n return { value, set, reset };\n}\n","// hooks\nimport useSwitch from '../../hooks/useSwitch';\nimport useInput from '../../hooks/useInput';\nimport { useMetamask } from '../../contexts/Metamask';\n\n// libraries\nimport clsx from 'clsx';\nimport { toast } from 'react-toastify';\n\n// material-ui\nimport { makeStyles, Theme, createStyles } from '@material-ui/core/styles';\n\n// components\nimport Button from '../Button';\n\n// configs\nimport font from '../../configs/font';\nimport colors from '../../configs/colors';\n\n// helpers\nimport { VestingContext } from './tab';\nimport { useContext } from 'react';\nimport Contracts from 'helpers/contracts';\n\nexport default function AddAdmin() {\n\tconst classes = useStyles();\n\tconst metamask = useMetamask();\n\tconst adminWalletAddress = useInput();\n\tconst isActiveAdmin = useSwitch(true);\n\tconst isTransactionInProgress = useSwitch();\n\tconst { selectedVesting } = useContext(VestingContext);\n\n\tlet timeout: NodeJS.Timeout | null = null;\n\tconst onWalletAddressChange = async (e: any) => {\n\t\tadminWalletAddress.set(e);\n\t\tif (timeout) {\n\t\t\tclearTimeout(timeout);\n\t\t}\n\t\ttimeout = setTimeout(async () => {\n\t\t\tconst contract = Contracts.instances;\n\t\t\tconst VestingContract = contract[`Vesting_${selectedVesting}`];\n\t\t\tconst callableIsAdmin = VestingContract.methods.isAdmin(e.target.value);\n\t\t\ttry {\n\t\t\t\tconst isAdmin = await callableIsAdmin.call();\n\t\t\t\tisActiveAdmin.set(isAdmin);\n\t\t\t} catch (err) {\n\t\t\t\tconsole.log(err);\n\t\t\t}\n\t\t}, 2000);\n\t};\n\n\tconst addAdmin = async () => {\n\t\tconst isConnectedToBSC = await metamask.checkIsBsc();\n\t\tif (!isConnectedToBSC) {\n\t\t\ttoast.error('Please connect to the Bsc Chain');\n\t\t\tisTransactionInProgress.false();\n\t\t\treturn;\n\t\t}\n\t\tif (!adminWalletAddress.value) {\n\t\t\treturn toast.error('Please enter a wallet address');\n\t\t}\n\t\tconst contracts = Contracts.instances;\n\t\tconst VestingContract = contracts[`Vesting_${selectedVesting}`];\n\t\tisTransactionInProgress.true();\n\t\ttry {\n\t\t\tconst callableNFT = VestingContract.methods.setAdmin(\n\t\t\t\tadminWalletAddress.value,\n\t\t\t\tisActiveAdmin.value\n\t\t\t);\n\t\t\tcallableNFT.estimateGas({ from: metamask.user.primaryAccount });\n\t\t\tawait callableNFT.send({ from: metamask.user.primaryAccount });\n\t\t\ttoast.success('Admin added to ChumbiVesting');\n\t\t} catch (err) {\n\t\t\ttoast.error('Could not add Admin');\n\t\t}\n\t\tisTransactionInProgress.false();\n\t};\n\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
Wallet Address\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
Is Active Admin?\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{isActiveAdmin.value ? 'True' : 'False'}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t
\n\t);\n}\n\nconst useStyles = makeStyles((theme: Theme) =>\n\tcreateStyles({\n\t\tblock: {\n\t\t\theight: '50%',\n\t\t\tpadding: '40px 40px',\n\t\t\tdisplay: 'flex',\n\t\t\talignItems: 'center',\n\t\t\tjustifyContent: 'flex-start',\n\t\t\tborderRadius: '16px',\n\t\t},\n\t\timage: {\n\t\t\theight: 60,\n\t\t\tmarginLeft: 80,\n\t\t},\n\t\tinputRow: {\n\t\t\t[theme.breakpoints.down('xs')]: {\n\t\t\t\tdisplay: 'flex',\n\t\t\t\tflexDirection: 'column',\n\t\t\t\talignItems: 'flex-start',\n\t\t\t},\n\t\t},\n\t\ttitle: {\n\t\t\tfontFamily: font.primary,\n\t\t\tfontSize: font.fontSize.l,\n\t\t\tcolor: colors.textSecondary,\n\t\t\tletterSpacing: '0.05em',\n\t\t},\n\t\tlabel: {\n\t\t\tfontFamily: font.primary,\n\t\t\tfontSize: font.fontSize.sm,\n\t\t\tlineHeight: '24px',\n\t\t\ttextTransform: 'uppercase',\n\t\t\tletterSpacing: '0.05em',\n\t\t\tpadding: '17px 0px',\n\t\t},\n\t\tinput: {\n\t\t\tfontFamily: font.primary,\n\t\t\tborder: `1px solid #e9d8ff`,\n\t\t\tcolor: colors.black,\n\t\t\tbackground: colors.white,\n\t\t\tborderRadius: '7px',\n\t\t\twidth: '380px',\n\t\t\tboxSizing: 'border-box',\n\t\t\tmarginLeft: '30px',\n\t\t\tpadding: '0.8rem 1rem',\n\t\t\t[theme.breakpoints.down('xs')]: {\n\t\t\t\tmarginLeft: '0px',\n\t\t\t\twidth: '80vw',\n\t\t\t},\n\t\t\toutline: 'none',\n\t\t\t'&:focus': {\n\t\t\t\tbackgroundColor: '#fafafa',\n\t\t\t\tborderColor: '#8262d1',\n\t\t\t},\n\t\t},\n\t\tisAdminButton: {\n\t\t\tfontFamily: font.primary,\n\t\t\tfontSize: '16px',\n\t\t\tlineHeight: '24px',\n\t\t\twidth: '120px',\n\t\t\theight: '25px',\n\t\t\tborderRadius: 50,\n\t\t\tborder: 'none',\n\t\t\ttransition: 'background 250ms ease-in-out',\n\t\t\ttextAlign: 'center',\n\t\t\ttextTransform: 'uppercase',\n\t\t\tletterSpacing: '0.5em',\n\t\t\tmarginLeft: '38px',\n\t\t\tbackgroundColor: '#10C400',\n\t\t\tcolor: '#fff',\n\t\t\tcursor: 'pointer',\n\t\t\t[theme.breakpoints.down('xs')]: {\n\t\t\t\tmarginLeft: '0px',\n\t\t\t},\n\t\t},\n\t\tgreen: {\n\t\t\tbackgroundColor: '#4bb771',\n\t\t},\n\t\tred: {\n\t\t\tbackgroundColor: '#d33853',\n\t\t},\n\t\tisAdminButtonText: {\n\t\t\tmarginLeft: 7,\n\t\t},\n\t\tflexDirectionColumn: {\n\t\t\tdisplay: 'flex',\n\t\t\tflexDirection: 'column',\n\t\t\talignItems: 'flex-start',\n\t\t},\n\t\tbutton: {\n\t\t\tborderRadius: '16px !important',\n\t\t\tmarginTop: '16px',\n\t\t\tfontFamily: 'Nunito',\n\t\t\ttransition: 'all 0.15s linear',\n\t\t\t'&:hover': {\n\t\t\t\ttransform: 'scale(1.1)',\n\t\t\t},\n\t\t},\n\t})\n);\n","import { toast } from 'react-toastify';\n\n/**\n * Validats Staking/Withdrawal amount entered by user\n * @param {string} amount\n * @returns boolean\n */\nexport function validateAmount(amount: string): boolean {\n if (!amount) {\n toast.info('Please enter an amount');\n return false;\n }\n\n if (amount === '0') {\n toast.info('Please enter a non zero value');\n return false;\n }\n\n if (parseInt(amount) < 0) {\n toast.info('Please enter a positive integer');\n return false;\n }\n\n if (parseFloat(amount) % 1 !== 0) {\n toast.info('Please enter a whole number');\n return false;\n }\n return true;\n}\n","// hooks\nimport { useMetamask } from '../../contexts/Metamask';\nimport useInput from '../../hooks/useInput';\nimport useSwitch from '../../hooks/useSwitch';\n\n// libraries\nimport BN from 'bn.js';\nimport { toast } from 'react-toastify';\nimport { Typography as Text } from '@material-ui/core';\nimport { makeStyles, Theme, createStyles } from '@material-ui/core/styles';\n\n// components\nimport Button from '../Button';\n\n// assets\nimport wallet from '../../assets/wallet.svg';\n\n// configs\nimport font from '../../configs/font';\nimport colors from '../../configs/colors';\n\n// helpers\nimport { stringToDate, toUnixTimestamp } from '../../utilities/utils';\nimport { validateAmount } from '../../utilities/validate';\nimport Contracts from 'helpers/contracts';\nimport { useContext } from 'react';\nimport { VestingContext } from './tab';\nimport { ContractAddress } from 'config';\n\nexport default function AddUser() {\n\tconst classes = useStyles();\n\tconst metamask = useMetamask();\n\n\tconst walletAddress = useInput();\n\tconst startDate = useInput();\n\tconst endDate = useInput();\n\tconst amount = useInput();\n\tconst unlockAmount = useInput();\n\tconst unlockTime = useInput();\n\tconst isTransactionInProgress = useSwitch();\n\tconst { selectedVesting } = useContext(VestingContext);\n\n\tconst addUser = async () => {\n\t\tconst contracts = Contracts.instances;\n\t\tconst isConnectedToBSC = await metamask.checkIsBsc();\n\t\tif (!isConnectedToBSC) {\n\t\t\ttoast.error('Please connect to the BSC Chain');\n\t\t\tisTransactionInProgress.false();\n\t\t\treturn;\n\t\t}\n\t\tif (\n\t\t\t!walletAddress.value ||\n\t\t\t!startDate.value ||\n\t\t\t!endDate.value ||\n\t\t\t!amount.value\n\t\t) {\n\t\t\treturn toast.error('Please fill all the fields');\n\t\t}\n\t\tif (!validateAmount(amount.value)) {\n\t\t\treturn;\n\t\t}\n\n\t\ttry {\n\t\t\tisTransactionInProgress.true();\n\t\t\tconst UNIXStartDate = toUnixTimestamp(stringToDate(startDate.value));\n\t\t\tconst UNIXEndDate = toUnixTimestamp(stringToDate(endDate.value));\n\t\t\tconst UNIXUnlockDate = toUnixTimestamp(stringToDate(unlockTime.value));\n\t\t\tconst _approveAmount = new BN(\n\t\t\t\tparseFloat(amount.value) + parseFloat(unlockAmount.value)\n\t\t\t).mul(new BN(10).pow(new BN(18)));\n\t\t\tconst _vestAmount = new BN(parseFloat(amount.value)).mul(\n\t\t\t\tnew BN(10).pow(new BN(18))\n\t\t\t);\n\t\t\tconst _unlockAmount = new BN(unlockAmount.value).mul(\n\t\t\t\tnew BN(10).pow(new BN(18))\n\t\t\t);\n\t\t\tconst allowance = await contracts.Token?.methods\n\t\t\t\t.allowance(\n\t\t\t\t\tmetamask.user.primaryAccount,\n\t\t\t\t\tContractAddress[`Vesting_${selectedVesting}`]\n\t\t\t\t)\n\t\t\t\t.call();\n\t\t\tif (_approveAmount.gt(new BN(allowance || 0))) {\n\t\t\t\tawait contracts.Token?.methods\n\t\t\t\t\t.approve(\n\t\t\t\t\t\tContractAddress[`Vesting_${selectedVesting}`],\n\t\t\t\t\t\t_approveAmount.toString()\n\t\t\t\t\t)\n\t\t\t\t\t.send({ from: metamask.user.primaryAccount });\n\t\t\t}\n\n\t\t\tawait contracts.Token?.methods\n\t\t\t\t.approve(\n\t\t\t\t\tContractAddress[`Vesting_${selectedVesting}`],\n\t\t\t\t\t_approveAmount.toString()\n\t\t\t\t)\n\t\t\t\t.send({ from: metamask.user.primaryAccount });\n\n\t\t\tconst callableNFT = contracts[\n\t\t\t\t`Vesting_${selectedVesting}`\n\t\t\t]?.methods.createClaim(\n\t\t\t\twalletAddress.value,\n\t\t\t\t_vestAmount.toString(),\n\t\t\t\t_unlockAmount.toString(),\n\t\t\t\tUNIXUnlockDate,\n\t\t\t\tUNIXStartDate,\n\t\t\t\tUNIXEndDate\n\t\t\t);\n\n\t\t\tawait callableNFT?.send({ from: metamask.user.primaryAccount });\n\t\t\ttoast.success('Claim Created');\n\t\t} catch (err) {\n\t\t\tconsole.log(err);\n\t\t\ttoast.error('Could not create claim.');\n\t\t}\n\t\tisTransactionInProgress.false();\n\t};\n\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
Wallet Address\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
Start Time\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
End Time\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
Amount $CHMB\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
Unlock Amount\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
Unlock Time\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t
\n\t);\n}\n\nconst useStyles = makeStyles((theme: Theme) =>\n\tcreateStyles({\n\t\tblock: {\n\t\t\theight: '50%',\n\t\t\tdisplay: 'flex',\n\t\t\tpadding: '40px 40px',\n\t\t\talignItems: 'center',\n\t\t\tjustifyContent: 'flex-start',\n\t\t\tborderRadius: '16px',\n\t\t},\n\t\timage: {\n\t\t\theight: 60,\n\t\t\tmarginLeft: 150,\n\t\t},\n\t\ttitle: {\n\t\t\tfontFamily: font.primary,\n\t\t\tfontSize: font.fontSize.l,\n\t\t\tcolor: colors.textSecondary,\n\t\t\tletterSpacing: '0.05em',\n\t\t\tlineHeight: '72px',\n\t\t},\n\t\tlabel: {\n\t\t\tfontFamily: font.primary,\n\t\t\tfontSize: font.fontSize.sm,\n\t\t\tlineHeight: '24px',\n\t\t\ttextTransform: 'uppercase',\n\t\t\tletterSpacing: '0.05em',\n\t\t\tpadding: '17px 0px',\n\t\t},\n\t\tinput: {\n\t\t\tfontFamily: font.primary,\n\t\t\tborder: `1px solid #e9d8ff`,\n\t\t\tcolor: colors.black,\n\t\t\tbackground: colors.white,\n\t\t\tborderRadius: '7px',\n\t\t\tpadding: '0px 1rem',\n\t\t\twidth: '380px',\n\t\t\theight: '44px',\n\t\t\tmarginLeft: '40px',\n\t\t\t[theme.breakpoints.down('xs')]: {\n\t\t\t\tmarginLeft: '0px',\n\t\t\t\twidth: '80vw',\n\t\t\t},\n\t\t\toutline: 'none',\n\t\t\t'&:focus': {\n\t\t\t\tbackgroundColor: '#fafafa',\n\t\t\t\tborderColor: '#8262d1',\n\t\t\t},\n\t\t},\n\t\tinputRow: {\n\t\t\t[theme.breakpoints.down('xs')]: {\n\t\t\t\tdisplay: 'flex',\n\t\t\t\tflexDirection: 'column',\n\t\t\t\talignItems: 'flex-start',\n\t\t\t},\n\t\t},\n\t\tflexDirectionColumn: {\n\t\t\tdisplay: 'flex',\n\t\t\tflexDirection: 'column',\n\t\t\talignItems: 'flex-start',\n\t\t},\n\t\tbutton: {\n\t\t\tmarginTop: '16px',\n\t\t\tfontSize: font.fontSize.sm,\n\t\t\ttransition: 'all 0.15s linear',\n\t\t\t'&:hover': {\n\t\t\t\ttransform: 'scale(1.1)',\n\t\t\t},\n\t\t},\n\t})\n);\n","// contracts\nimport { ChumbiVestingAddress } from '../../configs/contract';\n\n// hooks\nimport { useMetamask } from '../../contexts/Metamask';\nimport { useContract } from '../../contexts/Contract';\nimport useInput from '../../hooks/useInput';\nimport useSwitch from '../../hooks/useSwitch';\n\n// libraries\nimport { toast } from 'react-toastify';\nimport { Typography as Text } from '@material-ui/core';\nimport { makeStyles, Theme, createStyles } from '@material-ui/core/styles';\n\n// components\nimport Button from '../Button';\n\n// assets\nimport wallet from '../../assets/wallet.svg';\n\n// configs\nimport font from '../../configs/font';\nimport colors from '../../configs/colors';\n\n// helpers\nimport { stringToDate, toUnixTimestamp } from '../../utilities/utils';\nimport { validateAmount } from '../../utilities/validate';\nimport Contracts from 'helpers/contracts';\nimport { VestingContext } from './tab';\nimport { useContext } from 'react';\n\nexport default function Withdraw() {\n\tconst classes = useStyles();\n\tconst metamask = useMetamask();\n\n\tconst walletAddress = useInput();\n\tconst amount = useInput();\n\tconst isTransactionInProgress = useSwitch();\n\tconst { selectedVesting } = useContext(VestingContext);\n\n\tconst addUser = async () => {\n\t\tconst isConnectedToBSC = await metamask.checkIsBsc();\n\t\tif (!isConnectedToBSC) {\n\t\t\ttoast.error('Please connect to the BSC Chain');\n\t\t\tisTransactionInProgress.false();\n\t\t\treturn;\n\t\t}\n\t\tif (!walletAddress.value || !amount.value) {\n\t\t\treturn toast.error('Please fill all the fields');\n\t\t}\n\t\tif (!validateAmount(amount.value)) {\n\t\t\treturn;\n\t\t}\n\n\t\ttry {\n\t\t\tconst contracts = Contracts.instances;\n\t\t\tisTransactionInProgress.true();\n\t\t\tconst _amount = BigInt(parseInt(amount.value) * 1e18);\n\n\t\t\tawait contracts[`Vesting_${selectedVesting}`]?.methods\n\t\t\t\t.withdrawTokens(walletAddress.value, _amount.toString())\n\t\t\t\t.send({ from: metamask.user.primaryAccount });\n\n\t\t\ttoast.success('Tokens Withdrawn');\n\t\t} catch (err) {\n\t\t\tconsole.log(err);\n\t\t\ttoast.error('Could not withdraw tokens.');\n\t\t}\n\t\tisTransactionInProgress.false();\n\t};\n\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
Wallet Address\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
Amount $CHMB\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t
\n\t);\n}\n\nconst useStyles = makeStyles((theme: Theme) =>\n\tcreateStyles({\n\t\tblock: {\n\t\t\theight: '50%',\n\t\t\tdisplay: 'flex',\n\t\t\tpadding: '40px 40px',\n\t\t\talignItems: 'center',\n\t\t\tjustifyContent: 'flex-start',\n\t\t\tborderRadius: '16px',\n\t\t},\n\t\timage: {\n\t\t\theight: 60,\n\t\t\tmarginLeft: 150,\n\t\t},\n\t\ttitle: {\n\t\t\tfontFamily: font.primary,\n\t\t\tfontSize: font.fontSize.l,\n\t\t\tcolor: colors.textSecondary,\n\t\t\tletterSpacing: '0.05em',\n\t\t\tlineHeight: '72px',\n\t\t},\n\t\tlabel: {\n\t\t\tfontFamily: font.primary,\n\t\t\tfontSize: font.fontSize.sm,\n\t\t\tlineHeight: '24px',\n\t\t\ttextTransform: 'uppercase',\n\t\t\tletterSpacing: '0.05em',\n\t\t\tpadding: '17px 0px',\n\t\t},\n\t\tinput: {\n\t\t\tfontFamily: font.primary,\n\t\t\tborder: `1px solid #e9d8ff`,\n\t\t\tcolor: colors.black,\n\t\t\tbackground: colors.white,\n\t\t\tborderRadius: '7px',\n\t\t\tpadding: '0px 1rem',\n\t\t\twidth: '380px',\n\t\t\theight: '44px',\n\t\t\tmarginLeft: '40px',\n\t\t\t[theme.breakpoints.down('xs')]: {\n\t\t\t\tmarginLeft: '0px',\n\t\t\t\twidth: '80vw',\n\t\t\t},\n\t\t\toutline: 'none',\n\t\t\t'&:focus': {\n\t\t\t\tbackgroundColor: '#fafafa',\n\t\t\t\tborderColor: '#8262d1',\n\t\t\t},\n\t\t},\n\t\tinputRow: {\n\t\t\t[theme.breakpoints.down('xs')]: {\n\t\t\t\tdisplay: 'flex',\n\t\t\t\tflexDirection: 'column',\n\t\t\t\talignItems: 'flex-start',\n\t\t\t},\n\t\t},\n\t\tflexDirectionColumn: {\n\t\t\tdisplay: 'flex',\n\t\t\tflexDirection: 'column',\n\t\t\talignItems: 'flex-start',\n\t\t},\n\t\tbutton: {\n\t\t\tmarginTop: '16px',\n\t\t\tfontSize: font.fontSize.sm,\n\t\t\ttransition: 'all 0.15s linear',\n\t\t\t'&:hover': {\n\t\t\t\ttransform: 'scale(1.1)',\n\t\t\t},\n\t\t},\n\t})\n);\n","// hooks\nimport useSwitch from '../../hooks/useSwitch';\nimport useInput from '../../hooks/useInput';\nimport { useMetamask } from '../../contexts/Metamask';\n\n// libraries\nimport clsx from 'clsx';\nimport { toast } from 'react-toastify';\n\n// material-ui\nimport { makeStyles, Theme, createStyles } from '@material-ui/core/styles';\n\n// components\nimport Button from '../Button';\n\n// configs\nimport font from '../../configs/font';\nimport colors from '../../configs/colors';\n\n// helpers\nimport Contracts from 'helpers/contracts';\nimport { VestingContext } from './tab';\nimport { useContext } from 'react';\n\nexport default function Revoke() {\n\tconst classes = useStyles();\n\tconst metamask = useMetamask();\n\tconst adminWalletAddress = useInput();\n\tconst isTransactionInProgress = useSwitch();\n\tconst { selectedVesting } = useContext(VestingContext);\n\n\tconst addAdmin = async () => {\n\t\tconst isConnectedToBSC = await metamask.checkIsBsc();\n\t\tif (!isConnectedToBSC) {\n\t\t\ttoast.error('Please connect to the Bsc Chain');\n\t\t\tisTransactionInProgress.false();\n\t\t\treturn;\n\t\t}\n\t\tif (!adminWalletAddress.value) {\n\t\t\treturn toast.error('Please enter a wallet address');\n\t\t}\n\t\tconst contracts = Contracts.instances;\n\t\tconst VestingContract = contracts[`Vesting_${selectedVesting}`];\n\t\tisTransactionInProgress.true();\n\t\ttry {\n\t\t\tawait VestingContract.methods\n\t\t\t\t.revoke(adminWalletAddress.value)\n\t\t\t\t.send({ from: metamask.user.primaryAccount });\n\t\t\tadminWalletAddress.reset();\n\t\t\ttoast.success('Claim Revoked');\n\t\t} catch (err) {\n\t\t\ttoast.error('Could not revoke claim');\n\t\t}\n\t\tisTransactionInProgress.false();\n\t};\n\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
Wallet Address\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t
\n\t);\n}\n\nconst useStyles = makeStyles((theme: Theme) =>\n\tcreateStyles({\n\t\tblock: {\n\t\t\theight: '50%',\n\t\t\tpadding: '40px 40px',\n\t\t\tdisplay: 'flex',\n\t\t\talignItems: 'center',\n\t\t\tjustifyContent: 'flex-start',\n\t\t\tborderRadius: '16px',\n\t\t},\n\t\timage: {\n\t\t\theight: 60,\n\t\t\tmarginLeft: 80,\n\t\t},\n\t\tinputRow: {\n\t\t\t[theme.breakpoints.down('xs')]: {\n\t\t\t\tdisplay: 'flex',\n\t\t\t\tflexDirection: 'column',\n\t\t\t\talignItems: 'flex-start',\n\t\t\t},\n\t\t},\n\t\ttitle: {\n\t\t\tfontFamily: font.primary,\n\t\t\tfontSize: font.fontSize.l,\n\t\t\tcolor: colors.textSecondary,\n\t\t\tletterSpacing: '0.05em',\n\t\t},\n\t\tlabel: {\n\t\t\tfontFamily: font.primary,\n\t\t\tfontSize: font.fontSize.sm,\n\t\t\tlineHeight: '24px',\n\t\t\ttextTransform: 'uppercase',\n\t\t\tletterSpacing: '0.05em',\n\t\t\tpadding: '17px 0px',\n\t\t},\n\t\tinput: {\n\t\t\tfontFamily: font.primary,\n\t\t\tborder: `1px solid #e9d8ff`,\n\t\t\tcolor: colors.black,\n\t\t\tbackground: colors.white,\n\t\t\tborderRadius: '7px',\n\t\t\twidth: '380px',\n\t\t\tboxSizing: 'border-box',\n\t\t\tmarginLeft: '30px',\n\t\t\tpadding: '0.8rem 1rem',\n\t\t\t[theme.breakpoints.down('xs')]: {\n\t\t\t\tmarginLeft: '0px',\n\t\t\t\twidth: '80vw',\n\t\t\t},\n\t\t\toutline: 'none',\n\t\t\t'&:focus': {\n\t\t\t\tbackgroundColor: '#fafafa',\n\t\t\t\tborderColor: '#8262d1',\n\t\t\t},\n\t\t},\n\t\tisAdminButton: {\n\t\t\tfontFamily: font.primary,\n\t\t\tfontSize: '16px',\n\t\t\tlineHeight: '24px',\n\t\t\twidth: '120px',\n\t\t\theight: '25px',\n\t\t\tborderRadius: 50,\n\t\t\tborder: 'none',\n\t\t\ttransition: 'background 250ms ease-in-out',\n\t\t\ttextAlign: 'center',\n\t\t\ttextTransform: 'uppercase',\n\t\t\tletterSpacing: '0.5em',\n\t\t\tmarginLeft: '38px',\n\t\t\tbackgroundColor: '#10C400',\n\t\t\tcolor: '#fff',\n\t\t\tcursor: 'pointer',\n\t\t\t[theme.breakpoints.down('xs')]: {\n\t\t\t\tmarginLeft: '0px',\n\t\t\t},\n\t\t},\n\t\tgreen: {\n\t\t\tbackgroundColor: '#4bb771',\n\t\t},\n\t\tred: {\n\t\t\tbackgroundColor: '#d33853',\n\t\t},\n\t\tisAdminButtonText: {\n\t\t\tmarginLeft: 7,\n\t\t},\n\t\tflexDirectionColumn: {\n\t\t\tdisplay: 'flex',\n\t\t\tflexDirection: 'column',\n\t\t\talignItems: 'flex-start',\n\t\t},\n\t\tbutton: {\n\t\t\tmarginTop: '16px',\n\t\t\tfontSize: font.fontSize.sm,\n\t\t\ttransition: 'all 0.15s linear',\n\t\t\t'&:hover': {\n\t\t\t\ttransform: 'scale(1.1)',\n\t\t\t},\n\t\t},\n\t})\n);\n","// hooks\nimport { useContext, useEffect } from 'react';\nimport useSwitch from '../../hooks/useSwitch';\nimport useInput from '../../hooks/useInput';\nimport { useMetamask } from '../../contexts/Metamask';\n\n// libraries\nimport clsx from 'clsx';\nimport { toast } from 'react-toastify';\n\n// material-ui\nimport { makeStyles, Theme, createStyles } from '@material-ui/core/styles';\n\n// components\nimport Button from '../Button';\n\n// configs\nimport font from '../../configs/font';\nimport colors from '../../configs/colors';\n\n// helpers\nimport { VestingContext } from './tab';\nimport Contracts from 'helpers/contracts';\n\nexport default function Pause() {\n\tconst classes = useStyles();\n\tconst metamask = useMetamask();\n\tconst isClaimPaused = useSwitch(false);\n\tconst isTransactionInProgress = useSwitch();\n\tconst { selectedVesting } = useContext(VestingContext);\n\n\tuseEffect(() => {\n\t\tconsole.log('pause');\n\t\tconst fetchClaimPaused = async () => {\n\t\t\tconst isConnectedToBSC = await metamask.checkIsBsc();\n\t\t\tif (!isConnectedToBSC) {\n\t\t\t\ttoast.error('Please connect to the Bsc Chain');\n\t\t\t\tisTransactionInProgress.false();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst contracts = Contracts.instances;\n\t\t\tconst VestingContract = contracts[`Vesting_${selectedVesting}`];\n\t\t\ttry {\n\t\t\t\tconst claimPaused = await VestingContract.methods.paused().call();\n\t\t\t\tisClaimPaused.set(claimPaused);\n\t\t\t} catch (err) {\n\t\t\t\ttoast.error('Could not fetch pause status');\n\t\t\t}\n\t\t};\n\t\tfetchClaimPaused();\n\t}, [selectedVesting]);\n\n\tconst pauseUnpauseClaim = async () => {\n\t\tconst isConnectedToPolygon = await metamask.checkIsBsc();\n\t\tif (!isConnectedToPolygon) {\n\t\t\ttoast.error('Please connect to the Bsc Chain');\n\t\t\tisTransactionInProgress.false();\n\t\t\treturn;\n\t\t}\n\n\t\tconst contract = Contracts.instances;\n\t\tconst VestingContract = contract[`Vesting_${selectedVesting}`];\n\t\tisTransactionInProgress.true();\n\t\ttry {\n\t\t\tif (isClaimPaused.value) {\n\t\t\t\tawait VestingContract.methods\n\t\t\t\t\t.unpause()\n\t\t\t\t\t.send({ from: metamask.user.primaryAccount });\n\t\t\t\tisClaimPaused.false();\n\t\t\t\ttoast.success('Claim Resume');\n\t\t\t} else {\n\t\t\t\tawait VestingContract.methods\n\t\t\t\t\t.pause()\n\t\t\t\t\t.send({ from: metamask.user.primaryAccount });\n\t\t\t\tisClaimPaused.true();\n\t\t\t\ttoast.success('Claim Paused');\n\t\t\t}\n\t\t} catch (err) {\n\t\t\tconsole.log(err);\n\t\t\ttoast.error('Could not pause claim');\n\t\t}\n\t\tisTransactionInProgress.false();\n\t};\n\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
Is Claim Paused?\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{isClaimPaused.value ? 'True' : 'False'}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
Wallet Address\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t
\n\t);\n}\n\nconst useStyles = makeStyles((theme: Theme) =>\n\tcreateStyles({\n\t\tblock: {\n\t\t\theight: '50%',\n\t\t\tpadding: '40px 40px',\n\t\t\tdisplay: 'flex',\n\t\t\talignItems: 'center',\n\t\t\tjustifyContent: 'flex-start',\n\t\t\tborderRadius: '16px',\n\t\t},\n\t\timage: {\n\t\t\theight: 60,\n\t\t\tmarginLeft: 80,\n\t\t},\n\t\tinputRow: {\n\t\t\t[theme.breakpoints.down('xs')]: {\n\t\t\t\tdisplay: 'flex',\n\t\t\t\tflexDirection: 'column',\n\t\t\t\talignItems: 'flex-start',\n\t\t\t},\n\t\t},\n\t\ttitle: {\n\t\t\tfontFamily: font.primary,\n\t\t\tfontSize: font.fontSize.l,\n\t\t\tcolor: colors.textSecondary,\n\t\t\tletterSpacing: '0.05em',\n\t\t},\n\t\tlabel: {\n\t\t\tfontFamily: font.primary,\n\t\t\tfontSize: font.fontSize.sm,\n\t\t\tlineHeight: '24px',\n\t\t\ttextTransform: 'uppercase',\n\t\t\tletterSpacing: '0.05em',\n\t\t\tpadding: '17px 0px',\n\t\t},\n\t\tinput: {\n\t\t\twidth: '380px',\n\t\t\tmarginLeft: '30px',\n\t\t\theight: 0,\n\t\t\t[theme.breakpoints.down('xs')]: {\n\t\t\t\tmarginLeft: '0px',\n\t\t\t\twidth: '80vw',\n\t\t\t},\n\t\t\toutline: 'none',\n\t\t\t'&:focus': {\n\t\t\t\tbackgroundColor: '#fafafa',\n\t\t\t\tborderColor: '#8262d1',\n\t\t\t},\n\t\t},\n\t\tisAdminButton: {\n\t\t\tfontFamily: font.primary,\n\t\t\tfontSize: '16px',\n\t\t\tlineHeight: '24px',\n\t\t\twidth: '120px',\n\t\t\theight: '25px',\n\t\t\tborderRadius: 50,\n\t\t\tborder: 'none',\n\t\t\ttransition: 'background 250ms ease-in-out',\n\t\t\ttextAlign: 'center',\n\t\t\ttextTransform: 'uppercase',\n\t\t\tletterSpacing: '0.5em',\n\t\t\tmarginLeft: '38px',\n\t\t\tbackgroundColor: '#10C400',\n\t\t\tcolor: '#fff',\n\t\t\t[theme.breakpoints.down('xs')]: {\n\t\t\t\tmarginLeft: '0px',\n\t\t\t},\n\t\t},\n\t\tgreen: {\n\t\t\tbackgroundColor: '#4bb771',\n\t\t},\n\t\tred: {\n\t\t\tbackgroundColor: '#d33853',\n\t\t},\n\t\tisAdminButtonText: {\n\t\t\tmarginLeft: 7,\n\t\t},\n\t\tflexDirectionColumn: {\n\t\t\tdisplay: 'flex',\n\t\t\tflexDirection: 'column',\n\t\t\talignItems: 'flex-start',\n\t\t},\n\t\tbutton: {\n\t\t\tmarginTop: '16px',\n\t\t\tfontSize: font.fontSize.sm,\n\t\t\ttransition: 'all 0.15s linear',\n\t\t\t'&:hover': {\n\t\t\t\ttransform: 'scale(1.1)',\n\t\t\t},\n\t\t},\n\t})\n);\n","import React, { ChangeEvent, useState } from \"react\";\nimport { makeStyles, Theme, createStyles } from \"@material-ui/core/styles\";\n\n//components\nimport AddAdmin from \"./AddAdmin\";\nimport AddUser from \"./AddUser\";\nimport Withdraw from \"./Withdraw\";\n\n//config\nimport font from \"../../configs/font\";\nimport colors from \"../../configs/colors\";\n\nimport clsx from \"clsx\";\nimport Revoke from \"./Revoke\";\nimport Pause from \"./Pause\";\n\nconst BLOCK = {\n ADD_ADMIN: \"Add admin\",\n ADD_USER: \"Add user\",\n PAUSE: \"PAUSE\",\n REVOKE: \"REVOKE\",\n WITHDRAW: \"WITHDRAW\",\n};\n\ninterface tabItemProps {\n isActive: boolean;\n label: string;\n onClick: () => void;\n}\n\ntype IVestingContext = {\n selectedVesting: \"General\" | \"Seed\" | \"New\";\n};\n\nexport const VestingContext = React.createContext({\n selectedVesting: \"General\",\n});\n\nconst Tab = () => {\n const classes = useStyles();\n const [stage, setStage] = useState(BLOCK.ADD_ADMIN);\n const navBarOptions: any = [\n {\n title: \"Add Admin\",\n onClick: () => setStage(BLOCK.ADD_ADMIN),\n selected: stage === BLOCK.ADD_ADMIN,\n },\n {\n title: \"Vest $CHMB\",\n onClick: () => setStage(BLOCK.ADD_USER),\n selected: stage === BLOCK.ADD_USER,\n },\n {\n title: \"Pause\",\n onClick: () => setStage(BLOCK.PAUSE),\n selected: stage === BLOCK.PAUSE,\n },\n {\n title: \"Revoke\",\n onClick: () => setStage(BLOCK.REVOKE),\n selected: stage === BLOCK.REVOKE,\n },\n {\n title: \"Withdraw\",\n onClick: () => setStage(BLOCK.WITHDRAW),\n selected: stage === BLOCK.WITHDRAW,\n },\n ];\n const [selectedVesting, setSelectedVesting] = useState<\n \"General\" | \"Seed\" | \"New\"\n >(\"General\");\n\n const changeVesting = (e: ChangeEvent) => {\n setSelectedVesting(e.target.value as \"General\" | \"Seed\" | \"New\");\n };\n\n let cardContent = null;\n switch (stage) {\n case BLOCK.ADD_ADMIN:\n cardContent = ;\n break;\n case BLOCK.ADD_USER:\n cardContent = ;\n break;\n case BLOCK.PAUSE:\n cardContent = ;\n break;\n case BLOCK.REVOKE:\n cardContent = ;\n break;\n case BLOCK.WITHDRAW:\n cardContent = ;\n break;\n }\n\n return (\n
\n
\n {navBarOptions.map((item: any, i: number) => (\n \n ))}\n
\n \n
\n \n \n \n \n \n \n\n {cardContent}\n
\n
\n
\n );\n};\nconst TabItem = ({ label, onClick, isActive }: tabItemProps) => {\n const classes = useStyles();\n return (\n \n

{label}

\n
\n );\n};\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n tab: {\n display: \"flex\",\n justifyContent: \"space-around\",\n width: \"100%\",\n borderRadius: \"20px\",\n marginBottom: \"40px\",\n padding: \"0 20px\",\n backgroundColor: colors.cardBg,\n color: colors.black,\n boxShadow: \"0 0 35px 20px rgb(8 58 44 / 80%)\",\n [theme.breakpoints.down(\"sm\")]: {},\n },\n select: {\n padding: \"0.25rem 2rem\",\n background: colors.bgPrimary,\n color: colors.textWhite,\n border: \"none\",\n borderRadius: \"0.25rem\",\n outline: \"none\",\n fontSize: \"1.25rem\",\n margin: \"1rem 1rem 0 auto\",\n },\n\n tabListItem: {\n fontSize: \"20px\",\n padding: \"0px\",\n marginRight: \"20px\",\n cursor: \"pointer\",\n width: \"fit-content\",\n fontFamily: \"Nunito\",\n color: colors.white,\n transition: \"all 0.1s ease-in-out\",\n \"&:hover\": {\n transform: \"scale(1.1)\",\n },\n },\n\n card: {\n animation: \"1s intoview\",\n borderRadius: \"1.25rem\",\n backgroundColor: colors.cardBg,\n boxShadow: \"0 0 35px 20px rgb(8 58 44 / 80%)\",\n color: colors.white,\n display: \"flex\",\n flexDirection: \"column\",\n },\n\n active: {\n color: colors.btnPrimary,\n fontWeight: \"bold\",\n },\n\n \"@keyframes intoview \": {\n from: {\n transform: \"translateY(40px)\",\n },\n to: {\n transform: \"translateY(0px)\",\n },\n },\n })\n);\n\nexport default Tab;\n","// material-ui\nimport CssBaseline from '@material-ui/core/CssBaseline';\nimport { makeStyles, Theme, createStyles } from '@material-ui/core/styles';\n\n// types\nimport Navbar from '../components/navBar';\nimport Tab from '../components/admin/tab';\n\nexport default function Admin() {\n const classes = useStyles();\n\n return (\n
\n \n \n
\n \n
\n
\n );\n}\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n root: {\n height: '100%'\n },\n content: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n height: '80vh',\n minHeight: '600px',\n flexDirection: 'column',\n [theme.breakpoints.down('md')]: {\n height: '0',\n minHeight: '600px'\n }\n },\n overlay: {\n position: 'absolute',\n width: '100%',\n height: '50%',\n zIndex: 5,\n backdropFilter: 'blur(20px)',\n overflowX: 'hidden'\n }\n })\n);\n","export default __webpack_public_path__ + \"static/media/metamask.5dad4192.png\";","\n// material-ui\nimport CssBaseline from '@material-ui/core/CssBaseline';\nimport { Typography as Text } from '@material-ui/core';\nimport { makeStyles, Theme, createStyles } from '@material-ui/core/styles';\n\n// components\nimport Button from '../components/Button';\n\n// configs\nimport font from '../configs/font';\nimport colors from '../configs/colors';\n\n// assets\nimport metamaskLogo from '../assets/metamask.png';\n\n// types\nimport { useMetamask } from '../contexts/Metamask';\n\nexport default function MetamaskAuth() {\n const classes = useStyles();\n const { connect } = useMetamask();\n\n const connectWallet = () => {\n connect();\n };\n\n return (\n
\n \n {/* */}\n
\n {/*
\n claim tokens\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Claimed\n \n \n \n 600 / 400 Claimable\n \n
Availabilty\n \n \n \n 200 / 600 Claimed\n \n
Time Left\n \n 14 Days Till Maturity\n \n
\n
*/}\n
\n
\n Metamask Logo\n \n Metamask Connection Required\n \n \n
\n
\n
\n );\n}\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n root: {\n height: '100%'\n },\n content: {\n display: 'flex',\n flexGrow: 1,\n padding: theme.spacing(3),\n justifyContent: 'center',\n alignItems: 'center',\n height: '100%'\n },\n title: {\n fontFamily: font.primary,\n fontSize: '48px',\n color: colors.textSecondary,\n letterSpacing: '0.15em',\n lineHeight: '72px',\n marginBottom: '30px'\n },\n data: {\n display: 'flex',\n flexDirection: 'row',\n marginBottom: '30px'\n },\n label: {\n fontSize: '24px',\n lineHeight: '36px',\n textTransform: 'uppercase',\n letterSpacing: '0.5em'\n },\n desc: {\n fontSize: '24px',\n lineHeight: '36px',\n textTransform: 'uppercase',\n letterSpacing: '0.5em',\n marginLeft: '20px'\n },\n green: {\n fontSize: '24px',\n lineHeight: '36px',\n textTransform: 'uppercase',\n letterSpacing: '0.5em',\n marginLeft: '20px',\n color: '#10C400'\n },\n red: {\n fontSize: '24px',\n lineHeight: '36px',\n textTransform: 'uppercase',\n letterSpacing: '0.5em',\n marginLeft: '20px',\n color: '#FF0000'\n },\n timeLeft: {\n color: colors.textSecondary,\n fontFamily: font.primary,\n fontWeight: 600,\n fontSize: '24px',\n lineHeight: '36px',\n letterSpacing: '0.5em',\n textTransform: 'uppercase',\n marginLeft: 20\n },\n overlay: {\n position: 'absolute',\n top: 0,\n width: '100%',\n height: '100vh',\n zIndex: 5,\n backdropFilter: 'blur(50px)',\n overflowX: 'hidden'\n },\n overlayDetails: {\n height: '100%',\n zIndex: 10,\n position: 'absolute',\n top: 0,\n display: 'flex',\n justifyContent: 'center',\n flexDirection: 'column',\n alignItems: 'center'\n },\n alertDetail: {\n color: colors.textPrimary,\n fontFamily: font.primary,\n fontSize: '30px',\n lineHeight: '40px',\n textTransform: 'uppercase',\n letterSpacing: '0.15em',\n marginBottom: '30px',\n textAlign: 'center',\n [theme.breakpoints.up('md')]: {\n fontSize: '42px',\n lineHeight: '60px'\n },\n },\n button: {\n transition: 'all 0.15s linear',\n '&:hover': {\n transform: 'scale(1.1)'\n }\n }\n })\n);\n","import { useState, useEffect } from \"react\";\n\n// material-ui\nimport CssBaseline from \"@material-ui/core/CssBaseline\";\nimport { Typography as Text } from \"@material-ui/core\";\nimport { makeStyles, Theme, createStyles } from \"@material-ui/core/styles\";\n\n// configs\nimport font from \"../configs/font\";\nimport colors from \"../configs/colors\";\n\n// assets\nimport metamaskLogo from \"../assets/metamask.png\";\n\nexport default function MetamaskNotAvailable() {\n const classes = useStyles();\n\n return (\n
\n
\n
\n \"Metamask\n \n Please use a Metamask enabled browser.\n \n
\n
\n
\n );\n}\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n root: {\n display: \"flex\",\n height: \"100%\",\n padding: \"5%\",\n },\n overlayDetails: {\n height: \"100%\",\n zIndex: 10,\n position: \"absolute\",\n top: 0,\n display: \"flex\",\n justifyContent: \"center\",\n flexDirection: \"column\",\n alignItems: \"center\",\n },\n alertDetail: {\n color: colors.white,\n fontFamily: \"Nunito\",\n fontSize: \"48px\",\n lineHeight: \"72px\",\n textTransform: \"uppercase\",\n letterSpacing: \"0.15em\",\n marginBottom: \"30px\",\n textAlign: \"center\",\n },\n })\n);\n","import { Switch, Route } from \"react-router-dom\";\n\n// hooks\nimport { useMetamask } from \"./contexts/Metamask\";\n\n// pages\nimport ClaimTokens from \"./pages/ClaimTokens\";\nimport Admin from \"./pages/Admin\";\nimport MetamaskAuth from \"./pages/MetamaskAuth\";\nimport MetamaskNotAvailable from \"./pages/MetamaskNotAvailable\";\n\nexport default function App() {\n const wallet = useMetamask();\n\n if (typeof window.ethereum === \"undefined\") {\n return ;\n }\n\n if (!wallet?.user?.accounts[0]) {\n return ;\n }\n\n return (\n \n \n \n \n \n \n \n \n );\n}\n","import { Container, Service } from 'typedi';\nimport { ChumbiVesting } from 'types/ChumbiVesting';\nimport { ChumbiToken } from 'types/ChumbiToken';\n\n@Service()\nexport class ContractsInstance {\n\tprivate _ChumbiVesting: ChumbiVesting | undefined;\n\tprivate _ChumbiToken: ChumbiToken | undefined;\n\tpublic get ChumbiVesting(): ChumbiVesting {\n\t\tif (this._ChumbiVesting) return this._ChumbiVesting;\n\t\telse throw new Error('Token not initialized.');\n\t}\n\tpublic set ChumbiVesting(value: ChumbiVesting) {\n\t\tthis._ChumbiVesting = value;\n\t}\n\tpublic get ChumbiToken(): ChumbiToken {\n\t\tif (this._ChumbiToken) return this._ChumbiToken;\n\t\telse throw new Error('Token not initialized.');\n\t}\n\tpublic set ChumbiToken(value: ChumbiToken) {\n\t\tthis._ChumbiToken = value;\n\t}\n}\n\nexport const getContract = () => {\n\treturn Container.get(ContractsInstance);\n};\n","import {\n useState,\n useEffect,\n createContext,\n useContext,\n useCallback\n} from 'react';\n\n// hooks\nimport { useMetamask } from './Metamask';\n\n// libraries\nimport Container from 'typedi';\n\n// helpers\nimport { getWeb3 } from '../utilities/web3';\nimport { ContractsInstance } from '../utilities/getContract';\n\n// types\nimport {\n ChumbiVestingAddress,\n ChumbiVestingABI,\n ChumbiABI,\n ChumbiAddress\n} from '../configs/contract';\nimport { ChumbiVesting } from '../types/NIFTYVesting';\nimport { ChumbiToken } from '../types/NIFTYToken';\n\ninterface ContractContext {\n ChumbiVesting: ChumbiVesting | undefined;\n ChumbiToken: ChumbiToken | undefined;\n}\n\ninterface ContractProviderProps {\n children: JSX.Element;\n}\n\nconst Contract = createContext({\n ChumbiVesting: undefined,\n ChumbiToken: undefined\n});\n\nconst ContractProvider = (props: ContractProviderProps) => {\n const metamask = useMetamask();\n const [ChumbiContract, setChumbiContract] = useState();\n const [ChumbiTokenContract, setChumbiTokenContract] = useState();\n\n const load = useCallback(async () => {\n const contracts = Container.get(ContractsInstance);\n if (metamask.user.primaryAccount) {\n const web3 = await getWeb3();\n const ChumbiVestingContract = new web3.eth.Contract(\n ChumbiVestingABI as any,\n ChumbiVestingAddress\n ) as unknown as ChumbiVesting;\n const ChumbiTokenContract = new web3.eth.Contract(\n ChumbiABI as any,\n ChumbiAddress\n ) as unknown as ChumbiToken;\n contracts.ChumbiVesting = ChumbiVestingContract;\n contracts.ChumbiToken = ChumbiTokenContract;\n setChumbiContract(contracts.ChumbiVesting);\n setChumbiTokenContract(contracts.ChumbiToken);\n }\n }, [metamask.user.primaryAccount]);\n\n useEffect(() => {\n load();\n }, [load]);\n\n return (\n \n {props.children}\n \n );\n};\n\nexport const useContract = () => {\n return useContext(Contract);\n};\n\nexport default ContractProvider;\n","import 'reflect-metadata';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport App from './App';\nimport { BrowserRouter as Router } from 'react-router-dom';\nimport MetamaskProvider from './contexts/Metamask';\nimport ContractProvider from './contexts/Contract';\nimport { toast } from 'react-toastify';\nimport 'react-toastify/dist/ReactToastify.css';\n\ntoast.configure({ theme: 'colored', className: 'toastContainer' });\n\nReactDOM.render(\n \n \n \n \n \n \n \n \n ,\n document.getElementById('root')\n);\n"],"sourceRoot":""}