{"version":3,"sources":["config/constants/endpoints.ts","views/Home/components/TwitterCard.tsx","config/constants/particlesConfigRed.ts","views/Home/images/projectLogo.png","views/Home/components/CustomPage.tsx","views/Home/images/docs.png","views/Home/images/tokenomics.png","views/Home/images/roadmap.png","views/Home/images/chart.png","views/Home/images/github.png","views/Exchange/Exchange.tsx","views/Docs/index.tsx","style/Global.tsx","config/localisation/languageCodes.ts","contexts/Localisation/languageContext.tsx","contexts/ThemeContext.tsx","hooks/useTheme.ts","components/Menu/config.ts","components/Menu/index.tsx","components/PageLoader.tsx","App.tsx","state/index.ts","Providers.tsx","index.tsx","utils/web3.ts","contexts/Localisation/translationsContext.ts","state/pools/fetchPoolsUser.ts","state/pools/fetchPools.ts","state/pools/index.ts","state/farms/fetchFarms.ts","state/farms/fetchFarmUser.ts","state/farms/index.ts","components/layout/Container.tsx","components/layout/Page.tsx","utils/getRpcUrl.ts","contexts/RefreshContext.tsx","hooks/useRefresh.ts","utils/translateTextHelpers.ts","hooks/useI18n.ts","state/fetchBNBPrice.ts","state/hooks.ts","state/actions.ts","config/constants/types.ts","config/constants/contracts.ts","contexts/BlockContext.tsx","utils/multicall.ts","utils/addressHelpers.ts","config/constants/pools.ts","config/constants/farms.ts"],"names":["docsUrl","StyledTwitterCard","styled","Card","Div","div","TwitterCard","TranslateString","useI18n","style","padding","display","flexDirection","alignItems","size","textAlign","color","dataSource","sourceType","url","options","height","chrome","width","particlesConfig","particles","number","value","density","enable","value_area","shape","type","stroke","polygon","nb_sides","image","src","opacity","random","anim","speed","opacity_min","sync","size_min","line_linked","distance","move","straight","bounce","attract","rotateX","rotateY","interactivity","events","onhover","mode","onclick","resize","modes","grab","bubble","duration","repulse","push","particles_nb","remove","retina_detect","StyledCustomPage","section","MainImage","IconContainer","InfoCard","AvatarImage","img","useStyles","makeStyles","theme","particlesContainer","position","left","top","breakpoints","down","CustomPage","classes","zIndex","className","params","particlesConfigRed","onClick","window","open","alt","projectLogo","Exchnage","Page","RedirectContainer","RedirectAudit","p","Docs","history","useHistory","location","useLocation","React","useEffect","setTimeout","pathname","newWindow","opener","GlobalStyle","createGlobalStyle","colors","background","EN","code","language","allLanguages","CACHE_KEY","LanguageContext","createContext","selectedLanguage","setSelectedLanguage","translatedLanguage","setTranslatedLanguage","LanguageContextProvider","parseInt","process","REACT_APP_CROWDIN_PROJECTID","StringTranslations","token","REACT_APP_CROWDIN_APIKEY","children","useState","translations","setTranslations","storedLangCode","localStorage","getItem","storedLang","filter","getStoredLang","console","log","fetch","then","r","json","translationApiResponse","data","length","catch","e","error","Provider","langObject","setItem","ThemeContext","isDark","toggleTheme","ThemeContextProvider","isDarkUserSetting","JSON","parse","setIsDark","prevState","stringify","dark","light","useTheme","useContext","StyledThemeCopntext","config","label","icon","href","items","Menu","props","useWallet","account","connect","reset","mswapPriceUsd","setMswapPriceUsd","muftPriceUsd","setMuftPriceUsd","getMswapLivePrice","a","response","getMuftLivePrice","result","mswapLivePrice","quotes","USD","price","err","muftLivePrice","login","logout","currentLang","langs","setLang","cakePriceUsd","cake2PriceUsd","links","priceLink","muftPriceLink","Wrapper","PageLoader","Home","lazy","Farms","Pools","NotFound","BigNumber","EXPONENTIAL_AT","DECIMAL_PLACES","App","useFetchPublicData","Global","fallback","path","exact","tokenMode","component","memo","configureStore","devTools","reducer","farms","farmsReducer","pools","poolsReducer","Providers","rpcUrl","getRpcUrl","chainId","store","connectors","walletconnect","bsc","BlockContext","RefreshContext","ReactDOM","render","StrictMode","document","getElementById","RPC_URL","httpProvider","Web3","providers","HttpProvider","timeout","getWeb3","getContract","abi","address","contractOptions","eth","Contract","defaultTranslationState","TranslationsContext","nonBnbPools","poolsConfig","stakingTokenName","QuoteToken","BNB","bnbPools","nonMasterPools","sousId","web3","masterChefContract","masterChefABI","getMasterChefAddress","fetchPoolsAllowance","calls","map","stakingTokenAddress","name","contractAddress","CHAIN_ID","multicall","erc20ABI","allowances","reduce","acc","pool","index","toJSON","fetchUserBalances","tokenBalancesRaw","tokenBalances","getBalance","bnbBalance","bnbBalances","fetchUserStakeBalances","sousChefABI","userInfo","stakedBalances","amount","_hex","methods","call","masterPoolAmount","fetchUserPendingRewards","res","pendingRewards","pendingMSWAP","pendingReward","fetchPoolsBlockLimits","poolsWithEnd","callsStartBlock","poolConfig","callsEndBlock","starts","ends","cakePoolConfig","startBlock","endBlock","getTokenPrice","tokenAddress","lpAddress","quoteTokenAddress","quoteTokenSymbol","erc20","tokenBalanceLP","quoteTokenBlanceLP","tokenPriceVsQuote","BUSD","toNumber","getPoolRewardTokenPrice","promises","rewardTokenDetails","Promise","all","prices","fetchPoolsTotalStatking","bnbPool","callsNonBnbPools","callsBnbPools","getWbnbAddress","cakeABI","nonBnbPoolsTotalStaked","wbnbABI","bnbPoolsTotalStaked","nonBNBRewardTokenPricesInBNB","BNBRewardTokenPricesInBNB","rewardTokenPrice","totalStaked","initialState","PoolsSlice","createSlice","reducers","setPoolsPublicData","state","action","livePoolsData","payload","livePoolData","find","entry","setPoolsUserData","userData","userPoolData","updatePoolsUserData","field","findIndex","actions","fetchPoolsPublicDataAsync","dispatch","blockLimits","totalStakings","liveData","blockLimit","totalStaking","fetchPoolsUserDataAsync","stakingTokenBalances","allowance","stakingTokenBalance","stakedBalance","updateUserAllowance","updateUserBalance","updateUserStakedBalance","updateUserPendingReward","fetchFarms","farmsConfig","farmConfig","lpAdress","lpAddresses","tokenAddresses","quoteTokenAdresses","isTokenOnly","lpTokenBalanceMC","lpTotalSupply","tokenDecimals","quoteTokenDecimals","tokenAmount","pow","tokenSymbol","USDT","lpTotalInQuoteToken","times","lpTokenRatio","quoteTokenAmount","comparedTo","masterchefABI","pid","info","totalAllocPoint","MuftPerBlock","allocPoint","poolWeight","multiplier","toString","depositFeeBP","fetchFarmUserAllowances","masterChefAdress","farm","rawLpAllowances","parsedLpAllowances","lpBalance","fetchFarmUserTokenBalances","rawTokenBalances","parsedTokenBalances","tokenBalance","fetchFarmUserStakedBalances","rawStakedBalances","parsedStakedBalances","fetchFarmUserEarnings","rawEarnings","parsedEarnings","earnings","farmsSlice","setFarmsPublicData","liveFarmsData","liveFarmData","f","setFarmUserData","arrayOfUserDataObjects","forEach","userDataEl","fetchFarmsPublicDataAsync","fetchFarmUserDataAsync","userFarmAllowances","userFarmTokenBalances","userStakedBalances","userFarmEarnings","farmAllowance","Container","mediaQueries","sm","lg","nodes","getNodeUrl","randomIndex","slow","fast","RefreshContextProvider","setSlow","setFast","interval","setInterval","prev","clearInterval","useRefresh","fastRefresh","slowRefresh","variableRegex","getTranslation","translationId","foundTranslation","translation","stringId","translatedString","text","includes","stringToReplace","exec","fallbackValueAtIndex","split","replace","replaceDynamicString","useGetBNBPriceData","setData","axios","get","resp","fetchData","ZERO","useDispatch","useFarms","useSelector","useFarmFromPid","useFarmUser","usePools","usePriceBnbBusd","usePriceCakeBusd","bnbPriceUSD","usePriceMuftBusd","useTotalValue","bnbPrice","cakePrice","i","val","CAKE","plus","PoolCategory","cake","masterChef","wbnb","lottery","lotteryNFT","mulltiCall","busd","usdt","BlockContextProvider","previousBlock","useRef","block","setBlock","getBlockNumber","blockNumber","current","multi","MultiCallAbi","getMulticallAddress","itf","Interface","calldata","toLowerCase","encodeFunctionData","aggregate","returnData","decodeFunctionResult","getCakeAddress","addresses","getLotteryAddress","getLotteryTicketAddress","tokenName","poolCategory","CORE","projectLink","harvest","tokenPerBlock","sortOrder","isFinished","doomPitRewardPerBlock","risk","lpSymbol","contracts"],"mappings":"0OAAaA,EAAU,gC,iCCYjBC,EAAoBC,YAAOC,IAAPD,CAAH,8KAiBjBE,GAPMF,IAAOG,IAAV,oJAOGH,IAAOG,IAAV,uHAmCMC,EA5BK,WAClB,IAAMC,EAAkBC,cAExB,OACE,cAACP,EAAD,UACE,eAAC,IAAD,CAAUQ,MAAO,CAAEC,QAAS,IAAKC,QAAS,OAAQC,cAAe,SAAUC,WAAY,UAAvF,UACE,cAACT,EAAD,UACE,cAAC,IAAD,CAASU,KAAK,KAAKL,MAAO,CAAEM,UAAW,SAAUC,MAAO,SAAxD,SACGT,EAAgB,MAAO,qBAG5B,cAAC,IAAD,CACEU,WAAY,CACVC,WAAY,MACZC,IAAK,gCAGPC,QAAS,CACPC,OAAQ,MACRC,OAAQ,qBACRC,MAAO,eCmDJC,EA3GS,CACtBC,UAAW,CACTC,OAAQ,CACNC,MAAO,GACPC,QAAS,CACPC,QAAQ,EACRC,WAAY,MAGhBd,MAAO,CACLW,MAAO,WAETI,MAAO,CACLC,KAAM,QACNC,OAAQ,CACNV,MAAO,EACPP,MAAO,WAETkB,QAAS,CACPC,SAAU,GAEZC,MAAO,CACLC,IAAK,wBACLd,MAAO,IACPF,OAAQ,MAGZiB,QAAS,CACPX,MAAO,EACPY,QAAQ,EACRC,KAAM,CACJX,QAAQ,EACRY,MAAO,EACPC,YAAa,GACbC,MAAM,IAGV7B,KAAM,CACJa,MAAO,GACPY,QAAQ,EACRC,KAAM,CACJX,QAAQ,EACRY,MAAO,GACPG,SAAU,GACVD,MAAM,IAGVE,YAAa,CACXhB,QAAQ,EACRiB,SAAU,IACV9B,MAAO,UACPsB,QAAS,GACTf,MAAO,GAETwB,KAAM,CACJlB,QAAQ,EACRY,MAAO,EACPF,QAAQ,EACRS,UAAU,EACVC,QAAQ,EACRC,QAAS,CACPrB,QAAQ,EACRsB,QAAS,IACTC,QAAS,QAIfC,cAAe,CACbC,OAAQ,CACNC,QAAS,CACP1B,QAAQ,EACR2B,KAAM,WAERC,QAAS,CACP5B,QAAQ,EACR2B,KAAM,QAERE,QAAQ,GAEVC,MAAO,CACLC,KAAM,CACJd,SAAU,kBACVD,YAAa,CACXP,QAAS,IAGbuB,OAAQ,CACNf,SAAU,IACVhC,KAAM,GACNgD,SAAU,EACVxB,QAAS,GAEXyB,QAAS,CACPjB,SAAU,IACVgB,SAAU,IAEZE,KAAM,CACJC,aAAc,GAEhBC,OAAQ,CACND,aAAc,KAIpBE,eAAe,GCxGF,MAA0B,wCCcnCC,EAAmBlE,IAAOmE,QAAV,qXAehBC,EAAYpE,IAAOG,IAAV,yFAKTkE,EAAgBrE,IAAOG,IAAV,+SAsBbmE,GATOtE,IAAOG,IAAV,0KASOH,IAAOG,IAAV,2oBA4BRoE,EAAcvE,IAAOwE,IAAV,sKASJC,EAAYC,aAAW,SAACC,GAAD,MAAY,CAC9CC,mBAAmB,aACjBvD,MAAO,OACPF,OAAQ,OACR0D,SAAU,WACVC,KAAM,EACNC,IAAK,GAEJJ,EAAMK,YAAYC,KAAK,MAAQ,CAC9B9D,OAAQ,cAwFC+D,EAhFI,WACjB,IAAMC,EAAUV,IAChB,OACE,eAACP,EAAD,WACE,qBAAK3D,MAAO,CAAE6B,QAAS,GAAKgD,QAAS,GAArC,SACE,cAAC,IAAD,CAAWC,UAAWF,EAAQP,mBAAoBU,OAAQC,MA6C5D,eAAClB,EAAD,WACE,eAACC,EAAD,CAAUkB,QAAS,kBAAMC,OAAOC,KAAK5F,EAAS,WAA9C,UACE,cAACyE,EAAD,CAAapC,IClKR,isCDkKmBwD,IAAI,SAC5B,yCAEF,eAACrB,EAAD,CAAUkB,QAAS,kBAAMC,OAAOC,KJpKX,kEIoK+B,WAApD,UACE,cAACnB,EAAD,CAAapC,IEtKR,6kKFsKyBwD,IAAI,eAClC,+CAEF,eAACrB,EAAD,CAAUkB,QAAS,kBAAMC,OAAOC,KJvKd,sEIuK+B,WAAjD,UACE,cAACnB,EAAD,CAAapC,IG1KR,quKH0KsBwD,IAAI,YAC/B,4CAEF,eAACrB,EAAD,CAAUkB,QAAS,kBAAMC,OAAOC,KJ1KhB,wEI0K+B,WAA/C,UACE,cAACnB,EAAD,CAAapC,II9KR,6vEJ8KoBwD,IAAI,UAC7B,2CAEF,eAACrB,EAAD,CAAUkB,QAAS,kBAAMC,OAAOC,KJ7Kf,8BI6K+B,WAAhD,UACE,cAACnB,EAAD,CAAapC,IKlLR,yrJLkLqBwD,IAAI,WAC9B,8CAGJ,cAACvB,EAAD,UACE,qBAAKjC,IAAKyD,EAAaD,IAAI,QAAQpF,MAAO,CAAEc,MAAO,OAAQF,OAAQ,YAErE,cAAC,EAAD,Q,iCM1KS0E,I,QAAAA,EATf,WAEE,OACE,cAACC,EAAA,EAAD,CAAMvF,MAAO,CAAEI,WAAY,UAA3B,SACE,qBAAKwB,IAAI,+EAA+EwD,IAAI,mBCL5FI,EAAoB/F,IAAOG,IAAV,kKASjB6F,EAAgBhG,IAAOiG,EAAV,iEAkCJC,EA7BF,WACX,IAAMC,EAAUC,cACVC,EAAWC,cAoBjB,OAnBAC,IAAMC,WAAU,WACdC,YAAW,WACT,IAAIxF,EAAM,GASV,GAR0B,SAAtBoF,EAASK,WAAqBzF,EXpBlB,kDWqBU,QAAtBoF,EAASK,WAAoBzF,EXpBlB,qCWqBW,UAAtBoF,EAASK,WAAsBzF,EAAMnB,GACf,WAAtBuG,EAASK,WAAuBzF,EXpBxC,mHWqB8B,SAAtBoF,EAASK,WAAqBzF,EXjBlB,kCWkBU,UAAtBoF,EAASK,WAAsBzF,EXjBlB,0CWkBS,eAAtBoF,EAASK,WAA2BzF,EXjBlB,8CWkBI,gBAAtBoF,EAASK,WAA4BzF,EXjBZ,iCWkBH,QAAtBoF,EAASK,UACa,SAAtBL,EAASK,SAAb,CAEA,IAAMC,EAAYlB,OAAOC,KAAKzE,EAAK,SAC/B0F,IAAWA,EAAUC,OAAS,MAClCT,EAAQrC,KAAK,QACZ,OACF,CAACqC,EAASE,IAEX,cAACN,EAAD,UACE,cAACC,EAAD,iC,0BChBSa,GAlBKC,YAAH,6SAKY,qBAAGnC,MAAkBoC,OAAOC,c,8CCd5CC,GAAK,CAAEC,KAAM,KAAMC,SAAU,WA8B7BC,GAAe,CAC1BH,GA5BkB,CAAEC,KAAM,QAASC,SAAU,4BAC3B,CAAED,KAAM,QAASC,SAAU,6B,oBCCzCE,GAAY,sBAcZC,GAAkBf,IAAMgB,cAAc,CAC1CC,iBAAkBP,GAClBQ,oBAAqB,aACrBC,mBAAoBT,GACpBU,sBAAuB,eAanBC,IATYC,SAASC,uTAAYC,6BACT,IAAIC,sBAAmB,CACnDC,MAAOH,uTAAYI,2BAOW,SAAC,GAAkB,IAAhBC,EAAe,EAAfA,SACjC,EAAgDC,mBAAcnB,IAA9D,oBAAOO,EAAP,KAAyBC,EAAzB,KACA,EAAoDW,mBAAcnB,IAAlE,oBAAOS,EAAP,KAA2BC,EAA3B,KACA,EAAwCS,mBAAqB,IAA7D,oBAAOC,EAAP,KAAqBC,EAArB,KAQA9B,qBAAU,WACR,IAAM+B,EAAiBC,aAAaC,QAAQpB,IAC5C,GAAIkB,EAAgB,CAClB,IAAMG,EATY,SAACH,GACrB,OAAOnB,GAAauB,QAAO,SAACxB,GAC1B,OAAOA,EAASD,OAASqB,KACxB,GAMkBK,CAAcL,GACjCd,EAAoBiB,QAEpBjB,EAAoBR,MAErB,IAEHT,qBAAU,WACJgB,IACFqB,QAAQC,IAAR,uCAA6CtB,EAAiBN,KAA9D,YACA6B,MAAM,UAAD,OAAWvB,EAAiBN,KAA5B,UACF8B,MAAK,SAACC,GAAD,OAAOA,EAAEC,UAEdF,MAAK,SAACG,GACDA,EAAuBC,KAAKC,OAAS,EACvCf,EAAgB,CAAC,UAEjBA,EAAgBa,EAAuBC,SAG1CJ,MAAK,kBAAMrB,EAAsBH,MACjC8B,OAAM,SAACC,GACNV,QAAQW,MAAM,SACdX,QAAQW,MAAMD,GACdjB,EAAgB,CAAC,gBAGtB,CAACd,EAAkBc,IAOtB,OACE,cAAChB,GAAgBmC,SAAjB,CACEhI,MAAO,CAAE+F,mBAAkBC,oBAPF,SAACiC,GAC5BjC,EAAoBiC,GACpBlB,aAAamB,QAAQtC,GAAWqC,EAAWxC,OAK6BQ,qBAAoBC,yBAD5F,SAGE,cAAC,KAAoB8B,SAArB,CAA8BhI,MAAO,CAAE4G,eAAcC,mBAArD,SAAyEH,QCpFzEd,GAAY,UAEZuC,GAAerD,IAAMgB,cAAc,CAAEsC,OAAQ,KAAMC,YAAa,kBAAM,QAEtEC,GAAuB,SAAC,GAAkB,IAAhB5B,EAAe,EAAfA,SAC9B,EAA4BC,oBAAS,WACnC,IAAM4B,EAAoBxB,aAAaC,QAAQpB,IAC/C,QAAO2C,GAAoBC,KAAKC,MAAMF,MAFxC,oBAAOH,EAAP,KAAeM,EAAf,KAYA,OACE,cAACP,GAAaH,SAAd,CAAuBhI,MAAO,CAAEoI,SAAQC,YARtB,WAClBK,GAAU,SAACC,GAET,OADA5B,aAAamB,QAAQtC,GAAW4C,KAAKI,WAAWD,KACxCA,OAKV,SACE,cAAC,IAAD,CAAiBzF,MAAOkF,EAASS,IAAOC,IAAxC,SAAgDpC,OCbvCqC,GANE,WACf,MAAgCC,qBAAWb,IAE3C,MAAO,CAAEC,OAFT,EAAQA,OAESC,YAFjB,EAAgBA,YAEcnF,MADhB8F,qBAAWC,OCiHZC,GArHa,CAC1B,CACEC,MAAO,OACPC,KAAM,kBACNC,KAAM,KAER,CACEF,MAAO,WACPC,KAAM,YACNE,MAAO,CACL,CACEH,MAAO,OACPE,KAAM,SAER,CACEF,MAAO,YACPE,KAAM,gBAIZ,CACEF,MAAO,gBACPC,KAAM,kBACNC,KAAM,UAER,CACEF,MAAO,YACPC,KAAM,WACNC,KAAM,UAER,CACEF,MAAO,aACPC,KAAM,cACNC,KAAM,YAER,CACEF,MAAO,qBACPC,KAAM,iBACNC,KAAM,eAER,CACEF,MAAO,iBACPC,KAAM,WACNC,KAAM,SAER,CACEF,MAAO,mBACPC,KAAM,WACNC,KAAM,SAER,CACEF,MAAO,SACPC,KAAM,cACNC,KAAM,UAER,CACEF,MAAO,MACPC,KAAM,WACNC,KAAM,QAER,CACEF,MAAO,WACPC,KAAM,WACNE,MAAO,CACL,CACEH,MAAO,gBACPE,KAAM,QAER,CACEF,MAAO,aACPE,KAAM,OAER,CACEF,MAAO,YACPE,KAAM,OAER,CACEF,MAAO,MACPE,KAAM,WCICE,GA1EF,SAACC,GACZ,MAAoCC,cAA5BC,EAAR,EAAQA,QAASC,EAAjB,EAAiBA,QAASC,EAA1B,EAA0BA,MAC1B,EAAkDZ,qBAAWnD,IAArDE,EAAR,EAAQA,iBAAkBC,EAA1B,EAA0BA,oBAC1B,EAAgC+C,KAAxBX,EAAR,EAAQA,OAAQC,EAAhB,EAAgBA,YAIhB,EAA0C1B,mBAAS,GAAnD,oBAAOkD,EAAP,KAAsBC,EAAtB,KACA,EAAwCnD,mBAAS,GAAjD,oBAAOoD,EAAP,KAAqBC,EAArB,KAIMC,EAAiB,yCAAG,+BAAAC,EAAA,+EAEC5C,MlBJC,qEkBEF,cAEhB6C,EAFgB,gBAGHA,EAAS1C,OAHN,cAGhBE,EAHgB,yBAIfA,GAJe,wCAMtBP,QAAQC,IAAI,oBAAZ,MANsB,+DAAH,qDAWjB+C,EAAgB,yCAAG,+BAAAF,EAAA,+EAEE5C,MlBdA,sEkBYF,cAEf6C,EAFe,gBAGFA,EAAS1C,OAHP,cAGfE,EAHe,yBAIdA,GAJc,wCAMrBP,QAAQC,IAAI,oBAAZ,MANqB,+DAAH,qDA+BtB,OApBAtC,qBAAU,WACRkF,IACG1C,MAAK,SAAC8C,GACL,IAAMC,EAAiBD,EAAO,GAAGE,OAAOC,IAAIC,MAC5CX,EAAiBQ,MAElBzC,OAAM,SAAC6C,GACNtD,QAAQC,IAAI,eAAgBqD,MAGhCN,IACG7C,MAAK,SAAC8C,GACL,IAAMM,EAAgBN,EAAO,GAAGE,OAAOC,IAAIC,MAC3CT,EAAgBW,MAEjB9C,OAAM,SAAC6C,GACNtD,QAAQC,IAAI,eAAgBqD,QAE/B,IAGD,cAAC,IAAD,cACEhB,QAASA,EACTkB,MAAOjB,EACPkB,OAAQjB,EACRxB,OAAQA,EACRC,YAAaA,EACbyC,YAAa/E,GAAoBA,EAAiBN,KAClDsF,MAAOpF,GACPqF,QAAShF,EACTiF,aAAcpB,EACdqB,cAAenB,EACfoB,MAAOjC,GACPkC,UAAU,wEACVC,cAAc,yEACV7B,KC1EJ8B,GAAU/M,YAAO8F,IAAP9F,CAAH,kGAcEgN,GARc,WAC3B,OACE,cAACD,GAAD,UACE,cAAC,IAAD,OCIAE,GAAOC,gBAAK,kBAAM,8EAClBC,GAAQD,gBAAK,kBAAM,sEAEnBE,GAAQF,gBAAK,kBAAM,8EAEnBG,GAAWH,gBAAK,kBAAM,mCAI5BI,IAAU3C,OAAO,CACf4C,eAAgB,IAChBC,eAAgB,KAGlB,IAAMC,GAAgB,WACpB,MAA6BvC,cAArBC,EAAR,EAAQA,QAASC,EAAjB,EAAiBA,QASjB,OARA5E,qBAAU,YACH2E,GAAW1F,OAAO+C,aAAaC,QAAQ,kBAC1C2C,EAAQ,cAET,CAACD,EAASC,IAEbsC,cAGE,eAAC,IAAD,WACE,cAAC,IAAD,IACA,cAACC,GAAD,IACA,cAAC,GAAD,UACE,cAAC,WAAD,CAAUC,SAAU,cAAC,GAAD,IAApB,SACE,eAAC,IAAD,WACE,eAAC,IAAD,CAAOC,KAAK,IAAIC,OAAK,EAArB,UACE,cAACb,GAAD,IACA,cAAC,EAAD,OAEF,cAAC,IAAD,CAAOY,KAAK,SAAZ,SACE,cAACV,GAAD,MAEF,cAAC,IAAD,CAAOU,KAAK,SAAZ,SACE,cAACV,GAAD,CAAOY,WAAS,MAElB,cAAC,IAAD,CAAOF,KAAK,WAAZ,SAEE,cAACT,GAAD,MAEF,cAAC,IAAD,CAAOS,KAAK,cAAZ,SACE,cAAC,EAAD,MAEF,cAAC,IAAD,CAAOA,KAAK,QAAZ,SACE,cAAC,EAAD,MAEF,cAAC,IAAD,CAAOA,KAAK,QAAZ,SACE,cAAC,EAAD,MAEF,cAAC,IAAD,CAAOC,OAAK,EAACD,KAAK,QAAlB,SACE,cAAC,EAAD,MAEF,cAAC,IAAD,CAAOC,OAAK,EAACD,KAAK,aAAlB,SACE,cAAC,EAAD,MAEF,cAAC,IAAD,CAAOC,OAAK,EAACD,KAAK,SAAlB,SACE,cAAC,EAAD,MAEF,cAAC,IAAD,CAAOC,OAAK,EAACD,KAAK,OAAlB,SACE,cAAC,EAAD,MAEF,cAAC,IAAD,CAAOC,OAAK,EAACD,KAAK,OAAlB,SACE,cAAC,EAAD,MAEF,cAAC,IAAD,CAAOC,OAAK,EAACD,KAAK,MAAlB,SACE,cAAC,EAAD,MAEF,cAAC,IAAD,CAAOC,OAAK,EAACD,KAAK,MAAlB,SACE,cAAC,EAAD,MAEF,cAAC,IAAD,CAAOC,OAAK,EAACD,KAAK,OAAlB,SACE,cAAC,EAAD,MAGF,cAAC,IAAD,CAAOA,KAAK,SAAZ,SACE,cAACT,GAAD,MAmBF,cAAC,IAAD,CAAOY,UAAWX,gBASf9G,OAAM0H,KAAKR,I,+EC1HXS,gBAAe,CAC5BC,UAAUrG,EACVsG,QAAS,CACPC,MAAOC,KACPC,MAAOC,QC8BIC,GA1Ba,SAAC,GAAkB,IAAhBtG,EAAe,EAAfA,SACvBuG,EAASC,eACTC,EAAU/G,SAASC,MACzB,OACE,cAAC,KAAD,CAAU+G,MAAOA,GAAjB,SACE,cAAC,GAAD,UACE,cAAC,GAAD,UACE,cAAC,IAAD,CACED,QAASA,EACTE,WAAY,CACVC,cAAe,CAAEL,UACjBM,QAJJ,SAOE,cAACC,GAAA,EAAD,UACE,cAACC,GAAA,EAAD,UACE,cAAC,IAAD,UAAgB/G,iBCvBhCgH,IAASC,OACP,cAAC,IAAMC,WAAP,UACE,cAAC,GAAD,UACE,cAAC,GAAD,QAGJC,SAASC,eAAe,U,iCCX1B,mGAMMC,EAAUb,cACVc,EAAe,IAAIC,IAAKC,UAAUC,aAAaJ,EAAS,CAAEK,QAAS,MAKnEC,EAAU,WAEd,OADa,IAAIJ,IAAKD,IAGlBM,EAAc,SAACC,EAAUC,EAAiBC,GAE9C,OAAO,IADMJ,IACGK,IAAIC,UAASJ,EAA2BC,EAASC,K,iCClBnE,6CAOMG,EAA4C,CAChDhI,aAAc,GACdC,gBAAiB,cAGNgI,EAAsB/I,wBAAc8I,I,q/GCG3CE,EAAcC,IAAY7H,QAAO,SAAC1C,GAAD,OAAOA,EAAEwK,mBAAqBC,IAAWC,OAC1EC,EAAWJ,IAAY7H,QAAO,SAAC1C,GAAD,OAAOA,EAAEwK,mBAAqBC,IAAWC,OACvEE,EAAiBL,IAAY7H,QAAO,SAAC1C,GAAD,OAAoB,IAAbA,EAAE6K,UAC7CC,EAAOjB,cACPkB,EAAqB,IAAID,EAAKZ,IAAIC,SAASa,EAAqCC,eAEzEC,EAAmB,uCAAG,WAAOhG,GAAP,iBAAAQ,EAAA,6DAC3ByF,EAAQb,EAAYc,KAAI,SAACpL,GAAD,MAAQ,CACpCgK,QAAShK,EAAEqL,oBACXC,KAAM,YACNjM,OAAQ,CAAC6F,EAASlF,EAAEuL,gBAAgBC,SAJL,SAORC,YAAUC,EAAUP,GAPZ,cAO3BQ,EAP2B,yBAQ1BrB,EAAYsB,QACjB,SAACC,EAAKC,EAAMC,GAAZ,mBAAC,eAA2BF,GAA5B,kBAAkCC,EAAKjB,OAAS,IAAIxD,IAAUsE,EAAWI,IAAQC,aACjF,KAV+B,2CAAH,sDAcnBC,EAAiB,uCAAG,WAAO/G,GAAP,uBAAAQ,EAAA,6DAEzByF,EAAQb,EAAYc,KAAI,SAACpL,GAAD,MAAQ,CACpCgK,QAAShK,EAAEqL,oBACXC,KAAM,YACNjM,OAAQ,CAAC6F,OALoB,SAOAuG,YAAUC,EAAUP,GAPpB,cAOzBe,EAPyB,OAQzBC,EAAgB7B,EAAYsB,QAChC,SAACC,EAAKC,EAAMC,GAAZ,mBAAC,eAA2BF,GAA5B,kBAAkCC,EAAKjB,OAAS,IAAIxD,IAAU6E,EAAiBH,IAAQC,aACvF,IAV6B,SAcNlB,EAAKZ,IAAIkC,WAAWlH,GAdd,cAczBmH,EAdyB,OAezBC,EAAc3B,EAASiB,QAC3B,SAACC,EAAKC,GAAN,mBAAC,eAAoBD,GAArB,kBAA2BC,EAAKjB,OAAS,IAAIxD,IAAUgF,GAAYL,aACnE,IAjB6B,6CAoBnBG,GAAkBG,IApBC,4CAAH,sDAuBjBC,EAAsB,uCAAG,WAAOrH,GAAP,uBAAAQ,EAAA,6DAC9ByF,EAAQP,EAAeQ,KAAI,SAACpL,GAAD,MAAQ,CACvCgK,QAAShK,EAAEuL,gBAAgBC,IAC3BF,KAAM,WACNjM,OAAQ,CAAC6F,OAJyB,SAMbuG,YAAUe,EAAarB,GANV,cAM9BsB,EAN8B,OAO9BC,EAAiB9B,EAAegB,QACpC,SAACC,EAAKC,EAAMC,GAAZ,mBAAC,eACIF,GADL,kBAEGC,EAAKjB,OAAS,IAAIxD,IAAUoF,EAASV,GAAOY,OAAOC,MAAMZ,aAE5D,IAZkC,SAgBOjB,EAAmB8B,QAAQJ,SAAS,IAAKvH,GAAS4H,OAhBzD,uBAgBpBC,EAhBoB,EAgB5BJ,OAhB4B,6CAkBxBD,GAlBwB,IAkBR,EAAG,IAAIrF,IAAU0F,GAAkBf,YAlB3B,4CAAH,sDAqBtBgB,EAAuB,uCAAG,WAAO9H,GAAP,qBAAAQ,EAAA,6DAC/ByF,EAAQP,EAAeQ,KAAI,SAACpL,GAAD,MAAQ,CACvCgK,QAAShK,EAAEuL,gBAAgBC,IAC3BF,KAAM,gBACNjM,OAAQ,CAAC6F,OAJ0B,SAMnBuG,YAAUe,EAAarB,GANJ,cAM/B8B,EAN+B,OAO/BC,EAAiBtC,EAAegB,QACpC,SAACC,EAAKC,EAAMC,GAAZ,mBAAC,eACIF,GADL,kBAEGC,EAAKjB,OAAS,IAAIxD,IAAU4F,EAAIlB,IAAQC,aAE3C,IAZmC,SAgBTjB,EAAmB8B,QAAQM,aAAa,IAAKjI,GAAS4H,OAhB7C,cAgB/BM,EAhB+B,oDAkBzBF,GAlByB,IAkBT,EAAG,IAAI7F,IAAU+F,GAAepB,YAlBvB,2CAAH,sD,0BCjEvBqB,EAAqB,uCAAG,oCAAA3H,EAAA,6DAC7B4H,EAAe/C,IAAY7H,QAAO,SAAC1C,GAAD,OAAoB,IAAbA,EAAE6K,UAC3C0C,EAAkBD,EAAalC,KAAI,SAACoC,GACxC,MAAO,CACLxD,QAASwD,EAAWjC,gBAAgBC,IACpCF,KAAM,iBAGJmC,EAAgBH,EAAalC,KAAI,SAACoC,GACtC,MAAO,CACLxD,QAASwD,EAAWjC,gBAAgBC,IACpCF,KAAM,oBAXyB,SAedG,YAAUe,EAAae,GAfT,cAe7BG,EAf6B,gBAgBhBjC,YAAUe,EAAaiB,GAhBP,cAgB7BE,EAhB6B,yBAkB5BL,EAAalC,KAAI,SAACwC,EAAgB7B,GACvC,IAAM8B,EAAaH,EAAO3B,GACpB+B,EAAWH,EAAK5B,GACtB,MAAO,CACLlB,OAAQ+C,EAAe/C,OACvBgD,WAAY,IAAIxG,IAAUwG,GAAY7B,SACtC8B,SAAU,IAAIzG,IAAUyG,GAAU9B,cAxBH,4CAAH,qDA6B5B+B,EAAa,uCAAG,+CAAArI,EAAA,6DAASsI,EAAT,EAASA,aAAcC,EAAvB,EAAuBA,UAAWC,EAAlC,EAAkCA,kBAAmBC,EAArD,EAAqDA,iBACnEhD,EAAQ,CAEZ,CACEnB,QAASgE,EACT1C,KAAM,YACNjM,OAAQ,CAAC4O,IAGX,CACEjE,QAASkE,EACT5C,KAAM,YACNjM,OAAQ,CAAC4O,KAZO,SA2CVxC,YAAU2C,EAAOjD,GA3CP,0CAqClBkD,EArCkB,KAsClBC,EAtCkB,KA+ClBC,EADEJ,IAAqB1D,IAAW+D,KACd,IAAInH,IAAU,GAEd,IAAIA,IAAUiH,GAAoBpU,IAAI,IAAImN,IAAUgH,IAE1EzL,QAAQC,IAAI,gBAAiB,CAAE0L,kBAAmBA,EAAkBE,aAnDhD,kBAqDbF,EAAkBE,YArDL,4CAAH,sDAwDbC,EAAuB,uCAAG,WAAOpG,GAAP,iBAAA5C,EAAA,6DACxBiJ,EAAW,GAEjBrG,EAAM8C,IAAN,uCAAU,WAAOU,GAAP,SAAApG,EAAA,sDACRiJ,EAAS9Q,KAAKkQ,EAAcjC,EAAK8C,qBADzB,2CAAV,uDAH8B,SAOTC,QAAQC,IAAIH,GAPH,cAOxBI,EAPwB,yBAQvBA,GARuB,2CAAH,sDAWhBC,EAAuB,uCAAG,0CAAAtJ,EAAA,6DAC/B4E,EAAcC,IAAY7H,QAAO,SAAC1C,GAAD,OAAOA,EAAEwK,mBAAqBC,IAAWC,OAC1EuE,EAAU1E,IAAY7H,QAAO,SAAC1C,GAAD,OAAOA,EAAEwK,mBAAqBC,IAAWC,OAGtEwE,EAAmB5E,EAAYc,KAAI,SAACoC,GACxC,MAAO,CACLxD,QAASwD,EAAWnC,oBACpBC,KAAM,YACNjM,OAAQ,CAACmO,EAAWjC,gBAAgBC,SAIlC2D,EAAgBF,EAAQ7D,KAAI,SAACoC,GACjC,MAAO,CACLxD,QAASoF,cACT9D,KAAM,YACNjM,OAAQ,CAACmO,EAAWjC,gBAAgBC,SAjBH,SAqBAC,YAAU4D,EAASH,GArBnB,cAqB/BI,EArB+B,gBAsBH7D,YAAU8D,EAASJ,GAtBhB,cAsB/BK,EAtB+B,iBAwBMd,EAAwBpE,GAxB9B,eAwB/BmF,EAxB+B,iBA0BGf,EAAwBpE,GA1B3B,eA0B/BoF,EA1B+B,+CA6BhCpF,EAAYc,KAAI,SAACpL,EAAG+L,GAAJ,MAAe,CAChClB,OAAQ7K,EAAE6K,OACV8E,iBAAkBF,EAA6B1D,GAC/C6D,YAAa,IAAIvI,IAAUiI,EAAuBvD,IAAQC,cAhCzB,YAkChCiD,EAAQ7D,KAAI,SAACpL,EAAG+L,GAAJ,MAAe,CAC5BlB,OAAQ7K,EAAE6K,OACV8E,iBAAkBD,EAA0B3D,GAC5C6D,YAAa,IAAIvI,IAAUmI,EAAoBzD,IAAQC,gBArCtB,4CAAH,qDC/F9B6D,EAA2B,CAAE1M,KAAK,YAAKoH,MAEhCuF,EAAaC,YAAY,CACpCzE,KAAM,QACNuE,eACAG,SAAU,CACRC,mBAAoB,SAACC,EAAOC,GAC1B,IAAMC,EAAwBD,EAAOE,QACrCH,EAAM/M,KAAO+M,EAAM/M,KAAKiI,KAAI,SAACU,GAC3B,IAAMwE,EAAeF,EAAcG,MAAK,SAACC,GAAD,OAAWA,EAAM3F,SAAWiB,EAAKjB,UACzE,OAAO,2BAAKiB,GAASwE,OAGzBG,iBAAkB,SAACP,EAAOC,GACxB,IAAMO,EAAWP,EAAOE,QACxBH,EAAM/M,KAAO+M,EAAM/M,KAAKiI,KAAI,SAACU,GAC3B,IAAM6E,EAAeD,EAASH,MAAK,SAACC,GAAD,OAAWA,EAAM3F,SAAWiB,EAAKjB,UACpE,OAAO,2BAAKiB,GAAZ,IAAkB4E,SAAUC,QAGhCC,oBAAqB,SAACV,EAAOC,GAC3B,MAAiCA,EAAOE,QAAhCQ,EAAR,EAAQA,MAAOrV,EAAf,EAAeA,MAAOqP,EAAtB,EAAsBA,OAChBkB,EAAQmE,EAAM/M,KAAK2N,WAAU,SAAC9Q,GAAD,OAAOA,EAAE6K,SAAWA,KACvDqF,EAAM/M,KAAK4I,GAAX,2BAAyBmE,EAAM/M,KAAK4I,IAApC,IAA4C2E,SAAS,2BAAMR,EAAM/M,KAAK4I,GAAO2E,UAAzB,kBAAoCG,EAAQrV,UAM/F,EAAsEsU,EAAWiB,QAAzEd,EAAR,EAAQA,mBAAoBQ,EAA5B,EAA4BA,iBAAkBG,EAA9C,EAA8CA,oBAGxCI,EAA4B,yDAAM,WAAOC,GAAP,mBAAAvL,EAAA,sEACnB2H,IADmB,cACvC6D,EADuC,gBAEjBlC,IAFiB,OAEvCmC,EAFuC,OAI7CvO,QAAQC,IAAI,gBAAiBsO,GAEvBC,EAAW7G,IAAYa,KAAI,SAACU,GAChC,IAAMuF,EAAaH,EAAYX,MAAK,SAACC,GAAD,OAAWA,EAAM3F,SAAWiB,EAAKjB,UAC/DyG,EAAeH,EAAcZ,MAAK,SAACC,GAAD,OAAWA,EAAM3F,SAAWiB,EAAKjB,UACzE,OAAO,2BACFwG,GACAC,MAIPL,EAAShB,EAAmBmB,IAfiB,2CAAN,uDAkB5BG,EAA0B,SAACrM,GAAD,8CAAa,WAAO+L,GAAP,uBAAAvL,EAAA,sEACzBwF,EAAoBhG,GADK,cAC5CyG,EAD4C,gBAEfM,EAAkB/G,GAFH,cAE5CsM,EAF4C,gBAGrBjF,EAAuBrH,GAHF,cAG5CwH,EAH4C,iBAIrBM,EAAwB9H,GAJH,QAI5CgI,EAJ4C,OAM5CwD,EAAWnG,IAAYa,KAAI,SAACU,GAAD,MAAW,CAC1CjB,OAAQiB,EAAKjB,OACb4G,UAAW9F,EAAWG,EAAKjB,QAC3B6G,oBAAqBF,EAAqB1F,EAAKjB,QAC/C8G,cAAejF,EAAeZ,EAAKjB,QACnCuC,cAAeF,EAAepB,EAAKjB,YAGrCoG,EAASR,EAAiBC,IAdwB,4CAAb,uDAiB1BkB,EAAsB,SAAC/G,EAAgB3F,GAAjB,8CAAqC,WAAO+L,GAAP,eAAAvL,EAAA,sEAC7CwF,EAAoBhG,GADyB,OAChEyG,EADgE,OAEtEsF,EAASL,EAAoB,CAAE/F,SAAQgG,MAAO,YAAarV,MAAOmQ,EAAWd,MAFP,2CAArC,uDAKtBgH,EAAoB,SAAChH,EAAgB3F,GAAjB,8CAAqC,WAAO+L,GAAP,eAAAvL,EAAA,sEACxCuG,EAAkB/G,GADsB,OAC9DiH,EAD8D,OAEpE8E,EAASL,EAAoB,CAAE/F,SAAQgG,MAAO,sBAAuBrV,MAAO2Q,EAActB,MAFtB,2CAArC,uDAKpBiH,EAA0B,SAACjH,EAAgB3F,GAAjB,8CAAqC,WAAO+L,GAAP,eAAAvL,EAAA,sEAC7C6G,EAAuBrH,GADsB,OACpEwH,EADoE,OAE1EuE,EAASL,EAAoB,CAAE/F,SAAQgG,MAAO,gBAAiBrV,MAAOkR,EAAe7B,MAFX,2CAArC,uDAK1BkH,EAA0B,SAAClH,EAAgB3F,GAAjB,8CAAqC,WAAO+L,GAAP,eAAAvL,EAAA,sEAC7CsH,EAAwB9H,GADqB,OACpEgI,EADoE,OAE1E+D,EAASL,EAAoB,CAAE/F,SAAQgG,MAAO,gBAAiBrV,MAAO0R,EAAerC,MAFX,2CAArC,uDAKxBiF,MAAf,S,mOC9FMtE,EAAW3J,KAsHFmQ,EApHC,uCAAG,4BAAAtM,EAAA,6DACjB9C,QAAQC,IAAI,WAAY2I,GADP,SAEEqD,QAAQC,IACzBmD,IAAY7G,IAAZ,uCAAgB,WAAO8G,GAAP,yDAAAxM,EAAA,6DACRyM,EAAWD,EAAWE,YAAY5G,IAClCL,EAAQ,CAEZ,CACEnB,QAASkI,EAAWG,eAAe7G,IACnCF,KAAM,YACNjM,OAAQ,CAAC8S,IAGX,CACEnI,QAASkI,EAAWI,mBAAmB9G,IACvCF,KAAM,YACNjM,OAAQ,CAAC8S,IAGX,CACEnI,QAASkI,EAAWK,YAAcL,EAAWG,eAAe7G,IAAY2G,EACxE7G,KAAM,YACNjM,OAAQ,CAAC4L,gBAGX,CACEjB,QAASmI,EACT7G,KAAM,eAGR,CACEtB,QAASkI,EAAWG,eAAe7G,IACnCF,KAAM,YAGR,CACEtB,QAASkI,EAAWI,mBAAmB9G,IACvCF,KAAM,aAlCI,SAuCNG,YAAU2C,EAAOjD,GAvCX,0CAsCPkD,EAtCO,KAsCSC,EAtCT,KAsC6BkE,EAtC7B,KAsC+CC,EAtC/C,KAsC8DC,EAtC9D,KAsC6EC,EAtC7E,KA4CVT,EAAWK,aACbK,EAAc,IAAIvL,IAAUmL,GAAkBtY,IAAI,IAAImN,IAAU,IAAIwL,IAAIH,IACpER,EAAWY,cAAgBrI,IAAW+D,MAAQ0D,EAAW/D,mBAAqB1D,IAAW+D,OAC3FD,EAAoB,IAAIlH,IAAU,IAGlCkH,EADE2D,EAAWY,cAAgBrI,IAAWsI,MAAQb,EAAW/D,mBAAqB1D,IAAWsI,KACvE,IAAI1L,IAAU,GAEd,IAAIA,IAAUiH,GAAoBpU,IAAI,IAAImN,IAAUgH,IAE1E2E,EAAsBJ,EAAYK,MAAM1E,KAGlC2E,EAAe,IAAI7L,IAAUmL,GAAkBtY,IAAI,IAAImN,IAAUoL,IAGvEO,EAAsB,IAAI3L,IAAUiH,GACjCpU,IAAI,IAAImN,IAAU,IAAIwL,IAAI,KAC1BI,MAAM,IAAI5L,IAAU,IACpB4L,MAAMC,GAGTN,EAAc,IAAIvL,IAAUgH,GAAgBnU,IAAI,IAAImN,IAAU,IAAIwL,IAAIH,IAAgBO,MAAMC,GACtFC,EAAmB,IAAI9L,IAAUiH,GACpCpU,IAAI,IAAImN,IAAU,IAAIwL,IAAIF,IAC1BM,MAAMC,GAGP3E,EADEqE,EAAYQ,WAAW,GAAK,EACVD,EAAiBjZ,IAAI0Y,GAErB,IAAIvL,IAAUiH,GAAoBpU,IAAI,IAAImN,IAAUgH,KA1E9D,UA8EsC5C,YAAU4H,EAAe,CAC3E,CACErJ,QAASiB,cACTK,KAAM,WACNjM,OAAQ,CAAC6S,EAAWoB,MAEtB,CACEtJ,QAASiB,cACTK,KAAM,mBAER,CACEtB,QAASiB,cACTK,KAAM,mBA1FI,2CA8EPiI,EA9EO,KA8EDC,EA9EC,KA8EgBC,EA9EhB,KA8FRC,EAAa,IAAIrM,IAAUkM,EAAKG,WAAW9G,MAC3C+G,EAAaD,EAAWxZ,IAAI,IAAImN,IAAUmM,IA/FlC,6CAkGTtB,GAlGS,IAmGZU,YAAaA,EAAY5G,SAEzBgH,oBAAqBA,EAAoBhH,SACzCuC,kBAAmBA,EAAkBvC,SACrC2H,WAAYA,EAAWlF,WACvBmF,WAAW,GAAD,OAAKF,EAAWxZ,IAAI,KAAK2Z,WAAzB,KACVC,aAAcP,EAAKO,aACnBL,aAAc,IAAIpM,IAAUoM,GAAchF,cA1G9B,4CAAhB,wDAHe,cAEXtL,EAFW,yBAiHVA,GAjHU,2CAAH,qDCDH4Q,EAAuB,uCAAG,WAAO7O,GAAP,qBAAAQ,EAAA,6DAC/BsO,EAAmB/I,cAEnBE,EAAQ8G,IAAY7G,KAAI,SAAC6I,GAE7B,MAAO,CAAEjK,QADiBiK,EAAK1B,YAAc0B,EAAK5B,eAAe7G,IAAYyI,EAAK7B,YAAY5G,IACzDF,KAAM,YAAajM,OAAQ,CAAC6F,EAAS8O,OALvC,SAQPvI,YAAUC,EAAUP,GARb,cAQ/B+I,EAR+B,OAS/BC,EAAqBD,EAAgB9I,KAAI,SAACgJ,GAC9C,OAAO,IAAI/M,IAAU+M,GAAWpI,YAVG,kBAY9BmI,GAZ8B,2CAAH,sDAevBE,EAA0B,uCAAG,WAAOnP,GAAP,mBAAAQ,EAAA,6DAClCyF,EAAQ8G,IAAY7G,KAAI,SAAC6I,GAE7B,MAAO,CACLjK,QAFwBiK,EAAK1B,YAAc0B,EAAK5B,eAAe7G,IAAYyI,EAAK7B,YAAY5G,IAG5FF,KAAM,YACNjM,OAAQ,CAAC6F,OAN2B,SAUTuG,YAAUC,EAAUP,GAVX,cAUlCmJ,EAVkC,OAWlCC,EAAsBD,EAAiBlJ,KAAI,SAACoJ,GAChD,OAAO,IAAInN,IAAUmN,GAAcxI,YAZG,kBAcjCuI,GAdiC,2CAAH,sDAiB1BE,EAA2B,uCAAG,WAAOvP,GAAP,qBAAAQ,EAAA,6DACnCsO,EAAmB/I,cAEnBE,EAAQ8G,IAAY7G,KAAI,SAAC6I,GAC7B,MAAO,CACLjK,QAASgK,EACT1I,KAAM,WACNjM,OAAQ,CAAC4U,EAAKX,IAAKpO,OAPkB,SAWTuG,YAAU4H,EAAelI,GAXhB,cAWnCuJ,EAXmC,OAYnCC,EAAuBD,EAAkBtJ,KAAI,SAACuG,GAClD,OAAO,IAAItK,IAAUsK,EAAc,GAAG/E,MAAMZ,YAbL,kBAelC2I,GAfkC,2CAAH,sDAkB3BC,EAAqB,uCAAG,WAAO1P,GAAP,qBAAAQ,EAAA,6DAC7BsO,EAAmB/I,cAEnBE,EAAQ8G,IAAY7G,KAAI,SAAC6I,GAC7B,MAAO,CACLjK,QAASgK,EACT1I,KAAM,eACNjM,OAAQ,CAAC4U,EAAKX,IAAKpO,OAPY,SAWTuG,YAAU4H,EAAelI,GAXhB,cAW7B0J,EAX6B,OAY7BC,EAAiBD,EAAYzJ,KAAI,SAAC2J,GACtC,OAAO,IAAI1N,IAAU0N,GAAU/I,YAbE,kBAe5B8I,GAf4B,2CAAH,sDC/C5BjF,EAA2B,CAAE1M,KAAK,YAAK8O,MAEhC+C,EAAajF,YAAY,CACpCzE,KAAM,QACNuE,eACAG,SAAU,CACRiF,mBAAoB,SAAC/E,EAAOC,GAC1B,IAAM+E,EAAwB/E,EAAOE,QACrCH,EAAM/M,KAAO+M,EAAM/M,KAAKiI,KAAI,SAAC6I,GAC3B,IAAMkB,EAAeD,EAAc3E,MAAK,SAAC6E,GAAD,OAAOA,EAAE9B,MAAQW,EAAKX,OAC9D,OAAO,2BAAKW,GAASkB,OAGzBE,gBAAiB,SAACnF,EAAOC,GACYA,EAAOE,QAAlCiF,uBACeC,SAAQ,SAACC,GAC9B,IAAQzJ,EAAUyJ,EAAVzJ,MACRmE,EAAM/M,KAAK4I,GAAX,2BAAyBmE,EAAM/M,KAAK4I,IAApC,IAA4C2E,SAAU8E,WAOvD,EAAgDR,EAAWjE,QAAnDkE,EAAR,EAAQA,mBAAoBI,EAA5B,EAA4BA,gBAGtBI,EAA4B,yDAAM,WAAOxE,GAAP,eAAAvL,EAAA,sEACzBsM,IADyB,OACvC5J,EADuC,OAE7C6I,EAASgE,EAAmB7M,IAFiB,2CAAN,uDAI5BsN,EAAyB,SAACxQ,GAAD,8CAAa,WAAO+L,GAAP,uBAAAvL,EAAA,sEAChBqO,EAAwB7O,GADR,cAC3CyQ,EAD2C,gBAEbtB,EAA2BnP,GAFd,cAE3C0Q,EAF2C,gBAGhBnB,EAA4BvP,GAHZ,cAG3C2Q,EAH2C,iBAIlBjB,EAAsB1P,GAJJ,QAI3C4Q,EAJ2C,OAM3CR,EAAyBK,EAAmBvK,KAAI,SAAC2K,EAAehK,GACpE,MAAO,CACLA,QACA0F,UAAWkE,EAAmB5J,GAC9ByI,aAAcoB,EAAsB7J,GACpC4F,cAAekE,EAAmB9J,GAClCgJ,SAAUe,EAAiB/J,OAI/BkF,EAASoE,EAAgB,CAAEC,4BAhBsB,4CAAb,uDAmBvBN,MAAf,S,wDC/CegB,EAbGjc,IAAOG,IAAV,iNAOX,qBAAGwE,MAAkBuX,aAAaC,MCNhCrW,EAAO9F,YAAOic,EAAPjc,CAAH,oPAKN,qBAAG2E,MAAkBuX,aAAaC,MAKlC,qBAAGxX,MAAkBuX,aAAaE,MAMvBtW,O,iCCnBf,sBAGMuW,EAAQ,CAACvU,mCAA8BA,mCAA8BA,oCAO5DwU,IALI,WACjB,IAAMC,EAAcla,IAAO,EAAGga,EAAMhT,OAAS,GAC7C,OAAOgT,EAAME,K,gKCFTrN,EAAiB3I,IAAMgB,cAAc,CAAEiV,KAAM,EAAGC,KAAM,IAGtDC,EAAyB,SAAC,GAAkB,IAAhBvU,EAAe,EAAfA,SAChC,EAAwBC,mBAAS,GAAjC,mBAAOoU,EAAP,KAAaG,EAAb,KACA,EAAwBvU,mBAAS,GAAjC,mBAAOqU,EAAP,KAAaG,EAAb,KAgBA,OAdApW,qBAAU,WACR,IAAMqW,EAAWC,YAAW,sBAAC,sBAAAnR,EAAA,sDAC3BiR,GAAQ,SAACG,GAAD,OAAUA,EAAO,KADE,2CAXX,KAclB,OAAO,kBAAMC,cAAcH,MAC1B,IAEHrW,qBAAU,WACR,IAAMqW,EAAWC,YAAW,sBAAC,sBAAAnR,EAAA,sDAC3BgR,GAAQ,SAACI,GAAD,OAAUA,EAAO,KADE,2CAjBX,KAoBlB,OAAO,kBAAMC,cAAcH,MAC1B,IAEI,cAAC3N,EAAezF,SAAhB,CAAyBhI,MAAO,CAAE+a,OAAMC,QAAxC,SAAiDtU,M,iCC1B1D,oBAQe8U,IALI,WACjB,MAAuBxS,qBAAWyE,KAClC,MAAO,CAAEgO,YADT,EAAQT,KACoBU,YAD5B,EAAcX,Q,qDCDVY,EAAgB,UASTC,EAAiB,SAAChV,EAA0BiV,EAAuB1P,GAC9E,IAAM2P,EAAmBlV,EAAamO,MAAK,SAACgH,GAC1C,OAAOA,EAAYpU,KAAKqU,WAAaH,KAEvC,GAAIC,EAAkB,CACpB,IAAMG,EAAmBH,EAAiBnU,KAAKuU,KAE/C,OADyBD,EAAiBE,SAAS,KAb1B,SAACL,EAA0B3P,GACtD,IAAMiQ,EAAkBT,EAAcU,KAAKP,GAAkB,GAEvDQ,EAAuBnQ,EAASoQ,MAAM,KAAK,GACjD,OAAOT,EAAiBU,QAAQJ,EAAiBE,GAWtCG,CAAqBR,EAAkB9P,GAEzC8P,EAET,OAAO9P,GCNMtN,IAdC,WACd,IAAQ+H,EAAiBoC,qBAAW6F,KAA5BjI,aAER,OAAO,SAACiV,EAAuB1P,GAC7B,MAAwB,UAApBvF,EAAa,GACRuF,EAELvF,EAAagB,OAAS,EACjBgU,EAAehV,EAAciV,EAAe1P,GAE9CA,K,4cCcIuQ,EAxBY,WACzB,MAAwB/V,mBAAoB,IAAIkF,IAAU,IAA1D,mBAAOlE,EAAP,KAAagV,EAAb,KAoBA,OAfA5X,qBAAU,YACO,uCAAG,4BAAAmF,EAAA,sEACG0S,IAAMC,IAJb,iEAGI,OACVC,EADU,OAQhBH,EAAQ,IAAI9Q,IAAUiR,EAAKnV,KAAK,GAAG4C,OAAOC,IAAIC,QAR9B,2CAAH,qDAWfsS,KACC,IAEIpV,GCbHqV,EAAO,IAAInR,IAAU,GAEdI,EAAqB,WAChC,IAAMwJ,EAAWwH,cACTvB,EAAgBF,cAAhBE,YACR3W,qBAAU,WACR0Q,EAASwE,eACTxE,EAASD,iBACR,CAACC,EAAUiG,KAKHwB,EAAW,WAEtB,OADcC,aAAY,SAACzI,GAAD,OAAkBA,EAAM9H,MAAMjF,SAI7CyV,EAAiB,SAACtF,GAE7B,OADaqF,aAAY,SAACzI,GAAD,OAAkBA,EAAM9H,MAAMjF,KAAKoN,MAAK,SAAC6E,GAAD,OAAOA,EAAE9B,MAAQA,SASvEuF,EAAc,SAACvF,GAC1B,IAAMW,EAAO2E,EAAetF,GAE5B,MAAO,CACL7B,UAAWwC,EAAKvD,SAAW,IAAIrJ,IAAU4M,EAAKvD,SAASe,WAAa,IAAIpK,IAAU,GAClFmN,aAAcP,EAAKvD,SAAW,IAAIrJ,IAAU4M,EAAKvD,SAAS8D,cAAgB,IAAInN,IAAU,GACxFsK,cAAesC,EAAKvD,SAAW,IAAIrJ,IAAU4M,EAAKvD,SAASiB,eAAiB,IAAItK,IAAU,GAC1F0N,SAAUd,EAAKvD,SAAW,IAAIrJ,IAAU4M,EAAKvD,SAASqE,UAAY,IAAI1N,IAAU,KAMvEyR,EAAW,SAAC5T,GACvB,IAAQ+R,EAAgBD,cAAhBC,YACFhG,EAAWwH,cAQjB,OAPAlY,qBAAU,WACJ2E,GACF+L,EAASM,YAAwBrM,MAElC,CAACA,EAAS+L,EAAUgG,IAET0B,aAAY,SAACzI,GAAD,OAAkBA,EAAM5H,MAAMnF,SAW7C4V,EAAkB,WAK7B,OADcb,KAIHc,EAAmB,WAC9B,IACMC,EAAcF,IACd9E,EAAO2E,EAFD,GAGZ,OAAO3E,EAAK1F,kBAAoB0K,EAAYhG,MAAMgB,EAAK1F,mBAAqBiK,GAoBjEU,EAAmB,WAC9B,IACMD,EAAcF,IACd9E,EAAO2E,EAFD,GAGZ,OAAO3E,EAAK1F,kBAAoB0K,EAAYhG,MAAMgB,EAAK1F,mBAAqBiK,GAQjEW,EAAgB,WAK3B,IAJA,IAAM/Q,EAAQsQ,IACRU,EAAWL,IACXM,EAAYL,IACdxd,EAAQ,IAAI6L,IAAU,GACjBiS,EAAI,EAAGA,EAAIlR,EAAMhF,OAAQkW,IAAK,CACrC,IAAMrF,EAAO7L,EAAMkR,GACnB,GAAIrF,EAAKjB,oBAAqB,CAC5B,IAAIuG,OAAG,EAELA,EADEtF,EAAK9F,mBAAqB1D,IAAWC,IACjC0O,EAASnG,MAAMgB,EAAKjB,qBACjBiB,EAAK9F,mBAAqB1D,IAAW+O,KACxCH,EAAUpG,MAAMgB,EAAKjB,qBAErBiB,EAAKjB,oBAEbxX,EAAQA,EAAMie,KAAKF,IAGvB,OAAO/d,I,iCCxIT,sF,gCCqBO,IAAKiP,EAWAiP,EAXZ,oE,SAAYjP,K,UAAAA,E,aAAAA,E,cAAAA,E,YAAAA,E,UAAAA,E,UAAAA,E,YAAAA,E,aAAAA,M,cAWAiP,K,sBAAAA,E,YAAAA,E,mBAAAA,M,sCChCG,KACbC,KAAM,CACJ,GAAI,6CACJ,GAAI,8CAENC,WAAY,CACV,GAAI,6CACJ,GAAI,8CAENC,KAAM,CACJ,GAAI,6CACJ,GAAI,8CAENC,QAAS,CACP,GAAI,GACJ,GAAI,IAENC,WAAY,CACV,GAAI,GACJ,GAAI,IAENC,WAAY,CACV,GAAI,6CACJ,GAAI,8CAENC,KAAM,CACJ,GAAI,6CACJ,GAAI,8CAENC,KAAM,CACJ,GAAI,6CACJ,GAAI,gD,86IC5BFlR,EAAe1I,IAAMgB,cAAc,GAEnC6Y,EAAuB,SAAC,GAAkB,IAAhBjY,EAAe,EAAfA,SACxBkY,EAAgBC,iBAAO,GAC7B,EAA0BlY,mBAAS,GAAnC,mBAAOmY,EAAP,KAAcC,EAAd,KAeA,OAbAha,qBAAU,WACR,IAAMuK,EAAOjB,cACP+M,EAAWC,YAAW,sBAAC,4BAAAnR,EAAA,sEACDoF,EAAKZ,IAAIsQ,iBADR,QACrBC,EADqB,UAEPL,EAAcM,UAChCN,EAAcM,QAAUD,EACxBF,EAASE,IAJgB,2CAM1B,KAEH,OAAO,kBAAM1D,cAAcH,MAC1B,IAEI,cAAC5N,EAAaxF,SAAd,CAAuBhI,MAAO8e,EAA9B,SAAsCpY,M,q1GCVzCuJ,EAAS,uCAAG,WAAO1B,EAAYoB,GAAnB,2BAAAzF,EAAA,6DACVoF,EAAOjB,cACP8Q,EAAQ,IAAI7P,EAAKZ,IAAIC,SAASyQ,EAAoCC,eAClEC,EAAM,IAAIC,IAAUhR,GAEpBiR,EAAW7P,EAAMC,KAAI,SAAC0B,GAAD,MAAU,CAACA,EAAK9C,QAAQiR,cAAeH,EAAII,mBAAmBpO,EAAKxB,KAAMwB,EAAKzN,YALzF,SAMasb,EAAM9N,QAAQsO,UAAUH,GAAUlO,OAN/C,uBAMRsO,EANQ,EAMRA,WACFnO,EAAMmO,EAAWhQ,KAAI,SAAC0B,EAAMwM,GAAP,OAAawB,EAAIO,qBAAqBlQ,EAAMmO,GAAGhO,KAAMwB,MAPhE,kBASTG,GATS,4CAAH,wDAYAxB,O,gCCxBf,wNAIa6P,EAAiB,WAC5B,OAAOC,IAAU5B,KAAKhR,KAEXsC,EAAuB,WAClC,OAAOsQ,IAAU3B,WAAWjR,KAEjBkS,EAAsB,WACjC,OAAOU,IAAUvB,WAAWrR,KAEjByG,EAAiB,WAC5B,OAAOmM,IAAU1B,KAAKlR,KAEX6S,EAAoB,WAC/B,OAAOD,IAAUzB,QAAQnR,KAEd8S,EAA0B,WACrC,OAAOF,IAAUxB,WAAWpR,M,gCCpB9B,YAEML,EAAsB,CAC1B,CACEuC,OAAQ,EACR6Q,UAAW,OACXlR,iBAAkBC,IAAW+O,KAC7BnO,oBAAqB,6CACrBE,gBAAiB,CACf,GAAI,6CACJ,GAAI,8CAENoQ,aAAcjC,IAAakC,KAC3BC,YAAa,GACbC,SAAS,EACTC,cAAe,SACfC,UAAW,EACXC,YAAY,EACZvJ,cAAe,GACf9D,mBAAoB,CAClBZ,aAAc,6CACdC,UAAW,6CACXC,kBAAmB,6CACnBC,iBAAkB,OAEpB+N,sBAAuB,KAEzB,CACErR,OAAQ,EACR6Q,UAAW,OACXlR,iBAAkBC,IAAW+O,KAC7BnO,oBAAqB,6CACrBE,gBAAiB,CACf,GAAI,6CACJ,GAAI,8CAENoQ,aAAcjC,IAAakC,KAC3BC,YAAa,uBACbC,SAAS,EACTC,cAAe,OACfC,UAAW,EACXC,YAAY,EACZvJ,cAAe,GACf9D,mBAAoB,CAClBZ,aAAc,6CACdC,UAAW,6CACXC,kBAAmB,6CACnBC,iBAAkB,OAEpB+N,sBAAuB,SA8CZ5T,O,0sEC/Ff,oBAGMF,EAAsB,CAC1B,CACEkL,IAAK,EACL6I,KAAM,EACNC,SAAU,QACVhK,YAAa,CACX,GAAI,6CACJ,GAAI,8CAENG,aAAa,EACbO,YAAa,QACbT,eAAgB,CACd,GAAI,6CACJ,GAAI,8CAENlE,iBAAkB1D,IAAWC,IAC7B4H,mBAAoB+J,IAAUxC,MAEhC,CACEvG,IAAK,EACL6I,KAAM,EACNC,SAAU,OACVhK,YAAa,CACX,GAAI,6CACJ,GAAI,8CAENG,aAAa,EACbO,YAAa,OACbT,eAAgB,CACd,GAAI,6CACJ,GAAI,8CAENlE,iBAAkB1D,IAAWC,IAC7B4H,mBAAoB+J,IAAUxC,MAEhC,CACEvG,IAAK,EACL6I,KAAM,EACNC,SAAU,gBACVhK,YAAa,CACX,GAAI,6CACJ,GAAI,8CAENU,YAAa,QACbT,eAAgB,CACd,GAAI,6CACJ,GAAI,8CAENlE,iBAAkB1D,IAAW+O,KAC7BlH,mBAAoB+J,IAAU1C,MAEhC,CACErG,IAAK,EACL6I,KAAM,EACNC,SAAU,eACVhK,YAAa,CACX,GAAI,6CACJ,GAAI,8CAENU,YAAa,QACbT,eAAgB,CACd,GAAI,6CACJ,GAAI,8CAENlE,iBAAkB1D,IAAWC,IAC7B4H,mBAAoB+J,IAAUxC,MAEhC,CACEvG,IAAK,EACL6I,KAAM,EACNC,SAAU,cACVhK,YAAa,CACX,GAAI,6CACJ,GAAI,8CAENU,YAAa,OACbT,eAAgB,CACd,GAAI,6CACJ,GAAI,8CAENlE,iBAAkB1D,IAAWC,IAC7B4H,mBAAoB+J,IAAUxC,MAEhC,CACEvG,IAAK,EACL6I,KAAM,EACNC,SAAU,OACVhK,YAAa,CACX,GAAI,6CACJ,GAAI,8CAENG,aAAa,EACbO,YAAa,OACbT,eAAgB,CACd,GAAI,6CACJ,GAAI,8CAENlE,iBAAkB1D,IAAWC,IAC7B4H,mBAAoB+J,IAAUxC,MAEhC,CACEvG,IAAK,EACL6I,KAAM,EACNC,SAAU,OACVhK,YAAa,CACX,GAAI,6CACJ,GAAI,8CAENG,aAAa,EACbO,YAAa,OACbT,eAAgB,CACd,GAAI,6CACJ,GAAI,8CAENlE,iBAAkB1D,IAAWsI,KAC7BT,mBAAoB+J,IAAUnC,MAEhC,CACE5G,IAAK,EACL6I,KAAM,EACNC,SAAU,OACVhK,YAAa,CACX,GAAI,6CACJ,GAAI,8CAENG,aAAa,EACbO,YAAa,OACbT,eAAgB,CACd,GAAI,6CACJ,GAAI,8CAENlE,iBAAkB1D,IAAWC,IAC7B4H,mBAAoB+J,IAAUxC,MAEhC,CACEvG,IAAK,EACL6I,KAAM,EACNC,SAAU,MACVhK,YAAa,CACX,GAAI,6CACJ,GAAI,8CAENG,aAAa,EACbO,YAAa,MACbT,eAAgB,CACd,GAAI,6CACJ,GAAI,8CAENlE,iBAAkB1D,IAAWC,IAC7B4H,mBAAoB+J,IAAUxC,MAEhC,CACEvG,IAAK,GACL6I,KAAM,EACNC,SAAU,OACVhK,YAAa,CACX,GAAI,6CACJ,GAAI,8CAENG,aAAa,EACbO,YAAa,OACbT,eAAgB,CACd,GAAI,6CACJ,GAAI,8CAENlE,iBAAkB1D,IAAWC,IAC7B4H,mBAAoB+J,IAAUxC,MAEhC,CACEvG,IAAK,GACL6I,KAAM,EACNC,SAAU,OACVhK,YAAa,CACX,GAAI,6CACJ,GAAI,8CAENG,aAAa,EACbO,YAAa,OACbT,eAAgB,CACd,GAAI,6CACJ,GAAI,8CAENlE,iBAAkB1D,IAAWC,IAC7B4H,mBAAoB+J,IAAUxC,MAEhC,CACEvG,IAAK,GACL6I,KAAM,EACNC,SAAU,MACVhK,YAAa,CACX,GAAI,6CACJ,GAAI,8CAENG,aAAa,EACbO,YAAa,MACbT,eAAgB,CACd,GAAI,6CACJ,GAAI,8CAENlE,iBAAkB1D,IAAWC,IAC7B4H,mBAAoB+J,IAAUxC,MAEhC,CACEvG,IAAK,GACL6I,KAAM,EACNC,SAAU,QACVhK,YAAa,CACX,GAAI,6CACJ,GAAI,8CAENG,aAAa,EACbO,YAAa,QACbT,eAAgB,CACd,GAAI,6CACJ,GAAI,8CAENlE,iBAAkB1D,IAAWC,IAC7B4H,mBAAoB+J,IAAUxC,MAEhC,CACEvG,IAAK,GACL6I,KAAM,EACNC,SAAU,MACVhK,YAAa,CACX,GAAI,6CACJ,GAAI,8CAENG,aAAa,EACbO,YAAa,MACbT,eAAgB,CACd,GAAI,6CACJ,GAAI,8CAENlE,iBAAkB1D,IAAWC,IAC7B4H,mBAAoB+J,IAAUxC,MAEhC,CACEvG,IAAK,GACL6I,KAAM,EACNC,SAAU,MACVhK,YAAa,CACX,GAAI,6CACJ,GAAI,8CAENG,aAAa,EACbO,YAAa,MACbT,eAAgB,CACd,GAAI,6CACJ,GAAI,8CAENlE,iBAAkB1D,IAAWC,IAC7B4H,mBAAoB+J,IAAUxC,MAEhC,CACEvG,IAAK,GACL6I,KAAM,EACNC,SAAU,gBACVhK,YAAa,CACX,GAAI,6CACJ,GAAI,8CAGNU,YAAa,OACbT,eAAgB,CACd,GAAI,6CACJ,GAAI,8CAENlE,iBAAkB1D,IAAW+D,KAC7B8D,mBAAoB+J,IAAUpC,MAEhC,CACE3G,IAAK,GACL6I,KAAM,EACNC,SAAU,gBACVhK,YAAa,CACX,GAAI,6CACJ,GAAI,8CAGNU,YAAa,OACbT,eAAgB,CACd,GAAI,6CACJ,GAAI,8CAENlE,iBAAkB1D,IAAWsI,KAC7BT,mBAAoB+J,IAAUnC,OAInB9R,O","file":"static/js/main.99a21569.chunk.js","sourcesContent":["export const docsUrl = 'https://mswapdocs.gitbook.io/'\r\nexport const tokenomicsUrl = 'https://mswapdocs.gitbook.io/muft-and-muftswap/tokenomics/mswap'\r\nexport const roadmapUrl = 'https://mswapdocs.gitbook.io/muft-and-muftswap/fundamentals/roadmap'\r\nexport const chartUrl = 'https://poocoin.app/tokens/0x9393d3c08956f245cdee9ac9dd7214131ae2bb8b'\r\nexport const githubUrl = 'https://github.com/muftswap'\r\nexport const cmcUrl = 'https://coinmarketcap.com/currencies/muftswap/'\r\nexport const cmUrl = 'https://coinmooner.com/coin/6924/'\r\nexport const auditUrl =\r\n 'https://github.com/solidproof/smart-contract-audits/blob/main/SmartContract_Audit_Solidproof_ManUtdFantoken.pdf'\r\nexport const ftxUrl = 'https://blockfolio.com/coin/MUFT?timeFrame=1W'\r\nexport const buyMuftUrl =\r\n 'https://trade.muftswap.exchange/swap?outputCurrency=0x1D4a26a9D980AFC2287Dca15eb896A26384bAc7c'\r\nexport const iloUrl = 'https://ilo.muftswap.exchange/'\r\nexport const swapUrl = 'https://trade.muftswap.exchange/#/swap'\r\nexport const liquidityUrl = 'https://trade.muftswap.exchange/#liquidity'\r\nexport const sportsPredictionUrl = 'https://sp.muftswap.exchange/'\r\n\r\n/*\r\n * coinpaprika api list\r\n */\r\nexport const fetchMswapInfo = 'https://api.coinpaprika.com/v1/coins/mswap-muftswap-token/markets'\r\nexport const fetchMuftInfo = 'https://api.coinpaprika.com/v1/coins/muft-manutd-fan-token/markets'\r\n","import React from 'react'\r\nimport { Card, CardBody, Heading, Text } from '@pancakeswap-libs/uikit'\r\nimport BigNumber from 'bignumber.js/bignumber'\r\nimport styled from 'styled-components'\r\nimport { Timeline } from 'react-twitter-widgets'\r\nimport { getBalanceNumber } from 'utils/formatBalance'\r\nimport { useTotalSupply, useBurnedBalance } from 'hooks/useTokenBalance'\r\nimport useI18n from 'hooks/useI18n'\r\nimport { getCakeAddress } from 'utils/addressHelpers'\r\nimport CardValue from './CardValue'\r\nimport { useFarms } from '../../../state/hooks'\r\n\r\nconst StyledTwitterCard = styled(Card)`\r\n margin-left: auto;\r\n margin-right: auto;\r\n width: 26rem;\r\n padding: 0;\r\n @media only screen and (max-width: 768px) {\r\n width: 99%;\r\n }\r\n`\r\n\r\nconst Row = styled.div`\r\n align-items: center;\r\n display: flex;\r\n font-size: 14px;\r\n justify-content: space-between;\r\n margin-bottom: 8px;\r\n`\r\nconst Div = styled.div`\r\n width: 100%;\r\n height: 4rem;\r\n background: rgb(199, 1, 1);\r\n padding: 0.5rem 0 0 0;\r\n`\r\n\r\nconst TwitterCard = () => {\r\n const TranslateString = useI18n()\r\n\r\n return (\r\n \r\n \r\n
\r\n \r\n {TranslateString(10003, 'Announcements')}\r\n \r\n
\r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default TwitterCard\r\n","const particlesConfig = {\r\n particles: {\r\n number: {\r\n value: 30,\r\n density: {\r\n enable: true,\r\n value_area: 530,\r\n },\r\n },\r\n color: {\r\n value: '#ffffff',\r\n },\r\n shape: {\r\n type: 'image',\r\n stroke: {\r\n width: 0,\r\n color: '#000000',\r\n },\r\n polygon: {\r\n nb_sides: 5,\r\n },\r\n image: {\r\n src: 'images/redelement.png',\r\n width: 100,\r\n height: 100,\r\n },\r\n },\r\n opacity: {\r\n value: 1,\r\n random: true,\r\n anim: {\r\n enable: false,\r\n speed: 1,\r\n opacity_min: 0.1,\r\n sync: false,\r\n },\r\n },\r\n size: {\r\n value: 15,\r\n random: true,\r\n anim: {\r\n enable: false,\r\n speed: 40,\r\n size_min: 0.1,\r\n sync: false,\r\n },\r\n },\r\n line_linked: {\r\n enable: true,\r\n distance: 150,\r\n color: '#ffffff',\r\n opacity: 0.4,\r\n width: 1,\r\n },\r\n move: {\r\n enable: true,\r\n speed: 1,\r\n random: false,\r\n straight: false,\r\n bounce: false,\r\n attract: {\r\n enable: false,\r\n rotateX: 600,\r\n rotateY: 1200,\r\n },\r\n },\r\n },\r\n interactivity: {\r\n events: {\r\n onhover: {\r\n enable: false,\r\n mode: 'repulse',\r\n },\r\n onclick: {\r\n enable: false,\r\n mode: 'push',\r\n },\r\n resize: true,\r\n },\r\n modes: {\r\n grab: {\r\n distance: 515.4845154845156,\r\n line_linked: {\r\n opacity: 1,\r\n },\r\n },\r\n bubble: {\r\n distance: 400,\r\n size: 40,\r\n duration: 2,\r\n opacity: 8,\r\n },\r\n repulse: {\r\n distance: 200,\r\n duration: 0.4,\r\n },\r\n push: {\r\n particles_nb: 4,\r\n },\r\n remove: {\r\n particles_nb: 2,\r\n },\r\n },\r\n },\r\n retina_detect: true,\r\n}\r\n\r\nexport default particlesConfig\r\n","export default __webpack_public_path__ + \"static/media/projectLogo.928a532e.png\";","import React from 'react'\r\nimport styled from 'styled-components'\r\nimport Particles from 'react-particles-js'\r\nimport { makeStyles } from '@material-ui/core/styles'\r\nimport { docsUrl, tokenomicsUrl, roadmapUrl, chartUrl, githubUrl } from 'config/constants/endpoints'\r\nimport TwitterCard from './TwitterCard'\r\nimport particlesConfigRed from '../../../config/constants/particlesConfigRed'\r\nimport projectLogo from '../images/projectLogo.png'\r\nimport docs from '../images/docs.png'\r\nimport tokenomics from '../images/tokenomics.png'\r\nimport roadmap from '../images/roadmap.png'\r\nimport chart from '../images/chart.png'\r\nimport github from '../images/github.png'\r\n\r\nconst StyledCustomPage = styled.section`\r\n // background-image: url('/bg.png');\r\n background-repeat: no-repeat;\r\n background-size: cover;\r\n background-color: #fff;\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n padding: 0 0 3rem 0;\r\n position: relative;\r\n z-index: -12;\r\n @media only screen and (max-width: 998px) {\r\n background-size: auto 100%;\r\n }\r\n`\r\nconst MainImage = styled.div`\r\n height: 25rem;\r\n width: 20rem;\r\n margin: 4rem 0 3rem 0;\r\n`\r\nconst IconContainer = styled.div`\r\n width: 100%;\r\n background-color: rgb(242, 242, 242);\r\n display: flex;\r\n flex-direction: row;\r\n justify-content: space-around;\r\n align-items: center;\r\n padding: 3em 0;\r\n @media only screen and (max-width: 768px) {\r\n width: 100%;\r\n flex-direction: column;\r\n }\r\n`\r\nconst Icon = styled.div`\r\n width: 4rem;\r\n height: 4rem;\r\n cursor: pointer;\r\n @media only screen and (max-width: 768px) {\r\n width: 2rem;\r\n height: 2rem;\r\n }\r\n`\r\nconst InfoCard = styled.div`\r\n width: 18%;\r\n background: white;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n flex-direction: column;\r\n box-shadow: 0px 2px 12px -8px rgba(25, 19, 38, 0.1), 0px 1px 1px rgba(25, 19, 38, 0.05);\r\n padding: 1em;\r\n margin: 0.5em 0;\r\n border-radius: 0.5em;\r\n cursor: pointer;\r\n @media only screen and (max-width: 768px) {\r\n flex-direction: row;\r\n justify-content: space-evenly;\r\n width: 80%;\r\n }\r\n h1 {\r\n color: #c70101;\r\n width: 60%;\r\n text-align: center;\r\n font-size: 18px;\r\n }\r\n &:hover {\r\n transform: scale(1.05);\r\n transition: transform ease 0.2s;\r\n }\r\n`\r\nconst AvatarImage = styled.img`\r\n width: 60px;\r\n height: 60px;\r\n margin: 1em;\r\n @media only screen and (max-width: 768px) {\r\n width: 40px;\r\n height: 40px;\r\n }\r\n`\r\nexport const useStyles = makeStyles((theme) => ({\r\n particlesContainer: {\r\n width: '100%',\r\n height: '100%',\r\n position: 'absolute',\r\n left: 0,\r\n top: 0,\r\n // zIndex: -10,\r\n [theme.breakpoints.down('sm')]: {\r\n height: '100vh',\r\n },\r\n },\r\n}))\r\n\r\nconst routeToURL = (url) => {\r\n window.location = url\r\n}\r\nconst CustomPage = () => {\r\n const classes = useStyles()\r\n return (\r\n \r\n
\r\n \r\n
\r\n {/* \r\n {\r\n routeToURL(\"https://bscscan.com/address/0x9393d3C08956F245cdEE9ac9DD7214131Ae2bB8B\")\r\n }} >\r\n \"\"\r\n \r\n {\r\n routeToURL(\"https://poocoin.app/tokens/0x9393d3c08956f245cdee9ac9dd7214131ae2bb8b\")\r\n }}>\r\n \"\"\r\n \r\n {\r\n routeToURL(\"https://www.facebook.com/MUFTSWAP\")\r\n }}>\r\n \"\"\r\n \r\n {\r\n routeToURL(\"https://www.dextools.io/app/bsc/pair-explorer/0x8858cfb3f8c901381bd52f8acf5bfb888dce421d\")\r\n }}>\r\n \"\"\r\n \r\n {\r\n routeToURL(\"https://t.me/muftfantoken\")\r\n }}>\r\n \"\"\r\n \r\n {\r\n routeToURL(\"https://medium.com/@MUFT\")\r\n }}>\r\n \"\"\r\n \r\n {\r\n routeToURL(\"https://www.reddit.com/r/ManUtdFanToken/\")\r\n }}>\r\n \"\"\r\n \r\n\r\n {\r\n routeToURL(\"https://twitter.com/ManUtdFanToken\")\r\n }}>\r\n \"\"\r\n \r\n */}\r\n \r\n window.open(docsUrl, '_blank')}>\r\n \r\n

Docs

\r\n
\r\n window.open(tokenomicsUrl, '_blank')}>\r\n \r\n

Tokenomics

\r\n
\r\n window.open(roadmapUrl, '_blank')}>\r\n \r\n

Roadmap

\r\n
\r\n window.open(chartUrl, '_blank')}>\r\n \r\n

Charts

\r\n
\r\n window.open(githubUrl, '_blank')}>\r\n \r\n

Github

\r\n
\r\n
\r\n \r\n \"devil\"\r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nexport default CustomPage\r\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJYAAACWCAMAAAAL34HQAAAA6lBMVEUAAAAmhPwlg/wmhPwmg/0mhPwmg/wHauAGat8AZtoAZtoAZtolhP0lhPwmg/saefAAZtsmhPwohf0gf/YlhPsohv4mhPwmhPwAYNQlhP0kg/0lhP0mhPwPcecaevEmhPwlhf0lg/wjg/0mhPz///8AZtoSePwrif8Bb/wlg/saffwef/wVe/z0+f+bx/47kPwHcvzW6P5aof37/f8hgfwyi/zI4P4ZevEAYdQNcOYAYtUvifxdo/0Fcvwnhf2jy/4qh/zn8v8tiPwMdfxUn/0KbuTZ6v7N4/7A2/6CuP1Dlfw6j/weffUZeO9C+ItDAAAAI3RSTlMA5nj2i7+tBwTN0NOce18SAs26Wj358tTOlGg30MmqqYqKJIsSaOkAAAIgSURBVHja7dfXWsJAEIbhBUssFCn27gIaQESNHQOIvdz/7Tg+nnkgYdgJo/zfFbzPZnd2YxBCf6BiOjXNK7+VNUIVly27/YuVBSPSjqX4rOvZGSPQqh2SVZZwZezQLAHXTMIBqzzvOWat2eFZ1Jzb9VrfdsIil9P1KuQcsNy7kgk3LGre4XdMu2PRedS4WuTyVLLoPKpklWcXVLJorqpkkUsli+aXShbte5Usml8qWeRSySKXShadR5Us2vcqWTQnVLLoO6pk0XqpZNG9rZJF7y+VLDqPKln0HVWy6DyqZJFLJYvmxEhYH5d9WvFGwXp/uPq9h81C/Cw/3O/X4iSHJd4EWGB9BxZYYIEFFlgjYfnMRFmhf8Cs1hFk1TqNdoNT+7UuyKrfHJZ4tW7BAgusf84KwvvWCafWWU10yjdvm5xoyo/jVQ0WWGBpYNWY+aEoq8oskGRV7566x4weu/e98buqwQJrDFmnjIjVFGT59u2IVycQfTRXmAV4NIMFFlgjYYW2XqlHqVLtxLpaZxG782NkVW+6pcMolRoH9kcqXhBtsMACS/Cv+vn4PErdl579kYbXaS/mKR9ELcRVDRZYYIEFFlhgfQUWWGCBBRZYYH2ngZXWyYpltXYHZmWWrXiJ9MCs4rQVL1cYmOUlQyvd6p4ZuOySFS5cN4ySVriUYSW8uzaMUejKZQ23jNj+WkyaIfIyqfyU8/KptaxBCKnvE2RQHW1pnvKqAAAAAElFTkSuQmCC\"","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJYAAACWCAMAAAAL34HQAAABm1BMVEUAAACJxvmJxfj1NSn6NCr1MymMyfpZJ15aJ1//rUj/rkhXJ1xYJ13/rUj2MimH03OLx/n/r0iFznv5MymJ13WLx/n/sUmK2HX7NSpaJ1+H0nKJ1XRYJlyG0XJZJ175NCpYJ11bKGBZJ15YJl1aKGBYJ15YJl1aKF9YJlxXJlxZJ15XJl1aJ2BYJ11ZJlxXJlxaJ19aJ19YJlxXJl1YJl2I1XNZJ19YJ175MylYJ16Jxfj/rEiE0HH1MihXJ1uK13X/r0hZJ15aJ17/r0iLx/mH1HNYJ12H1HP/rUdXJl71Min6NCmKx/iJ1nSK1nSJ1XP4MylZJl32MymJxPeJxPaH03KIwvX/q0aG0XH/qkaHwvT6NSr3Myn3Myn6NCqKxvmMyPn/r0mMx/n4NCn4Myr5NCr/rEj/r0j3Myj4NClYJ12IxfZYJ1yIw/X/qkb2MimH0nL/qkf1MiiIw/X1Myn/q0dYJ12G0XJZJ16HwvSJxff0MihXJlyKxvr/rEeH0nL5NCr/rkf3MylYJlxXJl2I1XSJxviK2HX/sEk3ghABAAAAc3RSTlMAkF0DzSL+mcxdkARbVyX+nJUE9c2V/fz869KVNCKllV39n2v1onCVMhLxGO9lLyPQ+FI8OdXUvKuQYmIUEQbx6OGxmZiJfnVQSRnSy8CqnYuFcW1USzU0JRkS9O7r6Ofcy6KdnJaMiYZ3WVBAPj4wLyUinIeU3AAABEtJREFUeNrt2vdzEkEUwPFn5ayxRcWKR4ihCRg0JprYS+y9994bcXkhGwLekuTPltsFDXcLOOPc3Tqzn1/y63duX94sHKBpmqZpmqZpmva/2x8K7f0tFNoPShjM7mlh7AAFJMNIWmA4DsGLIiMtKFHhGPuROrIwDcFLJpC0YBgBBXw0kCDmEkytLIBMJpOMD1mqZdnOoGKHyIWUmy2bSezJshTLMhubIXxcpSxRZZFw5oRCWSY/PUrC+8BQJyuGoqpvAMBAVbJihDL7BFP7APjToipkmcQSc8WvM4alRpYpThBTvApOICUEA79wxUhjrvYBlwkjwWsQsBgycYID0JA5Mxz4bUtUURIO/NRkmyE3AAoRc2WRlFpVyKtQrRPc1dztilWR5mZQiKiySFipudpFKH9WKcVOsDFXaj0rtFQ8QbQU3O27kCm5GSg/wYSam0G1Z8VU3AxU7/b/ZzPsGDZDrfYOEeK49W248Xyd203wzH6UoI5b3/2Ly6V6wSPJPkJdXJvhxuykTGH6NngjhpTIUFy423tLkwWJydIIeCKPFnFxb4ZFbbJmF4MnsqSexRg6MDw+AH+RNe1NVhT5FB0POZjXkhBcVrxPfNUo2+TBZYmtSdEEpbIGkdhSSbWyDiI/wjQolcXfLFHMglJZyYRYm4PAja51Ox9AVgzpgnm/+mij28NDo35nDYrPD4k42K5XJqYkKof8zsoSZs97FLilP6cm3KYmKuf9zYoisRnALbnAsyTW+poVzzFShzsaWUvbZX3/56yxsVVyY+BiIhHz3syqyLN+LvvHrPhwNmvIHTwxLt/vibjXWWMGdpJ27ndL7Hevs8YJtUgbjFiYlvygwQDPsyKEkk4w2rLfmT1Zee+zMkg6obyr5RMzmuB9FkT6UM71vPJIxbz7kQWZSGS1zPszIg2xv7nf6yxe6WFWd/3Ib6FEdPWL/0IDAs0SJfztCO+KJxizs/LBZ9ldNlbvCvHlgDFQIMvuooTn5PjfVFyJrD/nKN7sRsGvrHvn1rjdcdxkBDwIfmWtOVauupTLbxZ20WZW3q+sb9XyD4ny/JqFXUwMvgl+Za3gVRLr4bc0MmLLJX3LOlyVV5VFVrOrMe/+Pa12WSuhpQspDoFqWTA+ZAyvUi+L01k6S2cFlnV204FtTgcu3Qo463StpzjjUpu7FWjWkaM9RZnapUCz7s4U5VkHNgSZtbNH3lXbpLN0ls7SWTpLZ+ksnaWzAsoSPPvGpvvttPtrzt42WbMj0Nm5cpus1+IuX5N39Wz6u5fCBXlW6SZ0du9Ytd7gVv0M3OW5YnHGpVg7C81X6DLNV+ifpkuFkkth9sl96OLOs83zm53mjx0G4cjlo3NbnOaOnoaGt48rW50qDw6NgjDydLnExdvQ1bmTJ9c7nTy8BBq+nr6y3enK2SPQMPruxavdDi+vfoGmkXWneh1OnfoAmqZpmqZpmqZpHvoFHEK74ApMjWoAAAAASUVORK5CYII=\"","export default \"data:image/png;base64,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\"","import { ButtonMenu, ButtonMenuItem, Card, CardBody, Input, Text, CardHeader } from '@pancakeswap-libs/uikit'\r\nimport Page from 'components/layout/Page'\r\nimport React from 'react'\r\nimport { useRouteMatch, Link } from 'react-router-dom'\r\nimport Divider from 'views/Farms/components/Divider'\r\n\r\nfunction Exchnage() {\r\n // const { url, isExact } = useRouteMatch()\r\n return (\r\n \r\n \"commingsoon\"\r\n \r\n )\r\n}\r\n\r\nexport default Exchnage\r\n","import React from 'react'\r\nimport styled from 'styled-components'\r\nimport { useHistory, useLocation } from 'react-router-dom'\r\nimport { docsUrl, cmcUrl, cmUrl, auditUrl, iloUrl, swapUrl, liquidityUrl, sportsPredictionUrl } from 'config/constants/endpoints'\r\n\r\nconst RedirectContainer = styled.div`\r\n width: 100%;\r\n height: 100px;\r\n background-color: #4a0404;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n`\r\n\r\nconst RedirectAudit = styled.p`\r\n font-size: 25px;\r\n color: white;\r\n`\r\n\r\nconst Docs = () => {\r\n const history = useHistory()\r\n const location = useLocation()\r\n React.useEffect(() => {\r\n setTimeout(() => {\r\n let url = ''\r\n if (location.pathname === '/cmc') url = cmcUrl\r\n if (location.pathname === '/cm') url = cmUrl\r\n if (location.pathname === '/docs') url = docsUrl\r\n if (location.pathname === '/audit') url = auditUrl\r\n if (location.pathname === '/ilo') url = iloUrl\r\n if (location.pathname === '/swap') url = swapUrl\r\n if (location.pathname === '/liquidity') url = liquidityUrl\r\n if (location.pathname === '/prediction') url = sportsPredictionUrl\r\n if (location.pathname === '/cg') return\r\n if (location.pathname === '/ftx') return\r\n // const newWindow = window.open(url, '_blank', 'noopener,noreferrer')\r\n const newWindow = window.open(url, '_self')\r\n if (newWindow) newWindow.opener = null\r\n history.push('/')\r\n }, 100)\r\n }, [history, location])\r\n return (\r\n \r\n Redirecting ...\r\n \r\n )\r\n}\r\n\r\nexport default Docs\r\n","import { createGlobalStyle } from 'styled-components'\n// eslint-disable-next-line import/no-unresolved\nimport { PancakeTheme } from '@pancakeswap-libs/uikit'\n\ndeclare module 'styled-components' {\n /* eslint-disable @typescript-eslint/no-empty-interface */\n export interface DefaultTheme extends PancakeTheme {}\n}\n\nconst GlobalStyle = createGlobalStyle`\n * {\n font-family: 'Kanit', sans-serif;\n }\n body {\n background: #4A0404; //${({ theme }) => theme.colors.background};\n background-size: 100% 100%;\n background-repeat: no-repeat;\n background-attachment: fixed;\n\n img {\n height: auto;\n max-width: 100%;\n }\n \n }\n`\n\nexport default GlobalStyle\n","export const EN = { code: 'en', language: 'English' }\nexport const AR = { code: 'ar', language: 'العربية' }\nexport const CA = { code: 'ca', language: 'Català' }\nexport const ZHCN = { code: 'zh-CN', language: '简体中文' }\nexport const ZHTW = { code: 'zh-TW', language: '繁體中文' }\nexport const CS = { code: 'cs', language: 'Čeština' }\nexport const DA = { code: 'da', language: 'Dansk' }\nexport const DE = { code: 'de', language: 'Deutsch' }\nexport const NL = { code: 'nl', language: 'Nederlands' }\nexport const FIL = { code: 'fil', language: 'Filipino' }\nexport const FI = { code: 'fi', language: 'Suomalainen' }\nexport const FR = { code: 'fr', language: 'Français' }\nexport const EL = { code: 'el', language: 'Ελληνικά' }\nexport const HI = { code: 'hi', language: 'हिंदी' }\nexport const HU = { code: 'hu', language: 'Magyar' }\nexport const ID = { code: 'id', language: 'Bahasa Indonesia' }\nexport const IT = { code: 'it', language: 'Italiano' }\nexport const JA = { code: 'ja', language: '日本語' }\nexport const KO = { code: 'ko', language: '한국어' }\nexport const PTBR = { code: 'pt-BR', language: 'Português' }\nexport const RO = { code: 'ro', language: 'Română' }\nexport const RU = { code: 'ru', language: 'Русский' }\nexport const SR = { code: 'sr', language: 'Српски' }\nexport const ESES = { code: 'es-ES', language: 'Español' }\nexport const SVSE = { code: 'sv-SE', language: 'Svenska' }\nexport const TA = { code: 'ta', language: 'தமிழ்' }\nexport const TR = { code: 'tr', language: 'Türkçe' }\nexport const UK = { code: 'uk', language: 'Українська' }\nexport const VI = { code: 'vi', language: 'Tiếng Việt' }\n\nexport const allLanguages = [\n EN,\n // AR,\n // CA,\n ZHCN,\n ZHTW,\n // CS,\n // DA,\n // DE,\n // NL,\n // FIL,\n // FI,\n // FR,\n // EL,\n // HI,\n // HU,\n // ID,\n // IT,\n // JA,\n // KO,\n // PTBR,\n // RO,\n // RU,\n // SR,\n // ESES,\n // SVSE,\n // TA,\n // TR,\n // UK,\n // VI,\n]\n","import React, { useState, useEffect } from 'react'\r\nimport { StringTranslations } from '@crowdin/crowdin-api-client'\r\nimport { TranslationsContext } from 'contexts/Localisation/translationsContext'\r\nimport { allLanguages, EN } from 'config/localisation/languageCodes'\r\n\r\nconst CACHE_KEY = 'pancakeSwapLanguage'\r\n\r\nexport interface LangType {\r\n code: string\r\n language: string\r\n}\r\n\r\nexport interface LanguageState {\r\n selectedLanguage: LangType\r\n setSelectedLanguage: (langObject: LangType) => void\r\n translatedLanguage: LangType\r\n setTranslatedLanguage: React.Dispatch>\r\n}\r\n\r\nconst LanguageContext = React.createContext({\r\n selectedLanguage: EN,\r\n setSelectedLanguage: () => undefined,\r\n translatedLanguage: EN,\r\n setTranslatedLanguage: () => undefined,\r\n} as LanguageState)\r\n\r\nconst fileId = 8\r\nconst projectId = parseInt(process.env.REACT_APP_CROWDIN_PROJECTID)\r\nconst stringTranslationsApi = new StringTranslations({\r\n token: process.env.REACT_APP_CROWDIN_APIKEY,\r\n})\r\n\r\nconst fetchTranslationsForSelectedLanguage = (selectedLanguage) => {\r\n return stringTranslationsApi.listLanguageTranslations(projectId, selectedLanguage.code, undefined, fileId, 200)\r\n}\r\n\r\nconst LanguageContextProvider = ({ children }) => {\r\n const [selectedLanguage, setSelectedLanguage] = useState(EN)\r\n const [translatedLanguage, setTranslatedLanguage] = useState(EN)\r\n const [translations, setTranslations] = useState>([])\r\n\r\n const getStoredLang = (storedLangCode: string) => {\r\n return allLanguages.filter((language) => {\r\n return language.code === storedLangCode\r\n })[0]\r\n }\r\n\r\n useEffect(() => {\r\n const storedLangCode = localStorage.getItem(CACHE_KEY)\r\n if (storedLangCode) {\r\n const storedLang = getStoredLang(storedLangCode)\r\n setSelectedLanguage(storedLang)\r\n } else {\r\n setSelectedLanguage(EN)\r\n }\r\n }, [])\r\n\r\n useEffect(() => {\r\n if (selectedLanguage) {\r\n console.log(`import(\\`../../../public/i18n/${selectedLanguage.code}.json\\`)`)\r\n fetch(`./i18n/${selectedLanguage.code}.json`)\r\n .then((r) => r.json())\r\n // fetchTranslationsForSelectedLanguage(selectedLanguage)\r\n .then((translationApiResponse) => {\r\n if (translationApiResponse.data.length < 1) {\r\n setTranslations(['error'])\r\n } else {\r\n setTranslations(translationApiResponse.data)\r\n }\r\n })\r\n .then(() => setTranslatedLanguage(selectedLanguage))\r\n .catch((e) => {\r\n console.error('ERROR')\r\n console.error(e)\r\n setTranslations(['error'])\r\n })\r\n }\r\n }, [selectedLanguage, setTranslations])\r\n\r\n const handleLanguageSelect = (langObject: LangType) => {\r\n setSelectedLanguage(langObject)\r\n localStorage.setItem(CACHE_KEY, langObject.code)\r\n }\r\n\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n}\r\n\r\nexport { LanguageContext, LanguageContextProvider }\r\n","import React, { useState } from 'react'\nimport { ThemeProvider as SCThemeProvider } from 'styled-components'\nimport { light, dark } from '@pancakeswap-libs/uikit'\n\nconst CACHE_KEY = 'IS_DARK'\n\nconst ThemeContext = React.createContext({ isDark: null, toggleTheme: () => null })\n\nconst ThemeContextProvider = ({ children }) => {\n const [isDark, setIsDark] = useState(() => {\n const isDarkUserSetting = localStorage.getItem(CACHE_KEY)\n return isDarkUserSetting ? JSON.parse(isDarkUserSetting) : false\n })\n\n const toggleTheme = () => {\n setIsDark((prevState) => {\n localStorage.setItem(CACHE_KEY, JSON.stringify(!prevState))\n return !prevState\n })\n }\n\n return (\n \n {children}\n \n )\n}\n\nexport { ThemeContext, ThemeContextProvider }\n","import { useContext } from 'react'\nimport { ThemeContext as StyledThemeCopntext } from 'styled-components'\nimport { ThemeContext } from 'contexts/ThemeContext'\n\nconst useTheme = () => {\n const { isDark, toggleTheme } = useContext(ThemeContext)\n const theme = useContext(StyledThemeCopntext)\n return { isDark, toggleTheme, theme }\n}\n\nexport default useTheme\n","import { MenuEntry } from '@pancakeswap-libs/uikit'\r\n\r\nconst config: MenuEntry[] = [\r\n {\r\n label: 'Home',\r\n icon: 'HomeUpdatedIcon',\r\n href: '/',\r\n },\r\n {\r\n label: 'Exchange',\r\n icon: 'TradeIcon',\r\n items: [\r\n {\r\n label: 'Swap',\r\n href: '/swap',\r\n },\r\n {\r\n label: 'Liquidity',\r\n href: '/liquidity',\r\n },\r\n ],\r\n },\r\n {\r\n label: 'Devil`s Farms',\r\n icon: 'FarmUpdatedIcon',\r\n href: '/farms',\r\n },\r\n {\r\n label: 'Red Pools',\r\n icon: 'PoolIcon',\r\n href: '/pools',\r\n },\r\n {\r\n label: 'Doom`s Pit',\r\n icon: 'DoomPitIcon',\r\n href: '/doompit',\r\n },\r\n {\r\n label: 'Sports Predictions',\r\n icon: 'PredictionIcon',\r\n href: '/prediction',\r\n },\r\n {\r\n label: 'Football Games',\r\n icon: 'GameIcon',\r\n href: '/game',\r\n },\r\n {\r\n label: 'SNFT Marketplace',\r\n icon: 'HomeIcon',\r\n href: '/snft',\r\n },\r\n {\r\n label: 'Audits',\r\n icon: 'LotteryIcon',\r\n href: '/audit',\r\n },\r\n {\r\n label: 'ILO',\r\n icon: 'MoonIcon',\r\n href: '/ilo',\r\n },\r\n {\r\n label: 'Listings',\r\n icon: 'MoreIcon',\r\n items: [\r\n {\r\n label: 'CoinMarketCap',\r\n href: '/cmc',\r\n },\r\n {\r\n label: 'CoinMooner',\r\n href: '/cm',\r\n },\r\n {\r\n label: 'CoinGecko',\r\n href: '/cg',\r\n },\r\n {\r\n label: 'FTX',\r\n href: '/ftx',\r\n },\r\n ],\r\n },\r\n // {\r\n // label: 'More',\r\n // icon: 'MoreUpdatedIcon',\r\n // items: [\r\n // // {\r\n // // label: 'Github',\r\n // // href: '', // 'https://github.com/goosedefi/',\r\n // // },\r\n // {\r\n // label: 'Docs',\r\n // href: 'https://docs.manutdfantoken.app/', // 'https://goosedefi.gitbook.io/goose-finance/',\r\n // },\r\n // // {\r\n // // label: 'Blog',\r\n // // href: '', // 'https://goosefinance.medium.com/',\r\n // // },\r\n // ],\r\n // },\r\n // {\r\n // label: 'Partnerships/IFO',\r\n // icon: 'GooseIcon',\r\n // href: 'https://docs.google.com/forms/d/e/1FAIpQLSe7ycrw8Dq4C5Vjc9WNlRtTxEhFDB1Ny6jlAByZ2Y6qBo7SKg/viewform?usp=sf_link',\r\n // },\r\n // {\r\n // label: 'Audit by Hacken',\r\n // icon: 'AuditIcon',\r\n // href: 'https://www.goosedefi.com/files/hackenAudit.pdf',\r\n // },\r\n // {\r\n // label: 'Audit by CertiK',\r\n // icon: 'AuditIcon',\r\n // href: 'https://certik.org/projects/goose-finance',\r\n // },\r\n]\r\n\r\nexport default config\r\n","import React, { useContext, useEffect, useState } from 'react'\r\nimport { useWallet } from '@binance-chain/bsc-use-wallet'\r\nimport { allLanguages } from 'config/localisation/languageCodes'\r\nimport { LanguageContext } from 'contexts/Localisation/languageContext'\r\nimport { fetchMswapInfo, fetchMuftInfo } from 'config/constants/endpoints'\r\nimport useTheme from 'hooks/useTheme'\r\nimport { usePriceMuftBusd, usePriceCakeBusd } from 'state/hooks'\r\nimport { Menu as UikitMenu } from '@pancakeswap-libs/uikit'\r\nimport config from './config'\r\n\r\nconst Menu = (props) => {\r\n const { account, connect, reset } = useWallet()\r\n const { selectedLanguage, setSelectedLanguage } = useContext(LanguageContext)\r\n const { isDark, toggleTheme } = useTheme()\r\n // const cakePriceUsd = usePriceCakeBusd()\r\n // const cake2PriceUsd = usePriceMuftBusd()\r\n\r\n const [mswapPriceUsd, setMswapPriceUsd] = useState(0)\r\n const [muftPriceUsd, setMuftPriceUsd] = useState(0)\r\n\r\n // console.log(cakePriceUsd.toNumber(), 'cake2Price')\r\n\r\n const getMswapLivePrice = async () => {\r\n try {\r\n const response = await fetch(fetchMswapInfo)\r\n const data = await response.json()\r\n return data\r\n } catch (err) {\r\n console.log('bnbLivePriceError', err)\r\n throw err\r\n }\r\n }\r\n\r\n const getMuftLivePrice = async () => {\r\n try {\r\n const response = await fetch(fetchMuftInfo)\r\n const data = await response.json()\r\n return data\r\n } catch (err) {\r\n console.log('bnbLivePriceError', err)\r\n throw err\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n getMswapLivePrice()\r\n .then((result) => {\r\n const mswapLivePrice = result[0].quotes.USD.price\r\n setMswapPriceUsd(mswapLivePrice)\r\n })\r\n .catch((err) => {\r\n console.log('call api err', err)\r\n })\r\n\r\n getMuftLivePrice()\r\n .then((result) => {\r\n const muftLivePrice = result[0].quotes.USD.price\r\n setMuftPriceUsd(muftLivePrice)\r\n })\r\n .catch((err) => {\r\n console.log('call api err', err)\r\n })\r\n }, [])\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport default Menu\r\n","import React from 'react'\nimport styled from 'styled-components'\nimport { Spinner } from '@pancakeswap-libs/uikit'\nimport Page from './layout/Page'\n\nconst Wrapper = styled(Page)`\n display: flex;\n justify-content: center;\n align-items: center;\n`\n\nconst PageLoader: React.FC = () => {\n return (\n \n \n \n )\n}\n\nexport default PageLoader\n","import React, { useEffect, Suspense, lazy } from 'react'\r\nimport Gallery from 'views/Home/components/Gallery'\r\nimport CustomPage from 'views/Home/components/CustomPage'\r\nimport { BrowserRouter as Router, Redirect, Route, Switch } from 'react-router-dom'\r\nimport { useWallet } from '@binance-chain/bsc-use-wallet'\r\nimport Coming from 'views/Exchange'\r\nimport Docs from 'views/Docs'\r\n\r\nimport { ResetCSS } from '@pancakeswap-libs/uikit'\r\nimport BigNumber from 'bignumber.js'\r\nimport { useFetchPublicData } from 'state/hooks'\r\nimport GlobalStyle from './style/Global'\r\nimport Menu from './components/Menu'\r\nimport PageLoader from './components/PageLoader'\r\nimport NftGlobalNotification from './views/Nft/components/NftGlobalNotification'\r\n\r\n// Route-based code splitting\r\n// Only pool is included in the main bundle because of it's the most visited page'\r\nconst Home = lazy(() => import('./views/Home'))\r\nconst Farms = lazy(() => import('./views/Farms'))\r\n// const Lottery = lazy(() => import('./views/Lottery'))\r\nconst Pools = lazy(() => import('./views/Pools'))\r\n// const Ifos = lazy(() => import('./views/Ifos'))\r\nconst NotFound = lazy(() => import('./views/NotFound'))\r\n// const Nft = lazy(() => import('./views/Nft'))\r\n\r\n// This config is required for number formating\r\nBigNumber.config({\r\n EXPONENTIAL_AT: 1000,\r\n DECIMAL_PLACES: 80,\r\n})\r\n\r\nconst App: React.FC = () => {\r\n const { account, connect } = useWallet()\r\n useEffect(() => {\r\n if (!account && window.localStorage.getItem('accountStatus')) {\r\n connect('injected')\r\n }\r\n }, [account, connect])\r\n\r\n useFetchPublicData()\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n }>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* Redirect */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* 404 */}\r\n \r\n \r\n \r\n \r\n {/* */}\r\n \r\n )\r\n}\r\n\r\nexport default React.memo(App)\r\n","import { configureStore } from '@reduxjs/toolkit'\nimport farmsReducer from './farms'\nimport poolsReducer from './pools'\n\nexport default configureStore({\n devTools: process.env.NODE_ENV !== 'production',\n reducer: {\n farms: farmsReducer,\n pools: poolsReducer,\n },\n})\n","import React from 'react'\r\nimport { ModalProvider } from '@pancakeswap-libs/uikit'\r\n// import bsc, { UseWalletProvider } from '@binance-chain/bsc-use-wallet'\r\nimport * as bsc from '@binance-chain/bsc-use-wallet'\r\nimport { Provider } from 'react-redux'\r\nimport getRpcUrl from 'utils/getRpcUrl'\r\nimport { LanguageContextProvider } from 'contexts/Localisation/languageContext'\r\nimport { ThemeContextProvider } from 'contexts/ThemeContext'\r\nimport { BlockContextProvider } from 'contexts/BlockContext'\r\nimport { RefreshContextProvider } from 'contexts/RefreshContext'\r\nimport store from 'state'\r\n\r\nconst Providers: React.FC = ({ children }) => {\r\n const rpcUrl = getRpcUrl()\r\n const chainId = parseInt(process.env.REACT_APP_CHAIN_ID)\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {children}\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default Providers\r\n","import React from 'react'\r\nimport ReactDOM from 'react-dom'\r\nimport App from './App'\r\nimport Providers from './Providers'\r\n\r\nReactDOM.render(\r\n \r\n \r\n \r\n \r\n ,\r\n document.getElementById('root'),\r\n)\r\n","import Web3 from 'web3'\r\nimport { HttpProviderOptions } from 'web3-core-helpers'\r\nimport { AbiItem } from 'web3-utils'\r\nimport { ContractOptions } from 'web3-eth-contract'\r\nimport getRpcUrl from 'utils/getRpcUrl'\r\n\r\nconst RPC_URL = getRpcUrl()\r\nconst httpProvider = new Web3.providers.HttpProvider(RPC_URL, { timeout: 10000 } as HttpProviderOptions)\r\n\r\n/**\r\n * Provides a web3 instance using our own private provider httpProver\r\n */\r\nconst getWeb3 = () => {\r\n const web3 = new Web3(httpProvider)\r\n return web3\r\n}\r\nconst getContract = (abi: any, address: string, contractOptions?: ContractOptions) => {\r\n const web3 = getWeb3()\r\n return new web3.eth.Contract(abi as unknown as AbiItem, address, contractOptions)\r\n}\r\n\r\nexport { getWeb3, getContract, httpProvider }\r\n","import React, { createContext } from 'react'\n\nexport interface TranslationState {\n translations: Array\n setTranslations: React.Dispatch>>\n}\n\nconst defaultTranslationState: TranslationState = {\n translations: [],\n setTranslations: (): void => undefined,\n}\n\nexport const TranslationsContext = createContext(defaultTranslationState as TranslationState)\n","import { AbiItem } from 'web3-utils'\r\nimport poolsConfig from 'config/constants/pools'\r\nimport masterChefABI from 'config/abi/masterchef.json'\r\nimport sousChefABI from 'config/abi/sousChef.json'\r\nimport erc20ABI from 'config/abi/erc20.json'\r\nimport { QuoteToken } from 'config/constants/types'\r\nimport multicall from 'utils/multicall'\r\nimport { getMasterChefAddress } from 'utils/addressHelpers'\r\nimport { getWeb3 } from 'utils/web3'\r\nimport BigNumber from 'bignumber.js'\r\n\r\nconst CHAIN_ID = process.env.REACT_APP_CHAIN_ID\r\n\r\n// Pool 0, Cake / Cake is a different kind of contract (master chef)\r\n// BNB pools use the native BNB token (wrapping ? unwrapping is done at the contract level)\r\nconst nonBnbPools = poolsConfig.filter((p) => p.stakingTokenName !== QuoteToken.BNB)\r\nconst bnbPools = poolsConfig.filter((p) => p.stakingTokenName === QuoteToken.BNB)\r\nconst nonMasterPools = poolsConfig.filter((p) => p.sousId !== 0)\r\nconst web3 = getWeb3()\r\nconst masterChefContract = new web3.eth.Contract(masterChefABI as unknown as AbiItem, getMasterChefAddress())\r\n\r\nexport const fetchPoolsAllowance = async (account) => {\r\n const calls = nonBnbPools.map((p) => ({\r\n address: p.stakingTokenAddress,\r\n name: 'allowance',\r\n params: [account, p.contractAddress[CHAIN_ID]],\r\n }))\r\n\r\n const allowances = await multicall(erc20ABI, calls)\r\n return nonBnbPools.reduce(\r\n (acc, pool, index) => ({ ...acc, [pool.sousId]: new BigNumber(allowances[index]).toJSON() }),\r\n {},\r\n )\r\n}\r\n\r\nexport const fetchUserBalances = async (account) => {\r\n // Non BNB pools\r\n const calls = nonBnbPools.map((p) => ({\r\n address: p.stakingTokenAddress,\r\n name: 'balanceOf',\r\n params: [account],\r\n }))\r\n const tokenBalancesRaw = await multicall(erc20ABI, calls)\r\n const tokenBalances = nonBnbPools.reduce(\r\n (acc, pool, index) => ({ ...acc, [pool.sousId]: new BigNumber(tokenBalancesRaw[index]).toJSON() }),\r\n {},\r\n )\r\n\r\n // BNB pools\r\n const bnbBalance = await web3.eth.getBalance(account)\r\n const bnbBalances = bnbPools.reduce(\r\n (acc, pool) => ({ ...acc, [pool.sousId]: new BigNumber(bnbBalance).toJSON() }),\r\n {},\r\n )\r\n\r\n return { ...tokenBalances, ...bnbBalances }\r\n}\r\n\r\nexport const fetchUserStakeBalances = async (account) => {\r\n const calls = nonMasterPools.map((p) => ({\r\n address: p.contractAddress[CHAIN_ID],\r\n name: 'userInfo',\r\n params: [account],\r\n }))\r\n const userInfo = await multicall(sousChefABI, calls)\r\n const stakedBalances = nonMasterPools.reduce(\r\n (acc, pool, index) => ({\r\n ...acc,\r\n [pool.sousId]: new BigNumber(userInfo[index].amount._hex).toJSON(),\r\n }),\r\n {},\r\n )\r\n\r\n // Cake / Cake pool\r\n const { amount: masterPoolAmount } = await masterChefContract.methods.userInfo('0', account).call()\r\n\r\n return { ...stakedBalances, 0: new BigNumber(masterPoolAmount).toJSON() }\r\n}\r\n\r\nexport const fetchUserPendingRewards = async (account) => {\r\n const calls = nonMasterPools.map((p) => ({\r\n address: p.contractAddress[CHAIN_ID],\r\n name: 'pendingReward',\r\n params: [account],\r\n }))\r\n const res = await multicall(sousChefABI, calls)\r\n const pendingRewards = nonMasterPools.reduce(\r\n (acc, pool, index) => ({\r\n ...acc,\r\n [pool.sousId]: new BigNumber(res[index]).toJSON(),\r\n }),\r\n {},\r\n )\r\n\r\n // Cake / Cake pool\r\n const pendingReward = await masterChefContract.methods.pendingMSWAP('0', account).call()\r\n\r\n return { ...pendingRewards, 0: new BigNumber(pendingReward).toJSON() }\r\n}\r\n","import poolsConfig from 'config/constants/pools'\r\nimport sousChefABI from 'config/abi/sousChef.json'\r\nimport cakeABI from 'config/abi/cake.json'\r\nimport wbnbABI from 'config/abi/weth.json'\r\nimport { QuoteToken } from 'config/constants/types'\r\nimport multicall from 'utils/multicall'\r\nimport { getWbnbAddress } from 'utils/addressHelpers'\r\nimport BigNumber from 'bignumber.js'\r\nimport axios from 'axios'\r\nimport erc20 from 'config/abi/erc20.json'\r\n\r\n\r\nconst CHAIN_ID = process.env.REACT_APP_CHAIN_ID\r\n\r\nexport const fetchPoolsBlockLimits = async () => {\r\n const poolsWithEnd = poolsConfig.filter((p) => p.sousId !== 0)\r\n const callsStartBlock = poolsWithEnd.map((poolConfig) => {\r\n return {\r\n address: poolConfig.contractAddress[CHAIN_ID],\r\n name: 'startBlock',\r\n }\r\n })\r\n const callsEndBlock = poolsWithEnd.map((poolConfig) => {\r\n return {\r\n address: poolConfig.contractAddress[CHAIN_ID],\r\n name: 'bonusEndBlock',\r\n }\r\n })\r\n\r\n const starts = await multicall(sousChefABI, callsStartBlock)\r\n const ends = await multicall(sousChefABI, callsEndBlock)\r\n\r\n return poolsWithEnd.map((cakePoolConfig, index) => {\r\n const startBlock = starts[index]\r\n const endBlock = ends[index]\r\n return {\r\n sousId: cakePoolConfig.sousId,\r\n startBlock: new BigNumber(startBlock).toJSON(),\r\n endBlock: new BigNumber(endBlock).toJSON(),\r\n }\r\n })\r\n}\r\n\r\nconst getTokenPrice = async ({ tokenAddress, lpAddress, quoteTokenAddress, quoteTokenSymbol }) => {\r\n const calls = [\r\n // Balance of token in the LP contract\r\n {\r\n address: tokenAddress,\r\n name: 'balanceOf',\r\n params: [lpAddress],\r\n },\r\n // Balance of quote token on LP contract\r\n {\r\n address: quoteTokenAddress,\r\n name: 'balanceOf',\r\n params: [lpAddress],\r\n },\r\n // Balance of LP tokens in the master chef contract\r\n // {\r\n // address: pool.isTokenOnly ? pool.tokenAddresses[CHAIN_ID] : lpAdress,\r\n // name: 'balanceOf',\r\n // // params: [getMasterChefAddress()],\r\n // },\r\n // // Total supply of LP tokens\r\n // {\r\n // address: pool.lpAdress,\r\n // name: 'totalSupply',\r\n // },\r\n // // Token decimals\r\n // {\r\n // address: pool.tokenAddresses[CHAIN_ID],\r\n // name: 'decimals',\r\n // },\r\n // // Quote token decimals\r\n // {\r\n // address: pool.quoteTokenAdresses[CHAIN_ID],\r\n // name: 'decimals',\r\n // },\r\n ]\r\n const [\r\n tokenBalanceLP,\r\n quoteTokenBlanceLP,\r\n // lpTokenBalanceMC,\r\n // lpTotalSupply,\r\n // tokenDecimals,\r\n // quoteTokenDecimals\r\n ] = await multicall(erc20, calls)\r\n\r\n let tokenPriceVsQuote\r\n if (quoteTokenSymbol === QuoteToken.BUSD) {\r\n tokenPriceVsQuote = new BigNumber(1)\r\n } else {\r\n tokenPriceVsQuote = new BigNumber(quoteTokenBlanceLP).div(new BigNumber(tokenBalanceLP))\r\n }\r\n console.log('getTokenPrice', { tokenPriceVsQuote: tokenPriceVsQuote.toNumber() })\r\n\r\n return tokenPriceVsQuote.toNumber()\r\n}\r\n\r\nconst getPoolRewardTokenPrice = async (pools) => {\r\n const promises = []\r\n\r\n pools.map(async (pool) => {\r\n promises.push(getTokenPrice(pool.rewardTokenDetails))\r\n })\r\n\r\n const prices = await Promise.all(promises)\r\n return prices\r\n}\r\n\r\nexport const fetchPoolsTotalStatking = async () => {\r\n const nonBnbPools = poolsConfig.filter((p) => p.stakingTokenName !== QuoteToken.BNB)\r\n const bnbPool = poolsConfig.filter((p) => p.stakingTokenName === QuoteToken.BNB)\r\n // const cakePrice = usePriceCakeBusd()\r\n\r\n const callsNonBnbPools = nonBnbPools.map((poolConfig) => {\r\n return {\r\n address: poolConfig.stakingTokenAddress,\r\n name: 'balanceOf',\r\n params: [poolConfig.contractAddress[CHAIN_ID]],\r\n }\r\n })\r\n\r\n const callsBnbPools = bnbPool.map((poolConfig) => {\r\n return {\r\n address: getWbnbAddress(),\r\n name: 'balanceOf',\r\n params: [poolConfig.contractAddress[CHAIN_ID]],\r\n }\r\n })\r\n\r\n const nonBnbPoolsTotalStaked = await multicall(cakeABI, callsNonBnbPools)\r\n const bnbPoolsTotalStaked = await multicall(wbnbABI, callsBnbPools)\r\n\r\n const nonBNBRewardTokenPricesInBNB = await getPoolRewardTokenPrice(nonBnbPools)\r\n\r\n const BNBRewardTokenPricesInBNB = await getPoolRewardTokenPrice(nonBnbPools)\r\n\r\n return [\r\n ...nonBnbPools.map((p, index) => ({\r\n sousId: p.sousId,\r\n rewardTokenPrice: nonBNBRewardTokenPricesInBNB[index],\r\n totalStaked: new BigNumber(nonBnbPoolsTotalStaked[index]).toJSON(),\r\n })),\r\n ...bnbPool.map((p, index) => ({\r\n sousId: p.sousId,\r\n rewardTokenPrice: BNBRewardTokenPricesInBNB[index],\r\n totalStaked: new BigNumber(bnbPoolsTotalStaked[index]).toJSON(),\r\n })),\r\n ]\r\n}\r\n","/* eslint-disable no-param-reassign */\r\nimport { createSlice } from '@reduxjs/toolkit'\r\n\r\nimport poolsConfig from 'config/constants/pools'\r\n\r\nimport {\r\n fetchPoolsAllowance,\r\n fetchUserBalances,\r\n fetchUserStakeBalances,\r\n fetchUserPendingRewards,\r\n} from './fetchPoolsUser'\r\n\r\nimport { PoolsState, Pool } from '../types'\r\nimport { fetchPoolsBlockLimits, fetchPoolsTotalStatking } from './fetchPools'\r\n\r\nconst initialState: PoolsState = { data: [...poolsConfig] }\r\n\r\nexport const PoolsSlice = createSlice({\r\n name: 'Pools',\r\n initialState,\r\n reducers: {\r\n setPoolsPublicData: (state, action) => {\r\n const livePoolsData: Pool[] = action.payload\r\n state.data = state.data.map((pool) => {\r\n const livePoolData = livePoolsData.find((entry) => entry.sousId === pool.sousId)\r\n return { ...pool, ...livePoolData }\r\n })\r\n },\r\n setPoolsUserData: (state, action) => {\r\n const userData = action.payload\r\n state.data = state.data.map((pool) => {\r\n const userPoolData = userData.find((entry) => entry.sousId === pool.sousId)\r\n return { ...pool, userData: userPoolData }\r\n })\r\n },\r\n updatePoolsUserData: (state, action) => {\r\n const { field, value, sousId } = action.payload\r\n const index = state.data.findIndex((p) => p.sousId === sousId)\r\n state.data[index] = { ...state.data[index], userData: { ...state.data[index].userData, [field]: value } }\r\n },\r\n },\r\n})\r\n\r\n// Actions\r\nexport const { setPoolsPublicData, setPoolsUserData, updatePoolsUserData } = PoolsSlice.actions\r\n\r\n// Thunks\r\nexport const fetchPoolsPublicDataAsync = () => async (dispatch) => {\r\n const blockLimits = await fetchPoolsBlockLimits()\r\n const totalStakings = await fetchPoolsTotalStatking()\r\n\r\n console.log('totalStakings', totalStakings)\r\n\r\n const liveData = poolsConfig.map((pool) => {\r\n const blockLimit = blockLimits.find((entry) => entry.sousId === pool.sousId)\r\n const totalStaking = totalStakings.find((entry) => entry.sousId === pool.sousId)\r\n return {\r\n ...blockLimit,\r\n ...totalStaking,\r\n }\r\n })\r\n\r\n dispatch(setPoolsPublicData(liveData))\r\n}\r\n\r\nexport const fetchPoolsUserDataAsync = (account) => async (dispatch) => {\r\n const allowances = await fetchPoolsAllowance(account)\r\n const stakingTokenBalances = await fetchUserBalances(account)\r\n const stakedBalances = await fetchUserStakeBalances(account)\r\n const pendingRewards = await fetchUserPendingRewards(account)\r\n\r\n const userData = poolsConfig.map((pool) => ({\r\n sousId: pool.sousId,\r\n allowance: allowances[pool.sousId],\r\n stakingTokenBalance: stakingTokenBalances[pool.sousId],\r\n stakedBalance: stakedBalances[pool.sousId],\r\n pendingReward: pendingRewards[pool.sousId],\r\n }))\r\n\r\n dispatch(setPoolsUserData(userData))\r\n}\r\n\r\nexport const updateUserAllowance = (sousId: string, account: string) => async (dispatch) => {\r\n const allowances = await fetchPoolsAllowance(account)\r\n dispatch(updatePoolsUserData({ sousId, field: 'allowance', value: allowances[sousId] }))\r\n}\r\n\r\nexport const updateUserBalance = (sousId: string, account: string) => async (dispatch) => {\r\n const tokenBalances = await fetchUserBalances(account)\r\n dispatch(updatePoolsUserData({ sousId, field: 'stakingTokenBalance', value: tokenBalances[sousId] }))\r\n}\r\n\r\nexport const updateUserStakedBalance = (sousId: string, account: string) => async (dispatch) => {\r\n const stakedBalances = await fetchUserStakeBalances(account)\r\n dispatch(updatePoolsUserData({ sousId, field: 'stakedBalance', value: stakedBalances[sousId] }))\r\n}\r\n\r\nexport const updateUserPendingReward = (sousId: string, account: string) => async (dispatch) => {\r\n const pendingRewards = await fetchUserPendingRewards(account)\r\n dispatch(updatePoolsUserData({ sousId, field: 'pendingReward', value: pendingRewards[sousId] }))\r\n}\r\n\r\nexport default PoolsSlice.reducer\r\n","import BigNumber from 'bignumber.js'\r\nimport erc20 from 'config/abi/erc20.json'\r\nimport masterchefABI from 'config/abi/masterchef.json'\r\nimport multicall from 'utils/multicall'\r\nimport { getMasterChefAddress } from 'utils/addressHelpers'\r\nimport farmsConfig from 'config/constants/farms'\r\nimport { QuoteToken } from '../../config/constants/types'\r\n\r\nconst CHAIN_ID = process.env.REACT_APP_CHAIN_ID\r\n\r\nconst fetchFarms = async () => {\r\n console.log('CHAIN_ID', CHAIN_ID)\r\n const data = await Promise.all(\r\n farmsConfig.map(async (farmConfig) => {\r\n const lpAdress = farmConfig.lpAddresses[CHAIN_ID]\r\n const calls = [\r\n // Balance of token in the LP contract\r\n {\r\n address: farmConfig.tokenAddresses[CHAIN_ID],\r\n name: 'balanceOf',\r\n params: [lpAdress],\r\n },\r\n // Balance of quote token on LP contract\r\n {\r\n address: farmConfig.quoteTokenAdresses[CHAIN_ID],\r\n name: 'balanceOf',\r\n params: [lpAdress],\r\n },\r\n // Balance of LP tokens in the master chef contract\r\n {\r\n address: farmConfig.isTokenOnly ? farmConfig.tokenAddresses[CHAIN_ID] : lpAdress,\r\n name: 'balanceOf',\r\n params: [getMasterChefAddress()],\r\n },\r\n // Total supply of LP tokens\r\n {\r\n address: lpAdress,\r\n name: 'totalSupply',\r\n },\r\n // Token decimals\r\n {\r\n address: farmConfig.tokenAddresses[CHAIN_ID],\r\n name: 'decimals',\r\n },\r\n // Quote token decimals\r\n {\r\n address: farmConfig.quoteTokenAdresses[CHAIN_ID],\r\n name: 'decimals',\r\n },\r\n ]\r\n\r\n const [tokenBalanceLP, quoteTokenBlanceLP, lpTokenBalanceMC, lpTotalSupply, tokenDecimals, quoteTokenDecimals] =\r\n await multicall(erc20, calls)\r\n\r\n let tokenAmount\r\n let lpTotalInQuoteToken\r\n let tokenPriceVsQuote\r\n if (farmConfig.isTokenOnly) {\r\n tokenAmount = new BigNumber(lpTokenBalanceMC).div(new BigNumber(10).pow(tokenDecimals))\r\n if (farmConfig.tokenSymbol === QuoteToken.BUSD && farmConfig.quoteTokenSymbol === QuoteToken.BUSD) {\r\n tokenPriceVsQuote = new BigNumber(1)\r\n }\r\n if (farmConfig.tokenSymbol === QuoteToken.USDT && farmConfig.quoteTokenSymbol === QuoteToken.USDT) {\r\n tokenPriceVsQuote = new BigNumber(1)\r\n } else {\r\n tokenPriceVsQuote = new BigNumber(quoteTokenBlanceLP).div(new BigNumber(tokenBalanceLP))\r\n }\r\n lpTotalInQuoteToken = tokenAmount.times(tokenPriceVsQuote)\r\n } else {\r\n // Ratio in % a LP tokens that are in staking, vs the total number in circulation\r\n const lpTokenRatio = new BigNumber(lpTokenBalanceMC).div(new BigNumber(lpTotalSupply))\r\n\r\n // Total value in staking in quote token value\r\n lpTotalInQuoteToken = new BigNumber(quoteTokenBlanceLP)\r\n .div(new BigNumber(10).pow(18))\r\n .times(new BigNumber(2))\r\n .times(lpTokenRatio)\r\n\r\n // Amount of token in the LP that are considered staking (i.e amount of token * lp ratio)\r\n tokenAmount = new BigNumber(tokenBalanceLP).div(new BigNumber(10).pow(tokenDecimals)).times(lpTokenRatio)\r\n const quoteTokenAmount = new BigNumber(quoteTokenBlanceLP)\r\n .div(new BigNumber(10).pow(quoteTokenDecimals))\r\n .times(lpTokenRatio)\r\n\r\n if (tokenAmount.comparedTo(0) > 0) {\r\n tokenPriceVsQuote = quoteTokenAmount.div(tokenAmount)\r\n } else {\r\n tokenPriceVsQuote = new BigNumber(quoteTokenBlanceLP).div(new BigNumber(tokenBalanceLP))\r\n }\r\n }\r\n\r\n const [info, totalAllocPoint, MuftPerBlock] = await multicall(masterchefABI, [\r\n {\r\n address: getMasterChefAddress(),\r\n name: 'poolInfo',\r\n params: [farmConfig.pid],\r\n },\r\n {\r\n address: getMasterChefAddress(),\r\n name: 'totalAllocPoint',\r\n },\r\n {\r\n address: getMasterChefAddress(),\r\n name: 'mswapPerBlock',\r\n },\r\n ])\r\n\r\n const allocPoint = new BigNumber(info.allocPoint._hex)\r\n const poolWeight = allocPoint.div(new BigNumber(totalAllocPoint))\r\n\r\n return {\r\n ...farmConfig,\r\n tokenAmount: tokenAmount.toJSON(),\r\n // quoteTokenAmount: quoteTokenAmount,\r\n lpTotalInQuoteToken: lpTotalInQuoteToken.toJSON(),\r\n tokenPriceVsQuote: tokenPriceVsQuote.toJSON(),\r\n poolWeight: poolWeight.toNumber(),\r\n multiplier: `${allocPoint.div(100).toString()}X`,\r\n depositFeeBP: info.depositFeeBP,\r\n MuftPerBlock: new BigNumber(MuftPerBlock).toNumber(),\r\n }\r\n }),\r\n )\r\n return data\r\n}\r\n\r\nexport default fetchFarms\r\n","import BigNumber from 'bignumber.js'\nimport erc20ABI from 'config/abi/erc20.json'\nimport masterchefABI from 'config/abi/masterchef.json'\nimport multicall from 'utils/multicall'\nimport farmsConfig from 'config/constants/farms'\nimport { getMasterChefAddress } from 'utils/addressHelpers'\n\nconst CHAIN_ID = process.env.REACT_APP_CHAIN_ID\n\nexport const fetchFarmUserAllowances = async (account: string) => {\n const masterChefAdress = getMasterChefAddress()\n\n const calls = farmsConfig.map((farm) => {\n const lpContractAddress = farm.isTokenOnly ? farm.tokenAddresses[CHAIN_ID] : farm.lpAddresses[CHAIN_ID]\n return { address: lpContractAddress, name: 'allowance', params: [account, masterChefAdress] }\n })\n\n const rawLpAllowances = await multicall(erc20ABI, calls)\n const parsedLpAllowances = rawLpAllowances.map((lpBalance) => {\n return new BigNumber(lpBalance).toJSON()\n })\n return parsedLpAllowances\n}\n\nexport const fetchFarmUserTokenBalances = async (account: string) => {\n const calls = farmsConfig.map((farm) => {\n const lpContractAddress = farm.isTokenOnly ? farm.tokenAddresses[CHAIN_ID] : farm.lpAddresses[CHAIN_ID]\n return {\n address: lpContractAddress,\n name: 'balanceOf',\n params: [account],\n }\n })\n\n const rawTokenBalances = await multicall(erc20ABI, calls)\n const parsedTokenBalances = rawTokenBalances.map((tokenBalance) => {\n return new BigNumber(tokenBalance).toJSON()\n })\n return parsedTokenBalances\n}\n\nexport const fetchFarmUserStakedBalances = async (account: string) => {\n const masterChefAdress = getMasterChefAddress()\n\n const calls = farmsConfig.map((farm) => {\n return {\n address: masterChefAdress,\n name: 'userInfo',\n params: [farm.pid, account],\n }\n })\n\n const rawStakedBalances = await multicall(masterchefABI, calls)\n const parsedStakedBalances = rawStakedBalances.map((stakedBalance) => {\n return new BigNumber(stakedBalance[0]._hex).toJSON()\n })\n return parsedStakedBalances\n}\n\nexport const fetchFarmUserEarnings = async (account: string) => {\n const masterChefAdress = getMasterChefAddress()\n\n const calls = farmsConfig.map((farm) => {\n return {\n address: masterChefAdress,\n name: 'pendingMSWAP',\n params: [farm.pid, account],\n }\n })\n\n const rawEarnings = await multicall(masterchefABI, calls)\n const parsedEarnings = rawEarnings.map((earnings) => {\n return new BigNumber(earnings).toJSON()\n })\n return parsedEarnings\n}\n","/* eslint-disable no-param-reassign */\nimport { createSlice } from '@reduxjs/toolkit'\nimport farmsConfig from 'config/constants/farms'\nimport fetchFarms from './fetchFarms'\nimport {\n fetchFarmUserEarnings,\n fetchFarmUserAllowances,\n fetchFarmUserTokenBalances,\n fetchFarmUserStakedBalances,\n} from './fetchFarmUser'\nimport { FarmsState, Farm } from '../types'\n\nconst initialState: FarmsState = { data: [...farmsConfig] }\n\nexport const farmsSlice = createSlice({\n name: 'Farms',\n initialState,\n reducers: {\n setFarmsPublicData: (state, action) => {\n const liveFarmsData: Farm[] = action.payload\n state.data = state.data.map((farm) => {\n const liveFarmData = liveFarmsData.find((f) => f.pid === farm.pid)\n return { ...farm, ...liveFarmData }\n })\n },\n setFarmUserData: (state, action) => {\n const { arrayOfUserDataObjects } = action.payload\n arrayOfUserDataObjects.forEach((userDataEl) => {\n const { index } = userDataEl\n state.data[index] = { ...state.data[index], userData: userDataEl }\n })\n },\n },\n})\n\n// Actions\nexport const { setFarmsPublicData, setFarmUserData } = farmsSlice.actions\n\n// Thunks\nexport const fetchFarmsPublicDataAsync = () => async (dispatch) => {\n const farms = await fetchFarms()\n dispatch(setFarmsPublicData(farms))\n}\nexport const fetchFarmUserDataAsync = (account) => async (dispatch) => {\n const userFarmAllowances = await fetchFarmUserAllowances(account)\n const userFarmTokenBalances = await fetchFarmUserTokenBalances(account)\n const userStakedBalances = await fetchFarmUserStakedBalances(account)\n const userFarmEarnings = await fetchFarmUserEarnings(account)\n\n const arrayOfUserDataObjects = userFarmAllowances.map((farmAllowance, index) => {\n return {\n index,\n allowance: userFarmAllowances[index],\n tokenBalance: userFarmTokenBalances[index],\n stakedBalance: userStakedBalances[index],\n earnings: userFarmEarnings[index],\n }\n })\n\n dispatch(setFarmUserData({ arrayOfUserDataObjects }))\n}\n\nexport default farmsSlice.reducer\n","import styled from 'styled-components'\n\nconst Container = styled.div`\n margin-left: auto;\n margin-right: auto;\n max-width: 1300px;\n padding-left: 16px;\n padding-right: 16px;\n\n ${({ theme }) => theme.mediaQueries.sm} {\n padding-left: 24px;\n padding-right: 24px;\n }\n`\n\nexport default Container\n","import styled from 'styled-components'\nimport Container from './Container'\n\nconst Page = styled(Container)`\n min-height: calc(100vh - 64px);\n padding-top: 16px;\n padding-bottom: 16px;\n\n ${({ theme }) => theme.mediaQueries.sm} {\n padding-top: 24px;\n padding-bottom: 24px;\n }\n\n ${({ theme }) => theme.mediaQueries.lg} {\n padding-top: 32px;\n padding-bottom: 32px;\n }\n`\n\nexport default Page\n","import random from 'lodash/random'\n\n// Array of available nodes to connect to\nconst nodes = [process.env.REACT_APP_NODE_1, process.env.REACT_APP_NODE_2, process.env.REACT_APP_NODE_3]\n\nconst getNodeUrl = () => {\n const randomIndex = random(0, nodes.length - 1)\n return nodes[randomIndex]\n}\n\nexport default getNodeUrl\n","import React, { useState, useEffect } from 'react'\n\nconst FAST_INTERVAL = 10000\nconst SLOW_INTERVAL = 60000\n\nconst RefreshContext = React.createContext({ slow: 0, fast: 0 })\n\n// This context maintain 2 counters that can be used as a dependencies on other hooks to force a periodic refresh\nconst RefreshContextProvider = ({ children }) => {\n const [slow, setSlow] = useState(0)\n const [fast, setFast] = useState(0)\n\n useEffect(() => {\n const interval = setInterval(async () => {\n setFast((prev) => prev + 1)\n }, FAST_INTERVAL)\n return () => clearInterval(interval)\n }, [])\n\n useEffect(() => {\n const interval = setInterval(async () => {\n setSlow((prev) => prev + 1)\n }, SLOW_INTERVAL)\n return () => clearInterval(interval)\n }, [])\n\n return {children}\n}\n\nexport { RefreshContext, RefreshContextProvider }\n","import { useContext } from 'react'\nimport { RefreshContext } from 'contexts/RefreshContext'\n\nconst useRefresh = () => {\n const { fast, slow } = useContext(RefreshContext)\n return { fastRefresh: fast, slowRefresh: slow }\n}\n\nexport default useRefresh\n","import { useContext } from 'react'\nimport { TranslationsContext } from '../contexts/Localisation/translationsContext'\n\nconst variableRegex = /%(.*?)%/\n\nconst replaceDynamicString = (foundTranslation: string, fallback: string) => {\n const stringToReplace = variableRegex.exec(foundTranslation)[0]\n // const indexToReplace = foundTranslation.split(' ').indexOf(stringToReplace)\n const fallbackValueAtIndex = fallback.split(' ')[0]\n return foundTranslation.replace(stringToReplace, fallbackValueAtIndex)\n}\n\nexport const getTranslation = (translations: Array, translationId: number, fallback: string) => {\n const foundTranslation = translations.find((translation) => {\n return translation.data.stringId === translationId\n })\n if (foundTranslation) {\n const translatedString = foundTranslation.data.text\n const includesVariable = translatedString.includes('%')\n if (includesVariable) {\n return replaceDynamicString(translatedString, fallback)\n }\n return translatedString\n }\n return fallback\n}\n\n// TODO: Replace instances where this is called directly with the \"useI18n\" hook.\n// Using this directly can lead to errors because \"useContext\" is not preserved between renders\n// @see https://reactjs.org/docs/hooks-rules.html\nexport const TranslateString = (translationId: number, fallback: string) => {\n const { translations } = useContext(TranslationsContext)\n if (translations[0] === 'error') {\n return fallback\n }\n if (translations.length > 0) {\n return getTranslation(translations, translationId, fallback)\n }\n return fallback\n}\n","import { useContext } from 'react'\nimport { TranslationsContext } from '../contexts/Localisation/translationsContext'\nimport { getTranslation } from '../utils/translateTextHelpers'\n\nconst useI18n = () => {\n const { translations } = useContext(TranslationsContext)\n\n return (translationId: number, fallback: string) => {\n if (translations[0] === 'error') {\n return fallback\n }\n if (translations.length > 0) {\n return getTranslation(translations, translationId, fallback)\n }\n return fallback\n }\n}\n\nexport default useI18n\n","import { useEffect, useState } from 'react'\r\nimport BigNumber from 'bignumber.js'\r\nimport axios from 'axios'\r\n\r\nconst useGetBNBPriceData = () => {\r\n const [data, setData] = useState(new BigNumber(0))\r\n // const API_URL = \"https://api.pancakeswap.info/api/v2/tokens/0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c\"\r\n // const API_URL = \"https://api.coingecko.com/api/v3/simple/price?ids=binancecoin&vs_currencies=usd\"\r\n const API_URL = 'https://api.coinpaprika.com/v1/coins/bnb-binance-coin/markets'\r\n\r\n useEffect(() => {\r\n const fetchData = async () => {\r\n const resp = await axios.get(API_URL)\r\n // axios.get(API_URL).then((re)=>{\r\n // setCakePriceBusd(new BigNumber(re.data.data.price))\r\n // });\r\n // console.log(\"BNB_price\", resp.data[0].quotes.USD.price);\r\n\r\n // setData(new BigNumber(resp.data.binancecoin.usd))\r\n setData(new BigNumber(resp.data[0].quotes.USD.price))\r\n }\r\n\r\n fetchData()\r\n }, [])\r\n\r\n return data\r\n}\r\n\r\nexport default useGetBNBPriceData\r\n","import BigNumber from 'bignumber.js'\r\nimport { useEffect, useMemo } from 'react'\r\nimport { useSelector, useDispatch } from 'react-redux'\r\nimport useRefresh from 'hooks/useRefresh'\r\nimport { fetchFarmsPublicDataAsync } from './actions';\r\nimport {fetchPoolsPublicDataAsync, fetchPoolsUserDataAsync} from './pools';\r\nimport { State, Farm, Pool } from './types'\r\nimport { QuoteToken } from '../config/constants/types'\r\nimport useGetBNBPriceData from './fetchBNBPrice'\r\n\r\n// , fetchPoolsPublicDataAsync, fetchPoolsUserDataAsync\r\n\r\nconst ZERO = new BigNumber(0)\r\n\r\nexport const useFetchPublicData = () => {\r\n const dispatch = useDispatch()\r\n const { slowRefresh } = useRefresh()\r\n useEffect(() => {\r\n dispatch(fetchFarmsPublicDataAsync())\r\n dispatch(fetchPoolsPublicDataAsync())\r\n }, [dispatch, slowRefresh])\r\n}\r\n\r\n// Farms\r\n\r\nexport const useFarms = (): Farm[] => {\r\n const farms = useSelector((state: State) => state.farms.data)\r\n return farms\r\n}\r\n\r\nexport const useFarmFromPid = (pid): Farm => {\r\n const farm = useSelector((state: State) => state.farms.data.find((f) => f.pid === pid))\r\n return farm\r\n}\r\n\r\nexport const useFarmFromSymbol = (lpSymbol: string): Farm => {\r\n const farm = useSelector((state: State) => state.farms.data.find((f) => f.lpSymbol === lpSymbol))\r\n return farm\r\n}\r\n\r\nexport const useFarmUser = (pid) => {\r\n const farm = useFarmFromPid(pid)\r\n\r\n return {\r\n allowance: farm.userData ? new BigNumber(farm.userData.allowance) : new BigNumber(0),\r\n tokenBalance: farm.userData ? new BigNumber(farm.userData.tokenBalance) : new BigNumber(0),\r\n stakedBalance: farm.userData ? new BigNumber(farm.userData.stakedBalance) : new BigNumber(0),\r\n earnings: farm.userData ? new BigNumber(farm.userData.earnings) : new BigNumber(0),\r\n }\r\n}\r\n\r\n// Pools\r\n\r\nexport const usePools = (account): Pool[] => {\r\n const { fastRefresh } = useRefresh()\r\n const dispatch = useDispatch()\r\n useEffect(() => {\r\n if (account) {\r\n dispatch(fetchPoolsUserDataAsync(account))\r\n }\r\n }, [account, dispatch, fastRefresh])\r\n\r\n const pools = useSelector((state: State) => state.pools.data)\r\n return pools\r\n}\r\n\r\nexport const usePoolFromPid = (sousId): Pool => {\r\n const pool = useSelector((state: State) => state.pools.data.find((p) => p.sousId === sousId))\r\n return pool\r\n}\r\n\r\n// Prices\r\n\r\nexport const usePriceBnbBusd = (): BigNumber => {\r\n // const pid = 2 // BUSD-BNB LP\r\n // const farm = useFarmFromPid(pid)\r\n // return farm.tokenPriceVsQuote ? new BigNumber(farm.tokenPriceVsQuote) : ZERO\r\n const price = useGetBNBPriceData()\r\n return price\r\n}\r\n\r\nexport const usePriceCakeBusd = (): BigNumber => {\r\n const pid = 0 // CAKE-BNB LP\r\n const bnbPriceUSD = usePriceBnbBusd()\r\n const farm = useFarmFromPid(pid)\r\n return farm.tokenPriceVsQuote ? bnbPriceUSD.times(farm.tokenPriceVsQuote) : ZERO\r\n // const pid = 0; // Muft-BUSD LP\r\n // const farm = useFarmFromPid(pid);\r\n // return farm.tokenPriceVsQuote ? new BigNumber(farm.tokenPriceVsQuote) : ZERO;\r\n\r\n // return ZERO\r\n}\r\n\r\nexport const usePriceMSwapBusd = (): BigNumber => {\r\n const pid = 0 // CAKE-BNB LP\r\n const bnbPriceUSD = usePriceBnbBusd()\r\n const farm = useFarmFromPid(pid)\r\n return farm.tokenPriceVsQuote ? bnbPriceUSD.times(farm.tokenPriceVsQuote) : ZERO\r\n // const pid = 0; // Muft-BUSD LP\r\n // const farm = useFarmFromPid(pid);\r\n // return farm.tokenPriceVsQuote ? new BigNumber(farm.tokenPriceVsQuote) : ZERO;\r\n\r\n // return ZERO\r\n}\r\n\r\nexport const usePriceMuftBusd = (): BigNumber => {\r\n const pid = 1 // CAKE-BNB LP\r\n const bnbPriceUSD = usePriceBnbBusd()\r\n const farm = useFarmFromPid(pid)\r\n return farm.tokenPriceVsQuote ? bnbPriceUSD.times(farm.tokenPriceVsQuote) : ZERO\r\n // const pid = 0; // Muft-BUSD LP\r\n // const farm = useFarmFromPid(pid);\r\n // return farm.tokenPriceVsQuote ? new BigNumber(farm.tokenPriceVsQuote) : ZERO;\r\n\r\n // return ZERO\r\n}\r\n\r\nexport const useTotalValue = (): BigNumber => {\r\n const farms = useFarms()\r\n const bnbPrice = usePriceBnbBusd()\r\n const cakePrice = usePriceCakeBusd()\r\n let value = new BigNumber(0)\r\n for (let i = 0; i < farms.length; i++) {\r\n const farm = farms[i]\r\n if (farm.lpTotalInQuoteToken) {\r\n let val\r\n if (farm.quoteTokenSymbol === QuoteToken.BNB) {\r\n val = bnbPrice.times(farm.lpTotalInQuoteToken)\r\n } else if (farm.quoteTokenSymbol === QuoteToken.CAKE) {\r\n val = cakePrice.times(farm.lpTotalInQuoteToken)\r\n } else {\r\n val = farm.lpTotalInQuoteToken\r\n }\r\n value = value.plus(val)\r\n }\r\n }\r\n return value\r\n}\r\n","export { fetchFarmsPublicDataAsync, fetchFarmUserDataAsync } from './farms'\r\n// export {\r\n// fetchPoolsPublicDataAsync,\r\n// fetchPoolsUserDataAsync \r\n// } from './pools'\r\n","export type IfoStatus = 'coming_soon' | 'live' | 'finished'\r\n\r\nexport interface Ifo {\r\n id: string\r\n isActive: boolean\r\n address: string\r\n name: string\r\n subTitle?: string\r\n description?: string\r\n launchDate: string\r\n launchTime: string\r\n saleAmount: string\r\n raiseAmount: string\r\n cakeToBurn: string\r\n projectSiteUrl: string\r\n currency: string\r\n currencyAddress: string\r\n tokenDecimals: number\r\n releaseBlockNumber: number\r\n}\r\n\r\nexport enum QuoteToken {\r\n 'BNB' = 'BNB',\r\n 'CAKE' = 'MSWAP',\r\n 'SYRUP' = 'SYRUP',\r\n 'BUSD' = 'BUSD',\r\n 'TWT' = 'TWT',\r\n 'UST' = 'UST',\r\n 'MUFT' = 'MUFT',\r\n 'USDT' = 'USDT',\r\n}\r\n\r\nexport enum PoolCategory {\r\n 'COMMUNITY' = 'Community',\r\n 'CORE' = 'Core',\r\n 'BINANCE' = 'Binance', // Pools using native BNB behave differently than pools using a token\r\n}\r\n\r\nexport interface Address {\r\n 97?: string\r\n 56: string\r\n}\r\n\r\nexport interface FarmConfig {\r\n pid: number\r\n lpSymbol: string\r\n lpAddresses: Address\r\n tokenSymbol: string\r\n tokenAddresses: Address\r\n quoteTokenSymbol: QuoteToken\r\n quoteTokenAdresses: Address\r\n multiplier?: string\r\n isTokenOnly?: boolean\r\n isCommunity?: boolean\r\n risk: number\r\n dual?: {\r\n rewardPerBlock: number\r\n earnLabel: string\r\n endBlock: number\r\n }\r\n}\r\n\r\nexport interface PoolConfig {\r\n doomPitRewardPerBlock: number\r\n sousId: number\r\n image?: string\r\n tokenName: string\r\n stakingTokenName: QuoteToken\r\n stakingLimit?: number\r\n stakingTokenAddress?: string\r\n contractAddress: Address\r\n poolCategory: PoolCategory\r\n projectLink: string\r\n tokenPerBlock: string\r\n sortOrder?: number\r\n harvest?: boolean\r\n isFinished?: boolean\r\n tokenDecimals: number\r\n rewardTokenDetails?: any\r\n}\r\n\r\nexport type Nft = {\r\n name: string\r\n description: string\r\n originalImage: string\r\n previewImage: string\r\n blurImage: string\r\n sortOrder: number\r\n bunnyId: number\r\n}\r\n","export default {\r\n cake: {\r\n 56: '0x9393d3C08956F245cdEE9ac9DD7214131Ae2bB8B',\r\n 97: '0xdA38540DcEf3Da8fA4906b8f11D49604d38628F1',\r\n },\r\n masterChef: {\r\n 56: '0x73fc13789927d31cd9DeBe54950ccc68C02047Df',\r\n 97: '0x6314C3c7d228c8857b0fE84E3cF4052458be1093',\r\n },\r\n wbnb: {\r\n 56: '0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c',\r\n 97: '0xdA38540DcEf3Da8fA4906b8f11D49604d38628F1',\r\n },\r\n lottery: {\r\n 56: '',\r\n 97: '',\r\n },\r\n lotteryNFT: {\r\n 56: '',\r\n 97: '',\r\n },\r\n mulltiCall: {\r\n 56: '0x1ee38d535d541c55c9dae27b12edf090c608e6fb',\r\n 97: '0x67ADCB4dF3931b0C5Da724058ADC2174a9844412',\r\n },\r\n busd: {\r\n 56: '0xe9e7cea3dedca5984780bafc599bd69add087d56', // '0xe9e7cea3dedca5984780bafc599bd69add087d56',\r\n 97: '0xdA38540DcEf3Da8fA4906b8f11D49604d38628F1',\r\n },\r\n usdt: {\r\n 56: '0x55d398326f99059ff775485246999027b3197955', // '0xe9e7cea3dedca5984780bafc599bd69add087d56',\r\n 97: '0xdA38540DcEf3Da8fA4906b8f11D49604d38628F1',\r\n },\r\n}\r\n","import React, { useState, useEffect, useRef } from 'react'\nimport { getWeb3 } from 'utils/web3'\n\nconst BlockContext = React.createContext(0)\n\nconst BlockContextProvider = ({ children }) => {\n const previousBlock = useRef(0)\n const [block, setBlock] = useState(0)\n\n useEffect(() => {\n const web3 = getWeb3()\n const interval = setInterval(async () => {\n const blockNumber = await web3.eth.getBlockNumber()\n if (blockNumber !== previousBlock.current) {\n previousBlock.current = blockNumber\n setBlock(blockNumber)\n }\n }, 6000)\n\n return () => clearInterval(interval)\n }, [])\n\n return {children}\n}\n\nexport { BlockContext, BlockContextProvider }\n","import { AbiItem } from 'web3-utils'\r\nimport { Interface } from '@ethersproject/abi'\r\nimport { getWeb3 } from 'utils/web3'\r\nimport MultiCallAbi from 'config/abi/Multicall.json'\r\nimport { getMulticallAddress } from 'utils/addressHelpers'\r\n\r\ninterface Call {\r\n address: string // Address of the contract\r\n name: string // Function name on the contract (exemple: balanceOf)\r\n params?: any[] // Function params\r\n}\r\n\r\nconst multicall = async (abi: any[], calls: Call[]) => {\r\n const web3 = getWeb3()\r\n const multi = new web3.eth.Contract(MultiCallAbi as unknown as AbiItem, getMulticallAddress())\r\n const itf = new Interface(abi)\r\n\r\n const calldata = calls.map((call) => [call.address.toLowerCase(), itf.encodeFunctionData(call.name, call.params)])\r\n const { returnData } = await multi.methods.aggregate(calldata).call()\r\n const res = returnData.map((call, i) => itf.decodeFunctionResult(calls[i].name, call))\r\n\r\n return res\r\n}\r\n\r\nexport default multicall\r\n","import addresses from 'config/constants/contracts'\n\nconst chainId = process.env.REACT_APP_CHAIN_ID\n\nexport const getCakeAddress = () => {\n return addresses.cake[chainId]\n}\nexport const getMasterChefAddress = () => {\n return addresses.masterChef[chainId]\n}\nexport const getMulticallAddress = () => {\n return addresses.mulltiCall[chainId]\n}\nexport const getWbnbAddress = () => {\n return addresses.wbnb[chainId]\n}\nexport const getLotteryAddress = () => {\n return addresses.lottery[chainId]\n}\nexport const getLotteryTicketAddress = () => {\n return addresses.lotteryNFT[chainId]\n}\n","import { PoolConfig, QuoteToken, PoolCategory } from './types'\r\n\r\nconst pools: PoolConfig[] = [\r\n {\r\n sousId: 1,\r\n tokenName: 'MUFT',\r\n stakingTokenName: QuoteToken.CAKE,\r\n stakingTokenAddress: '0x9393d3C08956F245cdEE9ac9DD7214131Ae2bB8B',\r\n contractAddress: {\r\n 97: '0xd3af5fe61dbaf8f73149bfcfa9fb653ff096029a',\r\n 56: '0xFCaB1CDB1049f89D5f2152E54a3a76D4Ddc67F24',\r\n },\r\n poolCategory: PoolCategory.CORE,\r\n projectLink: '',\r\n harvest: true,\r\n tokenPerBlock: '1157.4',\r\n sortOrder: 1,\r\n isFinished: false,\r\n tokenDecimals: 18,\r\n rewardTokenDetails: {\r\n tokenAddress: '0x1D4a26a9D980AFC2287Dca15eb896A26384bAc7c',\r\n lpAddress: '0x8858cFb3f8C901381bd52F8aCf5bFB888dce421d',\r\n quoteTokenAddress: '0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c',\r\n quoteTokenSymbol: 'BNB',\r\n },\r\n doomPitRewardPerBlock: 0.04,\r\n },\r\n {\r\n sousId: 2,\r\n tokenName: 'MEOW',\r\n stakingTokenName: QuoteToken.CAKE,\r\n stakingTokenAddress: '0x9393d3C08956F245cdEE9ac9DD7214131Ae2bB8B',\r\n contractAddress: {\r\n 97: '0xd3af5fe61dbaf8f73149bfcfa9fb653ff096029a',\r\n 56: '0x3dE8A8FF4167479a8dc19E1D3E0016B9D80AdfE5',\r\n },\r\n poolCategory: PoolCategory.CORE,\r\n projectLink: 'https://meowswap.net',\r\n harvest: true,\r\n tokenPerBlock: '0.04',\r\n sortOrder: 1,\r\n isFinished: false,\r\n tokenDecimals: 18,\r\n rewardTokenDetails: {\r\n tokenAddress: '0xE8658B07c555E9604329A6a0A82FF6D9c6F68D2F',\r\n lpAddress: '0x828E02b67ccd4029285D8Ce999756c97c05e434F',\r\n quoteTokenAddress: '0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c',\r\n quoteTokenSymbol: 'BNB',\r\n },\r\n doomPitRewardPerBlock: 1175.4,\r\n },\r\n\r\n //\r\n // {\r\n // sousId: 0,\r\n // tokenName: 'CAKE',\r\n // stakingTokenName: QuoteToken.CAKE,\r\n // stakingTokenAddress: '0x0e09fabb73bd3ade0a17ecc321fd13a19e81ce82',\r\n // contractAddress: {\r\n // 97: '0xd3af5fe61dbaf8f73149bfcfa9fb653ff096029a',\r\n // 56: '0x73feaa1eE314F8c655E354234017bE2193C9E24E',\r\n // },\r\n // poolCategory: PoolCategory.CORE,\r\n // projectLink: 'https://pancakeswap.finance/',\r\n // harvest: true,\r\n // tokenPerBlock: '10',\r\n // sortOrder: 1,\r\n // isFinished: false,\r\n // tokenDecimals: 18,\r\n // rewardTokenDetails: {\r\n // tokenAddress: '0x5066C68cAe3B9BdaCD6A1A37c90F2d1723559D18',\r\n // lpAddress: '0x0525334A5AFa3170B3D621B7130C2b068BDF9e43',\r\n // quoteTokenAddress: '0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c',\r\n // quoteTokenSymbol: 'BNB',\r\n // },\r\n // },\r\n // {\r\n // sousId: 1,\r\n // tokenName: 'TWT',\r\n // stakingTokenName: QuoteToken.SYRUP,\r\n // stakingTokenAddress: '0x009cF7bC57584b7998236eff51b98A168DceA9B0',\r\n // contractAddress: {\r\n // 97: '0xAfd61Dc94f11A70Ae110dC0E0F2061Af5633061A',\r\n // 56: '0xAfd61Dc94f11A70Ae110dC0E0F2061Af5633061A',\r\n // },\r\n // poolCategory: PoolCategory.CORE,\r\n // projectLink: 'https://trustwallet.com/',\r\n // harvest: true,\r\n // tokenPerBlock: '20',\r\n // sortOrder: 999,\r\n // isFinished: true,\r\n // tokenDecimals: 18,\r\n // },\r\n]\r\n\r\nexport default pools\r\n","import contracts from './contracts'\r\nimport { FarmConfig, QuoteToken } from './types'\r\n\r\nconst farms: FarmConfig[] = [\r\n {\r\n pid: 0,\r\n risk: 5,\r\n lpSymbol: 'MSWAP',\r\n lpAddresses: {\r\n 97: '0xdA38540DcEf3Da8fA4906b8f11D49604d38628F1',\r\n 56: '0x90Ebf5bF9e0486893deBC85Dcf164d1dDC107e0c',\r\n },\r\n isTokenOnly: true,\r\n tokenSymbol: 'MSWAP',\r\n tokenAddresses: {\r\n 97: '0xdA38540DcEf3Da8fA4906b8f11D49604d38628F1',\r\n 56: '0x9393d3C08956F245cdEE9ac9DD7214131Ae2bB8B',\r\n },\r\n quoteTokenSymbol: QuoteToken.BNB,\r\n quoteTokenAdresses: contracts.wbnb,\r\n },\r\n {\r\n pid: 1,\r\n risk: 5,\r\n lpSymbol: 'MUFT',\r\n lpAddresses: {\r\n 97: '0xdA38540DcEf3Da8fA4906b8f11D49604d38628F1',\r\n 56: '0x8858cFb3f8C901381bd52F8aCf5bFB888dce421d',\r\n },\r\n isTokenOnly: true,\r\n tokenSymbol: 'Muft',\r\n tokenAddresses: {\r\n 97: '0xdA38540DcEf3Da8fA4906b8f11D49604d38628F1',\r\n 56: '0x1d4a26a9d980afc2287dca15eb896a26384bac7c',\r\n },\r\n quoteTokenSymbol: QuoteToken.BNB,\r\n quoteTokenAdresses: contracts.wbnb,\r\n },\r\n {\r\n pid: 2,\r\n risk: 5,\r\n lpSymbol: 'MSWAP-MUFT LP',\r\n lpAddresses: {\r\n 97: '0x382c7e4111d072e37180c95ec627f760b75d4455',\r\n 56: '0x0444457A8eb29e1Bdd13569c213F068b998f5660',\r\n },\r\n tokenSymbol: 'MSWAP',\r\n tokenAddresses: {\r\n 97: '0x382c7e4111d072e37180c95ec627f760b75d4455',\r\n 56: '0x9393d3C08956F245cdEE9ac9DD7214131Ae2bB8B',\r\n },\r\n quoteTokenSymbol: QuoteToken.CAKE,\r\n quoteTokenAdresses: contracts.cake,\r\n },\r\n {\r\n pid: 3,\r\n risk: 5,\r\n lpSymbol: 'MSWAP-BNB LP',\r\n lpAddresses: {\r\n 97: '0x382c7e4111d072e37180c95ec627f760b75d4455',\r\n 56: '0x90Ebf5bF9e0486893deBC85Dcf164d1dDC107e0c',\r\n },\r\n tokenSymbol: 'MSWAP',\r\n tokenAddresses: {\r\n 97: '0x382c7e4111d072e37180c95ec627f760b75d4455',\r\n 56: '0x9393d3C08956F245cdEE9ac9DD7214131Ae2bB8B',\r\n },\r\n quoteTokenSymbol: QuoteToken.BNB,\r\n quoteTokenAdresses: contracts.wbnb,\r\n },\r\n {\r\n pid: 4,\r\n risk: 5,\r\n lpSymbol: 'MUFT-BNB LP',\r\n lpAddresses: {\r\n 97: '0x382c7e4111d072e37180c95ec627f760b75d4455',\r\n 56: '0x8858cFb3f8C901381bd52F8aCf5bFB888dce421d',\r\n },\r\n tokenSymbol: 'MUFT',\r\n tokenAddresses: {\r\n 97: '0x382c7e4111d072e37180c95ec627f760b75d4455',\r\n 56: '0x1d4a26a9d980afc2287dca15eb896a26384bac7c',\r\n },\r\n quoteTokenSymbol: QuoteToken.BNB,\r\n quoteTokenAdresses: contracts.wbnb,\r\n },\r\n {\r\n pid: 6,\r\n risk: 5,\r\n lpSymbol: 'ETHB',\r\n lpAddresses: {\r\n 97: '0xdA38540DcEf3Da8fA4906b8f11D49604d38628F1',\r\n 56: '0x70D8929d04b60Af4fb9B58713eBcf18765aDE422',\r\n },\r\n isTokenOnly: true,\r\n tokenSymbol: 'ETHB',\r\n tokenAddresses: {\r\n 97: '0xdA38540DcEf3Da8fA4906b8f11D49604d38628F1',\r\n 56: '0x2170ed0880ac9a755fd29b2688956bd959f933f8',\r\n },\r\n quoteTokenSymbol: QuoteToken.BNB,\r\n quoteTokenAdresses: contracts.wbnb,\r\n },\r\n {\r\n pid: 8,\r\n risk: 5,\r\n lpSymbol: 'WBNB',\r\n lpAddresses: {\r\n 97: '0xdA38540DcEf3Da8fA4906b8f11D49604d38628F1',\r\n 56: '0x20bCC3b8a0091dDac2d0BC30F68E6CBb97de59Cd', // '0x58F876857a02D6762E0101bb5C46A8c1ED44Dc16',\r\n },\r\n isTokenOnly: true,\r\n tokenSymbol: 'WBNB',\r\n tokenAddresses: {\r\n 97: '0xdA38540DcEf3Da8fA4906b8f11D49604d38628F1',\r\n 56: '0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c',\r\n },\r\n quoteTokenSymbol: QuoteToken.USDT,\r\n quoteTokenAdresses: contracts.usdt,\r\n },\r\n {\r\n pid: 7,\r\n risk: 5,\r\n lpSymbol: 'BTCB',\r\n lpAddresses: {\r\n 97: '0xdA38540DcEf3Da8fA4906b8f11D49604d38628F1',\r\n 56: '0x7561EEe90e24F3b348E1087A005F78B4c8453524',\r\n },\r\n isTokenOnly: true,\r\n tokenSymbol: 'BTCB',\r\n tokenAddresses: {\r\n 97: '0x7130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c',\r\n 56: '0x7130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c',\r\n },\r\n quoteTokenSymbol: QuoteToken.BNB,\r\n quoteTokenAdresses: contracts.wbnb,\r\n },\r\n {\r\n pid: 9,\r\n risk: 5,\r\n lpSymbol: 'AXS',\r\n lpAddresses: {\r\n 97: '0xdA38540DcEf3Da8fA4906b8f11D49604d38628F1',\r\n 56: '0xC2d00De94795e60FB76Bc37d899170996cBdA436', // '0x58F876857a02D6762E0101bb5C46A8c1ED44Dc16',\r\n },\r\n isTokenOnly: true,\r\n tokenSymbol: 'AXS',\r\n tokenAddresses: {\r\n 97: '0xdA38540DcEf3Da8fA4906b8f11D49604d38628F1',\r\n 56: '0x715D400F88C167884bbCc41C5FeA407ed4D2f8A0',\r\n },\r\n quoteTokenSymbol: QuoteToken.BNB,\r\n quoteTokenAdresses: contracts.wbnb,\r\n },\r\n {\r\n pid: 10,\r\n risk: 5,\r\n lpSymbol: 'SHIB',\r\n lpAddresses: {\r\n 97: '0xdA38540DcEf3Da8fA4906b8f11D49604d38628F1',\r\n 56: '0x6b7b3523a6660a5fcE3c28E1536CC8dd8D57f7E0', // '0x58F876857a02D6762E0101bb5C46A8c1ED44Dc16',\r\n },\r\n isTokenOnly: true,\r\n tokenSymbol: 'SHIB',\r\n tokenAddresses: {\r\n 97: '0xdA38540DcEf3Da8fA4906b8f11D49604d38628F1',\r\n 56: '0x2859e4544C4bB03966803b044A93563Bd2D0DD4D',\r\n },\r\n quoteTokenSymbol: QuoteToken.BNB,\r\n quoteTokenAdresses: contracts.wbnb,\r\n },\r\n {\r\n pid: 11,\r\n risk: 5,\r\n lpSymbol: 'GALA',\r\n lpAddresses: {\r\n 97: '0xdA38540DcEf3Da8fA4906b8f11D49604d38628F1',\r\n 56: '0x8dd5Fc7941966448961250119db45af8aaA85D3f', // '0x58F876857a02D6762E0101bb5C46A8c1ED44Dc16',\r\n },\r\n isTokenOnly: true,\r\n tokenSymbol: 'GALA',\r\n tokenAddresses: {\r\n 97: '0xdA38540DcEf3Da8fA4906b8f11D49604d38628F1',\r\n 56: '0x7dDEE176F665cD201F93eEDE625770E2fD911990',\r\n },\r\n quoteTokenSymbol: QuoteToken.BNB,\r\n quoteTokenAdresses: contracts.wbnb,\r\n },\r\n {\r\n pid: 12,\r\n risk: 5,\r\n lpSymbol: 'DOT',\r\n lpAddresses: {\r\n 97: '0xdA38540DcEf3Da8fA4906b8f11D49604d38628F1',\r\n 56: '0xDd5bAd8f8b360d76d12FdA230F8BAF42fe0022CF', // '0x58F876857a02D6762E0101bb5C46A8c1ED44Dc16',\r\n },\r\n isTokenOnly: true,\r\n tokenSymbol: 'DOT',\r\n tokenAddresses: {\r\n 97: '0xdA38540DcEf3Da8fA4906b8f11D49604d38628F1',\r\n 56: '0x7083609fCE4d1d8Dc0C979AAb8c869Ea2C873402',\r\n },\r\n quoteTokenSymbol: QuoteToken.BNB,\r\n quoteTokenAdresses: contracts.wbnb,\r\n },\r\n {\r\n pid: 13,\r\n risk: 5,\r\n lpSymbol: 'MATIC',\r\n lpAddresses: {\r\n 97: '0xdA38540DcEf3Da8fA4906b8f11D49604d38628F1',\r\n 56: '0x5AcB99428a29092555dCDc00e4565B05272a3B2B', // '0x58F876857a02D6762E0101bb5C46A8c1ED44Dc16',\r\n },\r\n isTokenOnly: true,\r\n tokenSymbol: 'MATIC',\r\n tokenAddresses: {\r\n 97: '0xdA38540DcEf3Da8fA4906b8f11D49604d38628F1',\r\n 56: '0xCC42724C6683B7E57334c4E856f4c9965ED682bD',\r\n },\r\n quoteTokenSymbol: QuoteToken.BNB,\r\n quoteTokenAdresses: contracts.wbnb,\r\n },\r\n {\r\n pid: 14,\r\n risk: 5,\r\n lpSymbol: 'XRP',\r\n lpAddresses: {\r\n 97: '0xdA38540DcEf3Da8fA4906b8f11D49604d38628F1',\r\n 56: '0x03F18135c44C64ebFdCBad8297fe5bDafdBbdd86', // '0x58F876857a02D6762E0101bb5C46A8c1ED44Dc16',\r\n },\r\n isTokenOnly: true,\r\n tokenSymbol: 'XRP',\r\n tokenAddresses: {\r\n 97: '0xdA38540DcEf3Da8fA4906b8f11D49604d38628F1',\r\n 56: '0x1D2F0da169ceB9fC7B3144628dB156f3F6c60dBE',\r\n },\r\n quoteTokenSymbol: QuoteToken.BNB,\r\n quoteTokenAdresses: contracts.wbnb,\r\n },\r\n {\r\n pid: 15,\r\n risk: 5,\r\n lpSymbol: 'ADA',\r\n lpAddresses: {\r\n 97: '0xdA38540DcEf3Da8fA4906b8f11D49604d38628F1',\r\n 56: '0x28415ff2C35b65B9E5c7de82126b4015ab9d031F', // '0x58F876857a02D6762E0101bb5C46A8c1ED44Dc16',\r\n },\r\n isTokenOnly: true,\r\n tokenSymbol: 'ADA',\r\n tokenAddresses: {\r\n 97: '0xdA38540DcEf3Da8fA4906b8f11D49604d38628F1',\r\n 56: '0x3EE2200Efb3400fAbB9AacF31297cBdD1d435D47',\r\n },\r\n quoteTokenSymbol: QuoteToken.BNB,\r\n quoteTokenAdresses: contracts.wbnb,\r\n },\r\n {\r\n pid: 17,\r\n risk: 5,\r\n lpSymbol: 'MSWAP-BUSD LP',\r\n lpAddresses: {\r\n 97: '0xdA38540DcEf3Da8fA4906b8f11D49604d38628F1',\r\n 56: '0x0C57013fb98cFb43B28551fE716b232Ee28d3886', // '0x58F876857a02D6762E0101bb5C46A8c1ED44Dc16',\r\n },\r\n // isTokenOnly: true,\r\n tokenSymbol: 'BUSD',\r\n tokenAddresses: {\r\n 97: '0xdA38540DcEf3Da8fA4906b8f11D49604d38628F1',\r\n 56: '0x9393d3c08956f245cdee9ac9dd7214131ae2bb8b',\r\n },\r\n quoteTokenSymbol: QuoteToken.BUSD,\r\n quoteTokenAdresses: contracts.busd,\r\n },\r\n {\r\n pid: 16,\r\n risk: 5,\r\n lpSymbol: 'MSWAP-USDT LP',\r\n lpAddresses: {\r\n 97: '0xdA38540DcEf3Da8fA4906b8f11D49604d38628F1',\r\n 56: '0x496508a60402bf0a0a3148A95976ec98C37bB224', // '0x58F876857a02D6762E0101bb5C46A8c1ED44Dc16',\r\n },\r\n // isTokenOnly: true,\r\n tokenSymbol: 'USDT',\r\n tokenAddresses: {\r\n 97: '0xdA38540DcEf3Da8fA4906b8f11D49604d38628F1',\r\n 56: '0x9393d3c08956f245cdee9ac9dd7214131ae2bb8b',\r\n },\r\n quoteTokenSymbol: QuoteToken.USDT,\r\n quoteTokenAdresses: contracts.usdt,\r\n },\r\n]\r\n\r\nexport default farms\r\n"],"sourceRoot":""}