-
Notifications
You must be signed in to change notification settings - Fork 2
/
.eslintcache
1 lines (1 loc) · 317 KB
/
.eslintcache
1
[{"C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\index.js":"1","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\App.js":"2","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\reducer.js":"3","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\InitPage.jsx":"4","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\redux\\index.js":"5","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\const.js":"6","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\index.jsx":"7","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\components\\WalletConnect.js":"8","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\RestrictedIpProvider.jsx":"9","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\redux\\reducer.js":"10","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\styled.js":"11","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\LotteryNFT1155\\Detail.js":"12","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\CertifiedSales\\Apply.jsx":"13","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\FixedSwap\\Detail.js":"14","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\components\\WalletItem.jsx":"15","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\components\\common\\Modal.js":"16","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\components\\Modal\\Confirm.jsx":"17","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\LotteryNFT1155\\Hooks.js":"18","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\components\\common\\BidModal.js":"19","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\components\\common\\Button.js":"20","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\web3\\address.js":"21","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\web3\\common.js":"22","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\CertifiedSales\\index.jsx":"23","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\hooks\\useBalance.js":"24","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\hooks\\useLeftTime.js":"25","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\utils\\numberTransform.js":"26","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\CertifiedSales\\ApplyModal.js":"27","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\components\\Modal\\index.jsx":"28","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\PersonalInfo\\index.jsx":"29","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\Kyc\\index.jsx":"30","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\Home\\index.jsx":"31","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\CertifiedSales\\LearnMore\\index.jsx":"32","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\ProjectList\\index.jsx":"33","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\CertifiedSales\\Detail\\index.jsx":"34","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\ApplySale\\index.jsx":"35","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\components\\HeaderTab\\index.jsx":"36","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\CertifiedSales\\hooks.js":"37","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\components\\common\\Layout.jsx":"38","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\utils\\common.js":"39","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\components\\common\\message.js":"40","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\utils\\form.js":"41","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\components\\common\\TipLink.js":"42","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\components\\common\\AuctionTipModal.js":"43","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\utils\\themeHooks.js":"44","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\components\\styled.js":"45","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\components\\Modal\\styled.js":"46","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\web3\\index.js":"47","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\components\\common\\Form.js":"48","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\FixedSwap\\Hooks.js":"49","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\hooks.js":"50","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\CertifiedSales\\Detail\\styled.js":"51","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\hooks\\useAxios.js":"52","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\hooks\\themeHooks.js":"53","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\components\\HeaderTab\\styled.js":"54","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\components\\HeaderTab\\config.js":"55","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\config\\request_api.js":"56","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\components\\Modal\\Approve.jsx":"57","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\components\\HeaderTab\\MenuModal.jsx":"58","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\components\\HeaderTab\\PersonalModal.jsx":"59","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\ApplySale\\Step6.jsx":"60","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\ApplySale\\Step5.jsx":"61","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\ApplySale\\Step4.jsx":"62","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\ApplySale\\Step3.jsx":"63","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\ApplySale\\Step2.jsx":"64","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\ApplySale\\Step1.jsx":"65","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\components\\Table\\index.jsx":"66","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\components\\common\\TXModal.js":"67","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\ApplySale\\styled.js":"68","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\config\\utils\\END_FUN.js":"69","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\config\\utils\\BOT_FUN.js":"70","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\components\\Table\\Select.jsx":"71","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\components\\Table\\Text.jsx":"72","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\components\\Table\\Upload.jsx":"73","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\components\\Table\\Button.jsx":"74","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\components\\Table\\Check.jsx":"75","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\components\\Table\\Input.jsx":"76","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\components\\Table\\Form.jsx":"77","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\components\\Table\\styled.js":"78","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\ProjectList\\styled.js":"79","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\CertifiedSales\\LearnMore\\styled.js":"80","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\CertifiedSales\\Card.jsx":"81","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\CertifiedSales\\LearnMore\\InfoBox.jsx":"82","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\components\\Modal\\Support.jsx":"83","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\CertifiedSales\\Progress.jsx":"84","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\CertifiedSales\\CardHeader.jsx":"85","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\components\\Exhibition\\Crumbs.jsx":"86","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\components\\Exhibition\\index.jsx":"87","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\Home\\styled.js":"88","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\utils\\time.js":"89","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\CertifiedSales\\styled.js":"90","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\components\\Exhibition\\styled.js":"91","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\Kyc\\styled.js":"92","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\PersonalInfo\\styled.js":"93","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\Kyc\\Step3.jsx":"94","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\Kyc\\Step2.jsx":"95","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\Kyc\\Step1.jsx":"96","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\components\\common\\DetailCover.js":"97","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\components\\Modal\\KYC_TIP.jsx":"98","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\CertifiedSales\\SaleCard.jsx":"99","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\components\\Exhibition\\Passage.jsx":"100"},{"size":233,"mtime":1612253588815,"results":"101","hashOfConfig":"102"},{"size":999,"mtime":1632638400788,"results":"103","hashOfConfig":"102"},{"size":863,"mtime":1611719168534,"results":"104","hashOfConfig":"102"},{"size":2167,"mtime":1632637609839,"results":"105","hashOfConfig":"102"},{"size":385,"mtime":1610943605533,"results":"106","hashOfConfig":"102"},{"size":7460,"mtime":1611719168494,"results":"107","hashOfConfig":"102"},{"size":3109,"mtime":1632641027592,"results":"108","hashOfConfig":"102"},{"size":3500,"mtime":1621329630140,"results":"109","hashOfConfig":"102"},{"size":2373,"mtime":1632714971999,"results":"110","hashOfConfig":"102"},{"size":1015,"mtime":1611719168535,"results":"111","hashOfConfig":"102"},{"size":399,"mtime":1612253588847,"results":"112","hashOfConfig":"102"},{"size":15913,"mtime":1630931246172,"results":"113","hashOfConfig":"102"},{"size":2429,"mtime":1613962212058,"results":"114","hashOfConfig":"102"},{"size":22064,"mtime":1637650819424,"results":"115","hashOfConfig":"102"},{"size":721,"mtime":1611719168482,"results":"116","hashOfConfig":"102"},{"size":5250,"mtime":1632639135087,"results":"117","hashOfConfig":"102"},{"size":1281,"mtime":1612145097170,"results":"118","hashOfConfig":"102"},{"size":7968,"mtime":1613962212065,"results":"119","hashOfConfig":"102"},{"size":3061,"mtime":1612253588812,"results":"120","hashOfConfig":"102"},{"size":1091,"mtime":1612145097155,"results":"121","hashOfConfig":"102"},{"size":3405,"mtime":1621325930406,"results":"122","hashOfConfig":"102"},{"size":3710,"mtime":1629981778959,"results":"123","hashOfConfig":"102"},{"size":2268,"mtime":1616050272878,"results":"124","hashOfConfig":"102"},{"size":991,"mtime":1613962212055,"results":"125","hashOfConfig":"102"},{"size":1139,"mtime":1611719168496,"results":"126","hashOfConfig":"102"},{"size":2333,"mtime":1630931143694,"results":"127","hashOfConfig":"102"},{"size":3499,"mtime":1611719168502,"results":"128","hashOfConfig":"102"},{"size":2619,"mtime":1612145097171,"results":"129","hashOfConfig":"102"},{"size":8476,"mtime":1612253588838,"results":"130","hashOfConfig":"102"},{"size":2129,"mtime":1612253588836,"results":"131","hashOfConfig":"102"},{"size":13685,"mtime":1635597495984,"results":"132","hashOfConfig":"102"},{"size":7181,"mtime":1630931246170,"results":"133","hashOfConfig":"102"},{"size":4519,"mtime":1635597286445,"results":"134","hashOfConfig":"102"},{"size":200,"mtime":1611044363811,"results":"135","hashOfConfig":"102"},{"size":7523,"mtime":1613962212057,"results":"136","hashOfConfig":"102"},{"size":9621,"mtime":1635597286446,"results":"137","hashOfConfig":"102"},{"size":15087,"mtime":1637756919286,"results":"138","hashOfConfig":"102"},{"size":10581,"mtime":1613962212053,"results":"139","hashOfConfig":"102"},{"size":592,"mtime":1611719168536,"results":"140","hashOfConfig":"102"},{"size":1770,"mtime":1612145097158,"results":"141","hashOfConfig":"102"},{"size":161,"mtime":1611130074789,"results":"142","hashOfConfig":"102"},{"size":725,"mtime":1613962212054,"results":"143","hashOfConfig":"102"},{"size":4223,"mtime":1611719168483,"results":"144","hashOfConfig":"102"},{"size":566,"mtime":1611719168537,"results":"145","hashOfConfig":"102"},{"size":973,"mtime":1611719168490,"results":"146","hashOfConfig":"102"},{"size":4485,"mtime":1612253588844,"results":"147","hashOfConfig":"102"},{"size":1562,"mtime":1621340903803,"results":"148","hashOfConfig":"102"},{"size":4092,"mtime":1612145097156,"results":"149","hashOfConfig":"102"},{"size":9945,"mtime":1630931360154,"results":"150","hashOfConfig":"102"},{"size":312,"mtime":1611719168494,"results":"151","hashOfConfig":"102"},{"size":85,"mtime":1611044237079,"results":"152","hashOfConfig":"102"},{"size":2225,"mtime":1612253588814,"results":"153","hashOfConfig":"102"},{"size":566,"mtime":1612253588813,"results":"154","hashOfConfig":"102"},{"size":7571,"mtime":1612253588843,"results":"155","hashOfConfig":"102"},{"size":578,"mtime":1611719168523,"results":"156","hashOfConfig":"102"},{"size":791,"mtime":1613962212055,"results":"157","hashOfConfig":"102"},{"size":1029,"mtime":1612145097169,"results":"158","hashOfConfig":"102"},{"size":3744,"mtime":1614568638284,"results":"159","hashOfConfig":"102"},{"size":13402,"mtime":1635597456613,"results":"160","hashOfConfig":"102"},{"size":3899,"mtime":1612253588819,"results":"161","hashOfConfig":"102"},{"size":8178,"mtime":1613962212057,"results":"162","hashOfConfig":"102"},{"size":5484,"mtime":1612253588818,"results":"163","hashOfConfig":"102"},{"size":2402,"mtime":1612253588817,"results":"164","hashOfConfig":"102"},{"size":3569,"mtime":1612253588816,"results":"165","hashOfConfig":"102"},{"size":6551,"mtime":1635604617104,"results":"166","hashOfConfig":"102"},{"size":386,"mtime":1611719168532,"results":"167","hashOfConfig":"102"},{"size":3472,"mtime":1611719168489,"results":"168","hashOfConfig":"102"},{"size":3926,"mtime":1612253588820,"results":"169","hashOfConfig":"102"},{"size":403,"mtime":1611719168493,"results":"170","hashOfConfig":"102"},{"size":504,"mtime":1630931246169,"results":"171","hashOfConfig":"102"},{"size":2138,"mtime":1612235790516,"results":"172","hashOfConfig":"102"},{"size":361,"mtime":1611719168531,"results":"173","hashOfConfig":"102"},{"size":4024,"mtime":1611719168532,"results":"174","hashOfConfig":"102"},{"size":688,"mtime":1611146591285,"results":"175","hashOfConfig":"102"},{"size":1119,"mtime":1611719168528,"results":"176","hashOfConfig":"102"},{"size":9804,"mtime":1612263660200,"results":"177","hashOfConfig":"102"},{"size":389,"mtime":1611719168529,"results":"178","hashOfConfig":"102"},{"size":11725,"mtime":1612263302542,"results":"179","hashOfConfig":"102"},{"size":1117,"mtime":1612253588840,"results":"180","hashOfConfig":"102"},{"size":2309,"mtime":1612253588825,"results":"181","hashOfConfig":"102"},{"size":14209,"mtime":1630931317142,"results":"182","hashOfConfig":"102"},{"size":3675,"mtime":1630497372102,"results":"183","hashOfConfig":"102"},{"size":918,"mtime":1613962212066,"results":"184","hashOfConfig":"102"},{"size":1259,"mtime":1613962246184,"results":"185","hashOfConfig":"102"},{"size":1360,"mtime":1620271216554,"results":"186","hashOfConfig":"102"},{"size":604,"mtime":1611719168519,"results":"187","hashOfConfig":"102"},{"size":103,"mtime":1611719168520,"results":"188","hashOfConfig":"102"},{"size":14062,"mtime":1612253588833,"results":"189","hashOfConfig":"102"},{"size":2571,"mtime":1611719168538,"results":"190","hashOfConfig":"102"},{"size":7273,"mtime":1612253588828,"results":"191","hashOfConfig":"102"},{"size":1479,"mtime":1612253588841,"results":"192","hashOfConfig":"102"},{"size":1406,"mtime":1612253588837,"results":"193","hashOfConfig":"102"},{"size":2840,"mtime":1612253588839,"results":"194","hashOfConfig":"102"},{"size":9811,"mtime":1612404823681,"results":"195","hashOfConfig":"102"},{"size":4434,"mtime":1612253588835,"results":"196","hashOfConfig":"102"},{"size":4357,"mtime":1612253588834,"results":"197","hashOfConfig":"102"},{"size":1565,"mtime":1613962212052,"results":"198","hashOfConfig":"102"},{"size":1544,"mtime":1612145097171,"results":"199","hashOfConfig":"102"},{"size":7189,"mtime":1635597286443,"results":"200","hashOfConfig":"102"},{"size":548,"mtime":1630497118391,"results":"201","hashOfConfig":"102"},{"filePath":"202","messages":"203","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"204"},"1wrpame",{"filePath":"205","messages":"206","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"204"},{"filePath":"207","messages":"208","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"204"},{"filePath":"209","messages":"210","errorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":"211","usedDeprecatedRules":"204"},{"filePath":"212","messages":"213","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"204"},{"filePath":"214","messages":"215","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"204"},{"filePath":"216","messages":"217","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"204"},{"filePath":"218","messages":"219","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"220","usedDeprecatedRules":"204"},{"filePath":"221","messages":"222","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"204"},{"filePath":"223","messages":"224","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"204"},{"filePath":"225","messages":"226","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"204"},{"filePath":"227","messages":"228","errorCount":0,"warningCount":12,"fixableErrorCount":0,"fixableWarningCount":0,"source":"229","usedDeprecatedRules":"204"},{"filePath":"230","messages":"231","errorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":"232","usedDeprecatedRules":"204"},{"filePath":"233","messages":"234","errorCount":0,"warningCount":14,"fixableErrorCount":0,"fixableWarningCount":0,"source":"235","usedDeprecatedRules":"204"},{"filePath":"236","messages":"237","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"204"},{"filePath":"238","messages":"239","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"204"},{"filePath":"240","messages":"241","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"204"},{"filePath":"242","messages":"243","errorCount":0,"warningCount":7,"fixableErrorCount":0,"fixableWarningCount":0,"source":"244","usedDeprecatedRules":"204"},{"filePath":"245","messages":"246","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"204"},{"filePath":"247","messages":"248","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"204"},{"filePath":"249","messages":"250","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"204"},{"filePath":"251","messages":"252","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"253","usedDeprecatedRules":"204"},{"filePath":"254","messages":"255","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"204"},{"filePath":"256","messages":"257","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"258","usedDeprecatedRules":"204"},{"filePath":"259","messages":"260","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"261","usedDeprecatedRules":"204"},{"filePath":"262","messages":"263","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"204"},{"filePath":"264","messages":"265","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"266","usedDeprecatedRules":"204"},{"filePath":"267","messages":"268","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"204"},{"filePath":"269","messages":"270","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"204"},{"filePath":"271","messages":"272","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"273","usedDeprecatedRules":"204"},{"filePath":"274","messages":"275","errorCount":0,"warningCount":5,"fixableErrorCount":0,"fixableWarningCount":0,"source":"276","usedDeprecatedRules":"204"},{"filePath":"277","messages":"278","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"279","usedDeprecatedRules":"204"},{"filePath":"280","messages":"281","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"282","usedDeprecatedRules":"204"},{"filePath":"283","messages":"284","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"204"},{"filePath":"285","messages":"286","errorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":"287","usedDeprecatedRules":"204"},{"filePath":"288","messages":"289","errorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":"290","usedDeprecatedRules":"204"},{"filePath":"291","messages":"292","errorCount":0,"warningCount":11,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"293","messages":"294","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"204"},{"filePath":"295","messages":"296","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"297","usedDeprecatedRules":"204"},{"filePath":"298","messages":"299","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"204"},{"filePath":"300","messages":"301","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"204"},{"filePath":"302","messages":"303","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"204"},{"filePath":"304","messages":"305","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"204"},{"filePath":"306","messages":"307","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"204"},{"filePath":"308","messages":"309","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"204"},{"filePath":"310","messages":"311","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"204"},{"filePath":"312","messages":"313","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"314","usedDeprecatedRules":"204"},{"filePath":"315","messages":"316","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"204"},{"filePath":"317","messages":"318","errorCount":0,"warningCount":5,"fixableErrorCount":0,"fixableWarningCount":0,"source":"319","usedDeprecatedRules":"204"},{"filePath":"320","messages":"321","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"204"},{"filePath":"322","messages":"323","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"204"},{"filePath":"324","messages":"325","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"204"},{"filePath":"326","messages":"327","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"204"},{"filePath":"328","messages":"329","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"204"},{"filePath":"330","messages":"331","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"204"},{"filePath":"332","messages":"333","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"204"},{"filePath":"334","messages":"335","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"204"},{"filePath":"336","messages":"337","errorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":"338","usedDeprecatedRules":"204"},{"filePath":"339","messages":"340","errorCount":0,"warningCount":5,"fixableErrorCount":0,"fixableWarningCount":0,"source":"341","usedDeprecatedRules":"204"},{"filePath":"342","messages":"343","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"344","usedDeprecatedRules":"204"},{"filePath":"345","messages":"346","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"347","usedDeprecatedRules":"204"},{"filePath":"348","messages":"349","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"350","usedDeprecatedRules":"204"},{"filePath":"351","messages":"352","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"353","usedDeprecatedRules":"204"},{"filePath":"354","messages":"355","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"356","usedDeprecatedRules":"204"},{"filePath":"357","messages":"358","errorCount":0,"warningCount":13,"fixableErrorCount":0,"fixableWarningCount":0,"source":"359","usedDeprecatedRules":"204"},{"filePath":"360","messages":"361","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"204"},{"filePath":"362","messages":"363","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"364","usedDeprecatedRules":"204"},{"filePath":"365","messages":"366","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"204"},{"filePath":"367","messages":"368","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"204"},{"filePath":"369","messages":"370","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"204"},{"filePath":"371","messages":"372","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"373","usedDeprecatedRules":"204"},{"filePath":"374","messages":"375","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"204"},{"filePath":"376","messages":"377","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"204"},{"filePath":"378","messages":"379","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"204"},{"filePath":"380","messages":"381","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"382","usedDeprecatedRules":"204"},{"filePath":"383","messages":"384","errorCount":0,"warningCount":7,"fixableErrorCount":0,"fixableWarningCount":0,"source":"385","usedDeprecatedRules":"204"},{"filePath":"386","messages":"387","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"388","usedDeprecatedRules":"204"},{"filePath":"389","messages":"390","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"204"},{"filePath":"391","messages":"392","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"204"},{"filePath":"393","messages":"394","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"204"},{"filePath":"395","messages":"396","errorCount":0,"warningCount":5,"fixableErrorCount":0,"fixableWarningCount":0,"source":"397","usedDeprecatedRules":"204"},{"filePath":"398","messages":"399","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"204"},{"filePath":"400","messages":"401","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"204"},{"filePath":"402","messages":"403","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"204"},{"filePath":"404","messages":"405","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"406","usedDeprecatedRules":"204"},{"filePath":"407","messages":"408","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"204"},{"filePath":"409","messages":"410","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"204"},{"filePath":"411","messages":"412","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"204"},{"filePath":"413","messages":"414","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"204"},{"filePath":"415","messages":"416","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"204"},{"filePath":"417","messages":"418","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"204"},{"filePath":"419","messages":"420","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"204"},{"filePath":"421","messages":"422","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"204"},{"filePath":"423","messages":"424","errorCount":0,"warningCount":5,"fixableErrorCount":0,"fixableWarningCount":0,"source":"425","usedDeprecatedRules":"204"},{"filePath":"426","messages":"427","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"428","usedDeprecatedRules":"204"},{"filePath":"429","messages":"430","errorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":"431","usedDeprecatedRules":"204"},{"filePath":"432","messages":"433","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"204"},{"filePath":"434","messages":"435","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"436"},{"filePath":"437","messages":"438","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"439","usedDeprecatedRules":"204"},{"filePath":"440","messages":"441","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"442","usedDeprecatedRules":"204"},"C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\index.js",[],["443","444"],"C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\App.js",[],"C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\reducer.js",[],"C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\InitPage.jsx",["445","446","447"],"import React, { useContext, useEffect } from 'react'\r\nimport { WalletConnect } from \"../components/WalletConnect\";\r\nimport { useWeb3React } from \"@web3-react/core\";\r\nimport { mainContext } from \"../reducer\";\r\nimport { BOUNCE_SELECT_WEB3_CONTEXT } from \"../const\";\r\nimport { InjectedConnector } from \"@web3-react/injected-connector\";\r\nimport { WalletConnectConnector } from \"@web3-react/walletconnect-connector\";\r\nimport { LedgerConnector } from \"@web3-react/ledger-connector\";\r\n\r\nconst injected = new InjectedConnector({\r\n supportedChainIds: [1, 3, 4, 5, 42, 56,128, 31337]\r\n});\r\n\r\nconst POLLING_INTERVAL = 12000;\r\nconst RPC_URLS = {\r\n 1: \"https://eth-mainnet.alchemyapi.io/v2/k2--UT_xVVXMOvAyoxJYqtKhlmyBbqnX\",\r\n 4: \"https://rinkeby.infura.io/v3/8f6d3d5d7a1442a38d9e8050c31c1884\"\r\n};\r\n\r\nconst walletconnect = new WalletConnectConnector({\r\n rpc: { 1: RPC_URLS[1] },\r\n bridge: \"https://bridge.walletconnect.org\",\r\n qrcode: true,\r\n pollingInterval: POLLING_INTERVAL\r\n});\r\n\r\nconst ledger = new LedgerConnector({\r\n chainId: 1,\r\n url: RPC_URLS[1],\r\n pollingInterval: POLLING_INTERVAL\r\n});\r\n\r\nconst wallets = {\r\n MetaMask: injected,\r\n WalletConnect: walletconnect,\r\n Ledger: ledger,\r\n //TrustWallet: injected,\r\n //Squarelink: squarelink,\r\n //Torus: torus,\r\n //Aut\r\n}\r\n\r\nexport const InitPage = () => {\r\n\r\n const context = useWeb3React();\r\n const { activate } = context;\r\n\r\n const { state } = useContext(mainContext);\r\n\r\n useEffect(() => {\r\n const localContent = window && window.localStorage.getItem(BOUNCE_SELECT_WEB3_CONTEXT)\r\n // console.log('wallet content', localContent)\r\n if (localContent) {\r\n // console.log('activate', wallets[localContent])\r\n activate(wallets[localContent]);\r\n }\r\n }, [])\r\n\r\n \r\n\r\n return <></>\r\n\r\n // return (\r\n // <>\r\n // {showConnectModal && (\r\n // <div className=\"modal-show\">\r\n // <div className=\"wrapper\">\r\n // <WalletConnect/>\r\n // </div>\r\n // </div>\r\n // )}\r\n // </>\r\n\r\n // )\r\n}\r\n","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\redux\\index.js",[],"C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\const.js",[],"C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\index.jsx",[],"C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\components\\WalletConnect.js",["448","449"],"import React, { useContext, useEffect, useState } from 'react';\r\nimport { useWeb3React } from \"@web3-react/core\";\r\nimport { InjectedConnector } from \"@web3-react/injected-connector\";\r\nimport { BOUNCE_SELECT_WEB3_CONTEXT } from \"../const\";\r\nimport { WalletConnectConnector } from \"@web3-react/walletconnect-connector\";\r\nimport { LedgerConnector } from \"@web3-react/ledger-connector\";\r\nimport { myContext } from '../redux';\r\nimport Confirm from '../pages/components/Modal/Confirm'\r\nimport WalletItem from './WalletItem'\r\nimport icon_matemask from '../assets/icons/matemask.svg'\r\nimport icon_walletconnect from '../assets/icons/walletconnect.svg'\r\n// import icon_ledger from '../assets/images/Ledger.png'\r\n\r\n\r\nconst injected = new InjectedConnector({\r\n supportedChainIds: [1, 3, 4, 5, 42, 56, 128, 31337]\r\n});\r\n\r\nconst POLLING_INTERVAL = 12000;\r\nconst RPC_URLS = {\r\n 1: \"https://eth-mainnet.alchemyapi.io/v2/k2--UT_xVVXMOvAyoxJYqtKhlmyBbqnX\",\r\n // 1: \"https://eth-mainnet.alchemyapi.io/v2/k2--UT_xVVXMOvAyoxJYqtKhlmyBbqnX\",\r\n 4: \"https://rinkeby.infura.io/v3/8f6d3d5d7a1442a38d9e8050c31c1884\"\r\n};\r\n\r\n\r\nconst walletconnect = new WalletConnectConnector({\r\n rpc: { 1: RPC_URLS[1] },\r\n bridge: \"https://bridge.walletconnect.org\",\r\n qrcode: true,\r\n pollingInterval: POLLING_INTERVAL\r\n});\r\n\r\nconst ledger = new LedgerConnector({\r\n chainId: 1,\r\n url: RPC_URLS[1],\r\n pollingInterval: POLLING_INTERVAL\r\n});\r\n\r\nconst wallets = {\r\n MetaMask: injected,\r\n WalletConnect: walletconnect,\r\n Ledger: ledger\r\n}\r\n\r\nexport const WalletConnect = () => {\r\n const { dispatch } = useContext(myContext);\r\n\r\n const [activatingConnector, setActivatingConnector] = useState();\r\n const [currentConnector] = useState();\r\n\r\n const {\r\n connector,\r\n library,\r\n account,\r\n activate,\r\n active,\r\n } = useWeb3React()\r\n\r\n useEffect(() => {\r\n\r\n console.log('activatingConnector', activatingConnector, connector)\r\n if (activatingConnector && activatingConnector === connector) {\r\n setActivatingConnector(undefined);\r\n }\r\n }, [activatingConnector]);\r\n\r\n\r\n useEffect(() => {\r\n // console.log(account, account, library)\r\n if (account && active && library) {\r\n dispatch({ type: 'CONNECT_WALLET', value: false });\r\n }\r\n }, [account]);\r\n\r\n function onConnect(currentConnector, name) {\r\n console.log(currentConnector, wallets[name])\r\n setActivatingConnector(currentConnector);\r\n window && window.localStorage.setItem(BOUNCE_SELECT_WEB3_CONTEXT, name)\r\n activate(wallets[name]);\r\n }\r\n\r\n return (\r\n <Confirm\r\n title='Connect to a wallet'\r\n tip=\"To participate in Bounce you first need to connect a wallet. Please select an option below. You can also connect a Ledger via your Metamask.\"\r\n >\r\n\r\n <div style={{ marginTop: 28 }}>\r\n <WalletItem name='MetaMask' icon={icon_matemask} onClick={() => {\r\n onConnect(currentConnector, 'MetaMask')\r\n }} />\r\n <WalletItem name='WalletConnect' icon={icon_walletconnect} onClick={() => {\r\n onConnect(currentConnector, 'WalletConnect')\r\n }} />\r\n\r\n {/* <WalletItem name='Ledger' icon={icon_ledger} onClick={() => {\r\n onConnect(currentConnector, 'Ledger')\r\n }} /> */}\r\n </div>\r\n </Confirm>\r\n\r\n )\r\n}\r\n","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\RestrictedIpProvider.jsx",[],"C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\redux\\reducer.js",[],"C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\styled.js",[],"C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\LotteryNFT1155\\Detail.js",["450","451","452","453","454","455","456","457","458","459","460","461"],"import React, {useEffect, useState,useContext} from 'react';\r\nimport {useHistory, useParams} from 'react-router-dom';\r\nimport {\r\n Address,\r\n LayoutFrame,\r\n LineDivider,\r\n OText3,\r\n Pool,\r\n renderTime\r\n} from '../../components/common/Layout';\r\nimport icon_return from '../../assets/images/icon-return.svg'\r\nimport {usePoolDetail} from './Hooks';\r\nimport classNames from 'classnames';\r\nimport {BigNumber} from 'bignumber.js'\r\nimport {\r\n BidModal,\r\n initStatus,\r\n errorStatus,\r\n successStatus,\r\n confirmStatus,\r\n pendingStatus,\r\n cancelStatus\r\n} from '../../components/common/BidModal';\r\nimport {useLeftTime} from '../../hooks/useLeftTime';\r\nimport {fromWei, getProgress, weiDiv, weiToNum, weiToNumber} from '../../utils/numberTransform';\r\nimport {Button} from \"../../components/common/Button\";\r\nimport {AUCTION, BOUNCE_PRO, BOUNCE_PRO_LOTTERY_NFT_PRO} from '../../web3/address';\r\nimport {getContract, useActivePlatform, useActiveWeb3React} from '../../web3';\r\nimport LotteryERC1155ABI from \"../../web3/abi/bounceERC1155.json\";\r\nimport BounceLotteryNFTPro from \"../../web3/abi/BounceLotteryNFTPro.json\";\r\nimport {useIsSMDown, useIsXSDown} from '../../utils/themeHooks'\r\nimport {Message} from \"../../components/common/message\";\r\nimport {isEqualTo, isGreaterThan} from \"../../utils/common\";\r\nimport {BIDDER_CLAIMED_MESSAGE, CREATOR_CLAIMED_MESSAGE} from \"../../const\";\r\nimport {PoolCover} from \"../../components/common/DetailCover\";\r\nimport bounceERC20 from \"../../web3/abi/bounceERC20.json\";\r\nimport {approveStatus} from \"../CertifiedSales/ApplyModal\";\r\nimport {useInKYC} from \"../CertifiedSales/hooks\";\r\nimport {useTokenBalance} from \"../../hooks/useBalance\";\r\nimport Web3 from 'web3'\r\nimport styled from 'styled-components'\r\nimport {useEthBalance} from \"../../web3/common\";\r\nimport { myContext } from '../../redux'\r\nconst {toWei} = Web3.utils\r\n\r\nconst Extra = styled.div`\r\n \r\n`\r\n\r\n\r\nBigNumber.config({EXPONENTIAL_AT: [-30, 30]})\r\n\r\nexport const LotteryNFTDetail = ({token2}) => {\r\n const history = useHistory();\r\n const {id} = useParams();\r\n\r\n const {account, library, chainId} = useActiveWeb3React();\r\n const AuctionAmount = useTokenBalance(AUCTION(chainId))\r\n const {balance} = useTokenBalance()\r\n const { state, dispatch } = useContext(myContext)\r\n const {\r\n name, address, isLive, time, price, winner, inWhitelist,\r\n toDecimals, playStatus, isMine, claimed, status, setStatus,\r\n isWinner, isJoined, pool, curPlayer, symbol, onlyBOT, toAddress, toSymbol, tokenId, cover\r\n } = usePoolDetail(id);\r\n const [bidStatus, setBidStatus] = useState(initStatus);\r\n const [disable, setDisable] = useState(false);\r\n //const [status, setStatus] = useState();\r\n const [display, setDisplay] = useState('');\r\n const {setTime, leftTime} = useLeftTime();\r\n const isXSDown = useIsXSDown();\r\n const isSMDown = useIsSMDown();\r\n\r\n const KYCed = useInKYC()\r\n const ToBalance = useEthBalance(toAddress)\r\n console.log('balance', balance)\r\n\r\n useEffect(() => {\r\n if(!chainId) return\r\n const pathname = window.location.pathname\r\n const index = pathname.indexOf('/bsc')\r\n if (index !== -1 && chainId !== 56) {\r\n dispatch({\r\n type: 'MODAL',\r\n value: {\r\n name: 'CONFIRM',\r\n title: 'Bounce Certified Warning',\r\n deputy: `The current pool exists on the BSC chain, please switch network to BSC operation.`,\r\n confirm: {\r\n text: 'Confirm',\r\n callback: () => {\r\n\r\n dispatch({\r\n type: 'MODAL',\r\n value: null\r\n })\r\n history.goBack(-1)\r\n }\r\n }\r\n }\r\n })\r\n } else if (index === -1 && chainId === 56) {\r\n dispatch({\r\n type: 'MODAL',\r\n value: {\r\n name: 'CONFIRM',\r\n title: 'Bounce Certified Warning',\r\n deputy: `The current pool exists on the ETH chain, please switch network to ETH operation.`,\r\n confirm: {\r\n text: 'Confirm',\r\n callback: () => {\r\n\r\n dispatch({\r\n type: 'MODAL',\r\n value: null\r\n })\r\n history.goBack(-1)\r\n }\r\n }\r\n }\r\n })\r\n }\r\n // console.log('K_console', route)\r\n }, [chainId])\r\n\r\n let timer = null;\r\n useEffect(() => {\r\n if (status === 'Live') {\r\n setStatus('Live');\r\n if (isMine) {\r\n setDisplay('Lottery is live');\r\n setDisable(true);\r\n } else {\r\n if (isJoined) {\r\n setDisplay('You Joined');\r\n setDisable(true);\r\n } else {\r\n setDisplay('Join The Lottery');\r\n setDisable(false);\r\n }\r\n }\r\n\r\n } else if (status === 'Closed') {\r\n if (isMine) {\r\n setDisplay('My Pool');\r\n setDisable(true);\r\n } else {\r\n if (isWinner) {\r\n setDisplay('You are a Winner');\r\n } else {\r\n setDisplay('Lottery Completed');\r\n }\r\n }\r\n //setStatus('Closed');\r\n }\r\n timer = setInterval(() => {\r\n\r\n const date = new Date(time * 1000);\r\n const now = new Date();\r\n const lefttime = date - now;\r\n if (lefttime > 1000) {\r\n setTime(lefttime)\r\n } else if (0 < lefttime && lefttime < 1000) {\r\n window.location.reload()\r\n } else {\r\n clearInterval(timer)\r\n }\r\n }, (1000));\r\n return () => {\r\n clearInterval(timer)\r\n }\r\n }, [setTime, time, isMine, isJoined, isWinner, isLive]);\r\n\r\n useEffect(() => {\r\n\r\n }, [])\r\n\r\n const renderButtonText = () => {\r\n console.log('status---->', status)\r\n\r\n let text = '';\r\n if (status === 'Live') {\r\n if (isMine) {\r\n text = ''\r\n } else {\r\n if (isJoined) {\r\n text = 'You are in the draw...';\r\n }else if (pool && curPlayer === pool.maxPlayer) {\r\n text = 'Max participants reached'\r\n } else if (onlyBOT && isGreaterThan(toWei('30'), AuctionAmount.balance)) {\r\n text = 'You are not qualified as auction holder'\r\n } else if (pool.enableKycList && !KYCed) {\r\n text = 'KYC is missing'\r\n } else if (pool.enableWhiteList && !inWhitelist) {\r\n text = 'You are not in the whitelist';\r\n } else if (price && ToBalance.balance && isGreaterThan(price, ToBalance.balance)) {\r\n text = `You don’t have enough ${toSymbol}`\r\n } else {\r\n text = 'GO';\r\n }\r\n }\r\n } else if (status === 'Closed') {\r\n if (isJoined) {\r\n if (isWinner && !claimed) {\r\n text = 'Claim your tokens';\r\n } else if (!isWinner && !claimed) {\r\n text = 'Claim your tokens Back';\r\n } else {\r\n text = 'You already claimed your tokens'\r\n }\r\n } else if(status) {\r\n text = `You didn't join`\r\n }else {\r\n text = `Loading`\r\n }\r\n\r\n }\r\n return text;\r\n }\r\n\r\n const handleClaim = async () => {\r\n const contract = getContract(library, BounceLotteryNFTPro.abi, BOUNCE_PRO_LOTTERY_NFT_PRO(chainId));\r\n let method;\r\n if (playStatus === '1') {\r\n method = 'creatorClaim';\r\n } else if (playStatus === '2') {\r\n method = 'playerClaim';\r\n }\r\n setBidStatus(confirmStatus);\r\n try {\r\n contract.methods[method](parseInt(id))\r\n .send({from: account})\r\n .on('transactionHash', hash => {\r\n setBidStatus(pendingStatus)\r\n })\r\n .on('receipt', (_, receipt) => {\r\n setBidStatus(successStatus)\r\n })\r\n .on('error', (err, receipt) => {\r\n setBidStatus(errorStatus)\r\n })\r\n } catch (e) {\r\n console.log('lottery erc20 claim error', e)\r\n if (e.code === 4001) {\r\n setBidStatus(cancelStatus)\r\n } else {\r\n setBidStatus(errorStatus)\r\n }\r\n }\r\n }\r\n\r\n const handleJoin = async () => {\r\n const contract = getContract(library, BounceLotteryNFTPro.abi, BOUNCE_PRO_LOTTERY_NFT_PRO(chainId));\r\n\r\n setBidStatus(approveStatus);\r\n try {\r\n console.log('contract', contract)\r\n let tokenContract\r\n\r\n if (toAddress) {\r\n tokenContract = getContract(library, bounceERC20.abi, toAddress)\r\n await tokenContract.methods.approve(\r\n BOUNCE_PRO_LOTTERY_NFT_PRO(chainId),\r\n price\r\n )\r\n .send({from: account});\r\n }\r\n setBidStatus(confirmStatus);\r\n contract.methods.bet(parseInt(id))\r\n .send({from: account, value: price})\r\n .on('transactionHash', hash => {\r\n setBidStatus(pendingStatus)\r\n })\r\n .on('receipt', (_, receipt) => {\r\n setBidStatus(successStatus)\r\n })\r\n .on('error', (err, receipt) => {\r\n setBidStatus(errorStatus)\r\n })\r\n } catch (e) {\r\n console.log('join error', e);\r\n if (e.code === 4001) {\r\n setBidStatus(cancelStatus)\r\n } else {\r\n setBidStatus(errorStatus)\r\n }\r\n }\r\n }\r\n\r\n const handleClick = () => {\r\n if (isLive) {\r\n if (!isJoined) {\r\n handleJoin();\r\n }\r\n } else {\r\n if (!claimed) {\r\n handleClaim();\r\n }\r\n }\r\n }\r\n\r\n return (\r\n <LayoutFrame style={{\r\n marginTop: 27,\r\n paddingBottom: 56,\r\n paddingLeft: isXSDown ? '20px' : '0',\r\n paddingRight: isXSDown ? '20px' : '0'\r\n }}>\r\n\r\n {isMine ?\r\n <>\r\n {status === 'Live' && (\r\n <Message type={'success'}\r\n content={`The lottery is still live, please wait patiently until your lottery is closed. The current number of people in the draw is ${pool.curPlayer}`}/>\r\n )}\r\n {status === 'Closed' && isEqualTo(pool.curPlayer, '0') && !claimed && (\r\n <Message type={'error'}\r\n content={'The lottery is closed. Unfortunately, no one participated. Please claim back your principle tokens.'}/>\r\n )}\r\n {status === 'Closed' && isGreaterThan(pool.curPlayer, '0') && !claimed && (\r\n <Message type={'success'}\r\n content={'The lottery is closed. Please claim your swapped tokens.'}/>\r\n )}\r\n {status === 'Close' && claimed && (\r\n <Message type={'success'}\r\n content={CREATOR_CLAIMED_MESSAGE}/>\r\n )}\r\n </>\r\n : null}\r\n\r\n {!isMine ?\r\n <>\r\n {status === 'Live' && isJoined && (\r\n <Message type={'success'}\r\n content={'You are in the draw. Please come back to check result when the lottery is closed.'}/>\r\n )}\r\n {status === 'Closed' && isWinner && !claimed && (\r\n <Message type={'success'}\r\n content={'Congratulations! You win the lottery. Please claim your lottery rewards.'}/>\r\n )}\r\n {status === 'Closed' && !isWinner && !claimed && (\r\n <Message type={'error'}\r\n content={'Unfortunately, you are not selected as a winner. Please claim your principle back.'}/>\r\n )}\r\n\r\n {status === 'Closed' && isJoined && claimed && (\r\n <Message\r\n content={BIDDER_CLAIMED_MESSAGE}/>\r\n )}\r\n\r\n {status === 'Closed' && !isJoined && claimed && (\r\n <Message\r\n content={'This auction is finished, please visit other live auctions.'}/>\r\n )}\r\n </>\r\n : null}\r\n\r\n <Pool.Return onClick={() => {\r\n history.goBack()\r\n }} src={icon_return}/>\r\n\r\n <Extra>\r\n\r\n </Extra>\r\n\r\n <LayoutFrame width={'1072px'} style={{padding: '40px 0', margin: 'auto', marginTop: 32}}>\r\n <Pool.Mode>Lotteries</Pool.Mode>\r\n <Pool.Header>\r\n <span>{name}</span>\r\n </Pool.Header>\r\n <Address style={{\r\n wordBreak: isXSDown ? 'break-all' : 'normal',\r\n marginBottom: 16,\r\n display: 'flex'\r\n }}>{address}\r\n </Address>\r\n\r\n {tokenId && <Pool.Mode>Token ID: {tokenId}</Pool.Mode>}\r\n\r\n <Pool.Content style={{marginTop: 40, flexDirection: isSMDown? 'column': 'row'}}>\r\n\r\n <Pool.Content width={isXSDown ? '100%' : '432px'} style={{marginTop: 0, height: 'revert'}}>\r\n <PoolCover cover={cover} link={cover}/>\r\n </Pool.Content>\r\n <Pool.Content width={isXSDown ? '100%' : '432px'}\r\n style={{\r\n backgroundColor: 'rgba(0, 0, 0, 0.04)', flexDirection: 'column',\r\n padding: isXSDown ? '48px 20px' : '48px 56px', position: 'relative',\r\n alignItems: 'center', justifyContent: 'flex-start'\r\n }}\r\n >\r\n {status && <Pool.Status style={{\r\n position: 'absolute', top: '16px', left: '20px', height: '26px', lineHeight: '26px'\r\n }} className={classNames('status', status)}>\r\n • {status}\r\n </Pool.Status>}\r\n\r\n <OText3 style={{textAlign: 'center', margin: '0 auto'}}>{display}</OText3>\r\n {renderTime(leftTime)}\r\n <LineDivider style={{width: '100%'}}/>\r\n <Pool.Meta style={{width: '100%', marginTop: '16px'}}>\r\n <div>Participant :</div>\r\n <div>{`${(onlyBOT && !pool.enableWhiteList) ? 'Auction holder' : ''}\r\n ${(!onlyBOT && pool.enableWhiteList) ? 'Whitelisting' : ''}\r\n ${(onlyBOT && pool.enableWhiteList) ? 'Auction holder , Whitelisting' : ''}\r\n ${(!onlyBOT && !pool.enableWhiteList) ? 'Public' : ''}`}</div>\r\n </Pool.Meta>\r\n <Pool.Meta style={{width: '100%', marginTop: '16px'}}>\r\n <div>Requirement :</div>\r\n <div>{(pool.enableKycList) ? 'KYC' : 'No requirement'}</div>\r\n </Pool.Meta>\r\n <Pool.Meta style={{width: '100%', marginTop: '16px'}}>\r\n <div>Ticket Size :</div>\r\n <div>1 Ticket = 1 NFT</div>\r\n </Pool.Meta>\r\n <Pool.Meta style={{width: '100%', marginTop: '16px'}}>\r\n <div>Ticket Price :</div>\r\n <div>{`${pool && weiToNumber(price, toDecimals)}`} {toSymbol}</div>\r\n </Pool.Meta>\r\n <Pool.Meta style={{width: '100%', marginTop: '16px'}}>\r\n <div>Number of Winner :</div>\r\n <div>{winner}</div>\r\n </Pool.Meta>\r\n <Pool.Meta style={{width: '100%', marginTop: '16px'}}>\r\n <div>Participants :</div>\r\n <div>{curPlayer} / {pool && pool.maxPlayer}</div>\r\n </Pool.Meta>\r\n\r\n <Button disabled={(status === 'Closed' && !isJoined) ||\r\n (status === 'Closed' && isJoined && claimed) ||\r\n (status === 'Live' && isJoined) ||\r\n (status === 'Live' && pool.enableKycList && !KYCed) ||\r\n (status === 'Live' && price && ToBalance.balance && isGreaterThan(price, ToBalance.balance)) ||\r\n (status === 'Live' && onlyBOT && isGreaterThan(toWei('30'), AuctionAmount.balance)) ||\r\n (status === 'Live' && pool && curPlayer === pool.maxPlayer) ||\r\n (status === 'Live' && !inWhitelist && pool.enableWhiteList)} black style={{width: '100%', marginTop: '30px'}}\r\n onClick={handleClick}>\r\n {renderButtonText()}\r\n </Button>\r\n\r\n </Pool.Content>\r\n </Pool.Content>\r\n </LayoutFrame>\r\n\r\n <BidModal modalStatus={bidStatus} onDismiss={() => {\r\n setBidStatus(initStatus);\r\n }}/>\r\n </LayoutFrame>\r\n )\r\n}\r\n","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\CertifiedSales\\Apply.jsx",["462","463","464"],"import React, { useContext, useEffect, useState } from 'react'\r\nimport { Button } from \"../../components/common/Button\";\r\nimport bounceERC20 from '../../web3/abi/bounceERC20.json'\r\nimport BounceProVoting from '../../web3/abi/BounceProVoting.json'\r\n\r\nimport { ApplyModal } from \"./ApplyModal\";\r\nimport {\r\n initStatus,\r\n approveStatus,\r\n pendingStatus,\r\n confirmStatus,\r\n successStatus,\r\n errorStatus,\r\n cancelStatus\r\n} from \"./ApplyModal\";\r\nimport {getContract, useActiveWeb3React} from \"../../web3\";\r\nimport {AUCTION, BOUNCE_PRO_VOTING} from \"../../web3/address\";\r\nimport Web3 from \"web3\";\r\n\r\nexport const Apply = () => {\r\n\r\n const [modalStatus, setModalStatus] = useState(initStatus)\r\n const { account, library, chainId, active } = useActiveWeb3React()\r\n\r\n const onApply = async () => {\r\n console.log('onApply', active)\r\n setModalStatus(approveStatus);\r\n\r\n try {\r\n const tokenContract = getContract(library, bounceERC20.abi, AUCTION(chainId))\r\n const bounceContract = getContract(library, BounceProVoting.abi, BOUNCE_PRO_VOTING(chainId))\r\n\r\n const result = await tokenContract.methods.approve(\r\n BOUNCE_PRO_VOTING(chainId),\r\n '60000000000000000000',\r\n )\r\n .send({ from: account });\r\n setModalStatus(confirmStatus);\r\n if (result.status) {\r\n await bounceContract.methods.create('1')\r\n .send({ from: account })\r\n .on('transactionHash', hash => {\r\n setModalStatus(pendingStatus)\r\n })\r\n .on('receipt', (_, receipt) => {\r\n setModalStatus(successStatus)\r\n })\r\n .on('error', (err, receipt) => {\r\n setModalStatus(errorStatus)\r\n })\r\n } else {\r\n setModalStatus(errorStatus)\r\n }\r\n } catch (err) {\r\n if (err.code === 4001) {\r\n setModalStatus(cancelStatus)\r\n } else {\r\n setModalStatus(errorStatus)\r\n }\r\n console.log('err', err);\r\n }\r\n };\r\n\r\n const onSign = async () =>{\r\n const web3 = new Web3(library.provider);\r\n const sign = await web3.eth.personal.sign('0x1',account)\r\n console.log('sign',sign)\r\n }\r\n\r\n\r\n return (\r\n <div>\r\n <Button onClick={onApply}>Apply</Button>\r\n <ApplyModal onOK={() => {\r\n setModalStatus(initStatus)\r\n //history.goBack()\r\n }} onDismiss={() => {\r\n setModalStatus(initStatus)\r\n }} modalStatus={modalStatus} />\r\n </div>\r\n )\r\n}\r\n","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\FixedSwap\\Detail.js",["465","466","467","468","469","470","471","472","473","474","475","476","477","478"],"import React, { useState, useEffect, useContext } from 'react';\r\nimport {\r\n Address,\r\n ITextR,\r\n LayoutFrame, LineDivider,\r\n OText2, OText5,\r\n Pool,\r\n Progress,\r\n renderTime\r\n} from \"../../components/common/Layout\";\r\nimport icon_return from '../../assets/images/icon-return.svg'\r\nimport { usePoolDetail } from \"./Hooks\";\r\nimport { fromWei, getProgress, numToWei, weiDiv, weiToNum } from \"../../utils/numberTransform\";\r\nimport classNames from \"classnames\";\r\nimport { useParams } from 'react-router-dom';\r\nimport { Form, Input } from \"../../components/common/Form\";\r\nimport icon_max from \"../../assets/icons/icon-max.svg\";\r\nimport { Button } from \"../../components/common/Button\";\r\nimport { useEthBalance, useTokenBalance, useTokenList } from \"../../web3/common\";\r\nimport { getContract, useActiveWeb3React } from \"../../web3\";\r\nimport fixSwap from \"../../web3/abi/BouncePro.json\";\r\nimport { AUCTION, BOUNCE_PRO } from \"../../web3/address\";\r\nimport Web3 from 'web3'\r\nimport { useHistory } from 'react-router-dom'\r\nimport {\r\n BidModal,\r\n initStatus,\r\n errorStatus,\r\n confirmStatus,\r\n pendingStatus,\r\n cancelStatus,\r\n claimSuccessStatus\r\n} from \"../../components/common/BidModal\";\r\nimport { useLeftTime } from \"../../hooks/useLeftTime\";\r\nimport { useIsXSDown } from '../../utils/themeHooks'\r\nimport bounceERC20 from \"../../web3/abi/bounceERC20.json\";\r\nimport { AuctionTipModal } from \"../../components/common/AuctionTipModal\";\r\nimport Modal from \"../../components/common/Modal\";\r\nimport { Message } from \"../../components/common/message\";\r\nimport { TipLink } from \"../../components/common/TipLink\";\r\nimport { CREATOR_CLAIMED_MESSAGE } from \"../../const\";\r\nimport { validateForm } from \"../../utils/form\";\r\nimport { isEqualTo, isGreaterThan } from \"../../utils/common\";\r\nimport BigNumber from \"bignumber.js\";\r\nimport { myContext } from '../../redux'\r\n\r\nconst { toWei } = Web3.utils\r\n\r\nconst bidSuccessStatus = {\r\n status: 3,\r\n title: 'Congratulations!',\r\n content: 'You have successfully bid your tokens. Please come back to claim your tokens once the auction is finished.'\r\n}\r\n\r\n\r\nexport const FSPoolDetail = () => {\r\n const { poolId } = useParams()\r\n const history = useHistory()\r\n const { account, library, chainId } = useActiveWeb3React()\r\n const { balance } = useTokenBalance()\r\n const AuctionAmount = useTokenBalance(AUCTION(chainId))\r\n const { setTime, leftTime } = useLeftTime()\r\n const claimTime = useLeftTime()\r\n const [bidAmount, setBidAmount] = useState()\r\n const [bidStatus, setBidStatus] = useState(initStatus)\r\n const [showTip, setShowTip] = useState()\r\n const [errors, setErrors] = useState({ amount: '' })\r\n const { state, dispatch } = useContext(myContext)\r\n\r\n const isXSDown = useIsXSDown();\r\n const setClaimTime = claimTime.setTime\r\n const claimLeftTime = claimTime.leftTime\r\n // console.log('claimLeftTime', claimLeftTime)\r\n const {\r\n name, address, symbol, decimals, limit, time, fromBidAmount, fromAmount, toAmount,\r\n status, isMine, toBidAmount, onlyBOT,\r\n claimed, toSymbol, toAddress, toDecimals, pool,\r\n biddenAmount, joinStatus, inWhiteList, claimAble, setClaimAble, claimAt, myBidFromAmount\r\n } = usePoolDetail(poolId)\r\n\r\n const { ethBalance } = useEthBalance(toAddress)\r\n\r\n useEffect(() => {\r\n if (!chainId) return\r\n const pathname = window.location.pathname\r\n const route = pathname.includes('/bsc') ? 'BSC' : pathname.includes('/heco') ? 'HECO' : 'ETH'\r\n if (route === 'BSC' && chainId !== 56) {\r\n dispatch({\r\n type: 'MODAL',\r\n value: {\r\n name: 'CONFIRM',\r\n title: 'Bounce Certified Warning',\r\n deputy: `The current pool exists on the BSC chain, please switch network to BSC operation.`,\r\n confirm: {\r\n text: 'Confirm',\r\n callback: () => {\r\n\r\n dispatch({\r\n type: 'MODAL',\r\n value: null\r\n })\r\n history.goBack(-1)\r\n }\r\n }\r\n }\r\n })\r\n } else if (route === 'HECO' && chainId !== 128) {\r\n dispatch({\r\n type: 'MODAL',\r\n value: {\r\n name: 'CONFIRM',\r\n title: 'Bounce Certified Warning',\r\n deputy: `The current pool exists on the HECO chain, please switch network to HECO operation.`,\r\n confirm: {\r\n text: 'Confirm',\r\n callback: () => {\r\n\r\n dispatch({\r\n type: 'MODAL',\r\n value: null\r\n })\r\n history.goBack(-1)\r\n }\r\n }\r\n }\r\n })\r\n } else if (route === 'ETH' && chainId !== 1) {\r\n dispatch({\r\n type: 'MODAL',\r\n value: {\r\n name: 'CONFIRM',\r\n title: 'Bounce Certified Warning',\r\n deputy: `The current pool exists on the ETH chain, please switch network to ETH operation.`,\r\n confirm: {\r\n text: 'Confirm',\r\n callback: () => {\r\n\r\n dispatch({\r\n type: 'MODAL',\r\n value: null\r\n })\r\n history.goBack(-1)\r\n }\r\n }\r\n }\r\n })\r\n }\r\n // console.log('K_console', route)\r\n }, [chainId])\r\n\r\n // useEffect(() => {\r\n // if (onlyBOT && isGreaterThan(toWei('0.3'), balance) && isGreaterThan(toWei('30'), AuctionAmount.balance) && !bidAmount) {\r\n // errors.amount = 'Sorry! You are not qualified as bot holder.'\r\n // setErrors(errors)\r\n // }\r\n // }, [onlyBOT, balance, bidAmount, account])\r\n\r\n useEffect(() => {\r\n // console.log('J_console',onlyBOT, AuctionAmount, bidAmount, account)\r\n if (onlyBOT && isGreaterThan(toWei('0'), AuctionAmount.balance) && !bidAmount) {\r\n errors.amount = 'Sorry! You are not qualified as Auction holder.'\r\n setErrors(errors)\r\n } else {\r\n setErrors({ amount: '' })\r\n }\r\n }, [onlyBOT, bidAmount, account])\r\n\r\n useEffect(() => {\r\n console.log('limit--->', biddenAmount, limit)\r\n if (biddenAmount && limit && isGreaterThan(limit, '0') && isGreaterThan(biddenAmount, limit)) {\r\n errors.amount = 'You have reached your maximum allocation per wallet.'\r\n setErrors(errors)\r\n }\r\n }, [biddenAmount, limit])\r\n\r\n let timer = null\r\n useEffect(() => {\r\n timer = setInterval(() => {\r\n const date = new Date(time * 1000);\r\n const now = new Date();\r\n const lefttime = date - now;\r\n if (lefttime >= 1000) {\r\n setTime(lefttime)\r\n } else if (0 < lefttime && lefttime < 1000) {\r\n window.location.reload()\r\n } else {\r\n clearInterval(timer)\r\n }\r\n }, (1000));\r\n return () => {\r\n clearInterval(timer)\r\n }\r\n }, [setTime, time]);\r\n\r\n let claimTimer = null\r\n useEffect(() => {\r\n if (!claimAt) return\r\n claimTimer = setInterval(() => {\r\n const date = new Date(claimAt * 1000);\r\n const now = new Date().getTime()\r\n const lefttime = date - now;\r\n // console.log('claimTimeclaimTime', claimAt,now,lefttime)\r\n if (lefttime >= 1000) {\r\n // console.log('claimTimeclaimTime', lefttime)\r\n setClaimTime(lefttime)\r\n } else if (0 < lefttime && lefttime < 1000) {\r\n //window.location.reload()\r\n setClaimAble(true)\r\n } else {\r\n //setClaimAble(true)\r\n clearInterval(timer)\r\n }\r\n }, (1000));\r\n return () => {\r\n clearInterval(timer)\r\n }\r\n }, [setClaimTime, claimAt]);\r\n\r\n\r\n\r\n const onBid = async () => {\r\n setShowTip(false)\r\n let tokenContract\r\n\r\n if (toAddress) {\r\n tokenContract = getContract(library, bounceERC20.abi, toAddress)\r\n }\r\n const bounceContract = getContract(library, fixSwap.abi, BOUNCE_PRO(chainId))\r\n const weiAmount = numToWei(bidAmount, toDecimals);\r\n\r\n setBidStatus(confirmStatus);\r\n try {\r\n console.log('toAddress', toAddress)\r\n if (toAddress) {\r\n const allowanceBalance = await tokenContract.methods.allowance(account, BOUNCE_PRO(chainId)).call()\r\n if (allowanceBalance === '0') {\r\n await tokenContract.methods.approve(\r\n BOUNCE_PRO(chainId),\r\n weiAmount,\r\n )\r\n .send({ from: account });\r\n setBidStatus(confirmStatus);\r\n } else if (parseInt(allowanceBalance) > 0 && parseInt(allowanceBalance) < parseInt(weiAmount)) {\r\n await tokenContract.methods.approve(\r\n BOUNCE_PRO(chainId),\r\n 0,\r\n )\r\n .send({ from: account });\r\n setBidStatus(confirmStatus);\r\n\r\n await tokenContract.methods.approve(\r\n BOUNCE_PRO(chainId),\r\n weiAmount,\r\n )\r\n .send({ from: account });\r\n setBidStatus(confirmStatus);\r\n }\r\n\r\n console.log('allowanceBalance', allowanceBalance)\r\n }\r\n bounceContract.methods.swap(\r\n poolId,\r\n weiAmount\r\n )\r\n .send({ from: account, value: toAddress ? 0 : weiAmount })\r\n .on('transactionHash', hash => {\r\n setBidStatus(pendingStatus)\r\n })\r\n .on('receipt', (_, receipt) => {\r\n setBidStatus(bidSuccessStatus)\r\n })\r\n .on('error', (err, receipt) => {\r\n setBidStatus(errorStatus)\r\n })\r\n } catch (e) {\r\n if (e.code === 4001) {\r\n setBidStatus(cancelStatus)\r\n } else {\r\n setBidStatus(errorStatus)\r\n }\r\n }\r\n\r\n }\r\n\r\n\r\n // console.log('poolid--->', poolId)\r\n\r\n const onCreatorClaim = async () => {\r\n const bounceContract = getContract(library, fixSwap.abi, BOUNCE_PRO(chainId))\r\n setBidStatus(confirmStatus);\r\n try {\r\n bounceContract.methods.claim()\r\n .send({ from: account })\r\n .on('transactionHash', hash => {\r\n setBidStatus(pendingStatus)\r\n })\r\n .on('receipt', (_, receipt) => {\r\n console.log('bid fixed swap receipt:', receipt)\r\n setBidStatus(claimSuccessStatus)\r\n })\r\n .on('error', (err, receipt) => {\r\n setBidStatus(errorStatus)\r\n })\r\n } catch (e) {\r\n console.log('onCreatorClaim', e)\r\n if (e.code === 4001) {\r\n setBidStatus(cancelStatus)\r\n } else {\r\n setBidStatus(errorStatus)\r\n }\r\n }\r\n\r\n }\r\n\r\n\r\n const onClaim = async () => {\r\n const bounceContract = getContract(library, fixSwap.abi, BOUNCE_PRO(chainId))\r\n setBidStatus(confirmStatus);\r\n try {\r\n bounceContract.methods.userClaim(poolId)\r\n .send({ from: account })\r\n .on('transactionHash', hash => {\r\n setBidStatus(pendingStatus)\r\n })\r\n .on('receipt', (_, receipt) => {\r\n console.log('bid fixed swap receipt:', receipt)\r\n setBidStatus(claimSuccessStatus)\r\n })\r\n .on('error', (err, receipt) => {\r\n setBidStatus(errorStatus)\r\n })\r\n } catch (e) {\r\n if (e.code === 4001) {\r\n setBidStatus(cancelStatus)\r\n } else {\r\n setBidStatus(errorStatus)\r\n }\r\n }\r\n\r\n }\r\n\r\n const handleChange = async event => {\r\n event.preventDefault();\r\n const { name, value } = event.target;\r\n switch (name) {\r\n case \"amount\":\r\n errors.amount = ''\r\n const amountValue = value.replace(/[^\\d.]/g, '')\r\n setBidAmount(amountValue)\r\n console.log('wei amount', numToWei(amountValue, decimals))\r\n if (!ethBalance || (ethBalance && isGreaterThan(amountValue, weiToNum(ethBalance, toDecimals)))) {\r\n errors.amount = 'you do not have enough balance'\r\n }\r\n if (limit && isGreaterThan(limit, '0') && isGreaterThan(new BigNumber(numToWei(amountValue, toDecimals)).plus(biddenAmount), limit)) {\r\n errors.amount = 'maximum allocation per wallet is ' + weiToNum(limit, toDecimals)\r\n }\r\n break\r\n default:\r\n }\r\n console.log('final errors', errors)\r\n setErrors(errors)\r\n };\r\n\r\n\r\n const handleSubmit = async (event) => {\r\n event.preventDefault();\r\n console.log('handleSubmit', event)\r\n if (validateForm(errors)) {\r\n onBid()\r\n }\r\n }\r\n\r\n return (\r\n <LayoutFrame style={{\r\n marginTop: 27,\r\n paddingBottom: 56,\r\n paddingLeft: isXSDown ? '20px' : '0',\r\n paddingRight: isXSDown ? '20px' : '0'\r\n }}>\r\n {isMine ?\r\n <>\r\n {status === 'Live' && (\r\n <Message type={'success'}\r\n content={'The auction is still live, please wait patiently until your auction is filled or closed.'} />\r\n )}\r\n {status === 'Filled' && (\r\n <Message type={'success'}\r\n content={'Congratulations! Your auction is complete. All your tokens are auctioned and your fund is automatically sent to your wallet.'} />\r\n )}\r\n {status === 'Closed' && !claimed && (\r\n <Message type={'error'}\r\n content={'Unfortunately, your pool is not fully filled and closed. Please claim back the unswapped tokens manually.'} />\r\n )}\r\n {status === 'Closed' && claimed && (\r\n <Message type={'success'}\r\n content={CREATOR_CLAIMED_MESSAGE} />\r\n )}\r\n </>\r\n : null}\r\n\r\n\r\n {!isMine ?\r\n <>\r\n {status === 'Live' && joinStatus && (\r\n <Message type={'success'}\r\n content={'You have successfully bidded and your can claim your swapped tokens when auction is finished. You can now make more bids.'} />\r\n )}\r\n {status !== 'Live' && (\r\n <Message content={'This auction is finished, please visit other live auctions.'} />\r\n )}\r\n </>\r\n : null}\r\n\r\n\r\n <Pool.Return onClick={() => {\r\n history.goBack()\r\n }} src={icon_return} />\r\n <LayoutFrame width={'1072px'} style={{ padding: '24px 0', margin: 'auto', marginTop: 0 }}>\r\n <Pool.Mode>Fixed-Swap</Pool.Mode>\r\n <Pool.Header><span>{name}</span></Pool.Header>\r\n <div style={{ display: 'flex', justifyContent: 'center' }}>\r\n <Address style={{ wordBreak: isXSDown ? 'break-all' : 'normal' }}>{address}</Address>\r\n </div>\r\n <Pool.Content style={{ marginTop: 40 }}>\r\n\r\n <Pool.Content width={isXSDown ? '100%' : '456px'} style={{ marginTop: 0 }}>\r\n\r\n <Pool.Content width={isXSDown ? '100%' : '456px'}\r\n style={{ marginTop: 0, flexDirection: 'column' }}>\r\n <Pool.Status style={{ width: 'fit-content' }} className={classNames('status', status)}>\r\n <i className={status} />{status}</Pool.Status>\r\n <ITextR style={{\r\n marginTop: 8,\r\n textAlign: 'left'\r\n }}>{`Participant: ${(onlyBOT && !pool.enableWhiteList) ? 'Auction holder' : ''}\r\n ${(!onlyBOT && pool.enableWhiteList) ? 'Whitelisting' : ''}\r\n ${(onlyBOT && pool.enableWhiteList) ? 'Auction holder , Whitelisting' : ''}\r\n ${(!onlyBOT && !pool.enableWhiteList) ? 'Public' : ''}`}</ITextR>\r\n <ITextR style={{\r\n marginTop: 8,\r\n textAlign: 'left'\r\n }}>{`KYC required: ${(pool.enableKycList) ? 'Yes' : 'No'}`}</ITextR>\r\n </Pool.Content>\r\n\r\n <Pool.Block style={{ width: '100%' }}>\r\n <span>Fixed Swap Ratio</span>\r\n <span>{fromAmount && toAmount && `1 ${toSymbol} = ${(weiDiv(symbol === 'GOV' ? fromWei(fromAmount, decimals) * 2 : fromWei(fromAmount, decimals), fromWei(toAmount, toDecimals)))} ${symbol && symbol} `}</span>\r\n <span>{symbol === 'GOV' ? '(Claim: 3.333 + Airdrop: 3.333)' : ''}</span>\r\n </Pool.Block>\r\n\r\n <Pool.Block style={{ width: isXSDown ? '100%' : '200px' }}>\r\n <span>Total Allocation</span>\r\n <span>{fromAmount && symbol === 'GOV' ? weiToNum(fromAmount, decimals, 6) * 2 : weiToNum(fromAmount, decimals, 6)} {symbol}</span>\r\n </Pool.Block>\r\n\r\n <Pool.Block style={{ width: isXSDown ? '100%' : '200px' }}>\r\n <span>Maximum Allocation per wallet</span>\r\n <span>{limit && (limit == 0 ? 'No limit' : `${weiToNum(limit, toDecimals)} ${toSymbol}`)}</span>\r\n </Pool.Block>\r\n\r\n <OText5 style={{\r\n width: 480,\r\n marginTop: 40,\r\n fontSize: 12,\r\n fontFamily: 'IBM Plex Mono',\r\n fontWeight: 500\r\n }}>Auction progress: {toBidAmount && weiToNum(toBidAmount, toDecimals)} {toSymbol}\r\n <span\r\n style={{ opacity: .3 }}> / {toAmount && weiToNum(toAmount, toDecimals)} {toSymbol}</span>\r\n </OText5>\r\n {toBidAmount && toAmount && (\r\n <Progress style={{ marginTop: 16 }} height={'5px'}\r\n className={classNames('progress', toBidAmount === toAmount ? 'Filled' : status)}>\r\n <Progress.Value style={{ width: `${getProgress(toBidAmount, toAmount)}%` }}\r\n className={classNames('progress-value', toBidAmount === toAmount ? 'Filled' : status)} />\r\n </Progress>\r\n )}\r\n\r\n </Pool.Content>\r\n\r\n <Pool.Content width={'auto'}\r\n style={{\r\n height: 'auto',\r\n width: isXSDown ? '100%' : '480px',\r\n flexDirection: 'column',\r\n padding: isXSDown ? '48px 20px' : '48px 56px',\r\n justifyContent: 'center',\r\n marginTop: 0,\r\n backgroundColor: 'rgba(248, 248, 251, 1)'\r\n }}>\r\n\r\n {status === 'Live' && (\r\n <OText2 style={{ textAlign: 'center', marginTop: 0, fontSize: 26 }}>Join Auction</OText2>\r\n )}\r\n\r\n {status === 'Closed' && (\r\n <OText2 style={{ textAlign: 'center', marginTop: 0, fontSize: 26 }}>Auction is Closed</OText2>\r\n )}\r\n\r\n {status === 'Filled' && (\r\n <OText2 style={{ textAlign: 'center', marginTop: 0, fontSize: 26 }}>The Auction Filled</OText2>\r\n )}\r\n\r\n {isMine ? (\r\n <>\r\n <OText2 style={{ textAlign: 'center', marginTop: 8 }}>My Pool</OText2>\r\n {renderTime(leftTime)}\r\n <Pool.Meta>\r\n <div>Total amount:</div>\r\n <div>{`${toAmount && weiToNum(toAmount, toDecimals)} ${toSymbol}`}</div>\r\n </Pool.Meta>\r\n\r\n <Pool.Meta>\r\n <div>Successful bid amount:</div>\r\n <div>{toBidAmount && `${weiToNum(toBidAmount, toDecimals)} ${toSymbol}`}</div>\r\n </Pool.Meta>\r\n\r\n {(status === 'Closed' && !claimed) ?\r\n <Button black onClick={onCreatorClaim}>Claim your tokens</Button> : null}\r\n </>\r\n ) : (\r\n <form id=\"bid-fs-form\" onSubmit={handleSubmit}>\r\n {status !== 'Filled' && renderTime(leftTime)}\r\n <LineDivider style={{ marginTop: 0 }} />\r\n <Pool.topInfo>\r\n <span>You have successfully bid</span>\r\n <span>{`${(myBidFromAmount && decimals) ? weiToNum(myBidFromAmount, decimals) : '--'}`} {symbol}</span>\r\n </Pool.topInfo>\r\n\r\n {status === 'Live' && (\r\n <>\r\n <Pool.topInfo>\r\n <span>Your Bid Amount</span>\r\n <span>{`Balance: ${ethBalance ? weiToNum(ethBalance, toDecimals) : '--'}`} {toSymbol}</span>\r\n </Pool.topInfo>\r\n <Form\r\n error={errors.amount}\r\n top={'0px'} width={'100%'}\r\n input={<Input\r\n style={{\r\n padding: '8px 0',\r\n color: '#1F191B',\r\n fontSize: 16,\r\n lineHeight: '20px',\r\n fontFamily: 'Helvetica Neue',\r\n fontWeight: \"bold\"\r\n }}\r\n name={'amount'}\r\n placeholder={'Bid Amount'}\r\n disabled={(onlyBOT && isGreaterThan(toWei('0'), AuctionAmount.balance)) ||\r\n (limit && biddenAmount && isGreaterThan(limit, '0') && isEqualTo(limit, biddenAmount))}\r\n value={bidAmount}\r\n onChange={handleChange}\r\n />} name={' '} addonAfter={(<img onClick={() => {\r\n console.log('set max amount', ethBalance)\r\n setBidAmount(fromWei(ethBalance, toDecimals))\r\n }} src={icon_max} />)}\r\n />\r\n\r\n <Button\r\n style={{ marginTop: 50 }}\r\n disabled={status !== 'Live' || !validateForm(errors) || !bidAmount || (!inWhiteList && pool.enableWhiteList)}\r\n black\r\n >{(!inWhiteList && pool.enableWhiteList) ? 'You are not in the whitelist' : 'GO'}\r\n </Button>\r\n </>\r\n )}\r\n\r\n {((status === 'Closed' || status === 'Filled') && joinStatus) ?\r\n <Button disabled={!claimAble || claimed} type='button' style={{ marginTop: 24 }} black onClick={onClaim}>\r\n {claimed ? 'You already claimed your tokens' : 'Claim your tokens'}\r\n {(claimLeftTime && !claimAble) && ` ( ${claimLeftTime.days}d: ${claimLeftTime.hours}h : ${claimLeftTime.minutes}m : ${claimLeftTime.seconds}s )`}\r\n </Button> : null}\r\n <TipLink />\r\n </form>\r\n )}\r\n\r\n </Pool.Content>\r\n\r\n </Pool.Content>\r\n\r\n\r\n </LayoutFrame>\r\n\r\n\r\n <BidModal modalStatus={bidStatus} onDismiss={() => {\r\n setBidStatus(initStatus)\r\n }} />\r\n\r\n <Modal\r\n closeable\r\n isOpen={showTip}\r\n onDismiss={() => {\r\n setShowTip(false)\r\n }}\r\n maxWidth={'450px'}\r\n >\r\n <AuctionTipModal type={0} auction={onBid} />\r\n </Modal>\r\n\r\n </LayoutFrame>\r\n )\r\n}\r\n","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\components\\WalletItem.jsx",[],"C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\components\\common\\Modal.js",[],"C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\components\\Modal\\Confirm.jsx",[],"C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\LotteryNFT1155\\Hooks.js",["479","480","481","482","483","484","485"],"import { getContract, useActiveWeb3React } from \"../../web3\";\r\nimport { useContext, useEffect, useState } from \"react\";\r\n//import { myContext } from '../../reducer'\r\n\r\nimport { BOUNCE_PRO_LOTTERY_NFT_PRO } from \"../../web3/address\";\r\nimport { HANDLE_SHOW_CONNECT_MODAL } from \"../../const\";\r\nimport BounceLotteryNFTPro from \"../../web3/abi/BounceLotteryNFTPro.json\";\r\nimport bounceERC1155 from \"../../web3/abi/bounceERC1155.json\";\r\nimport {getProjectInfo} from \"../CertifiedSales/hooks\";\r\nimport {useTokenList} from \"../../web3/common\";\r\nimport {myContext} from \"../../redux\";\r\n\r\nexport const usePoolDetail = (id = 0) => {\r\n const { active, account, library, chainId } = useActiveWeb3React();\r\n const { state, dispatch } = useContext(myContext);\r\n const tokenOptions = useTokenList()\r\n\r\n const [name, setName] = useState(null)\r\n const [address, setAddress] = useState(null)\r\n const [isLive, setIsLive] = useState()\r\n const [time, setTime] = useState();\r\n const [price, setPrice] = useState('');\r\n const [winner, setWinner] = useState();\r\n const [participate, setParticipate] = useState();\r\n const [isMine, setIsMine] = useState(false);\r\n const [claimed, setClaimed] = useState(true);\r\n const [isWinner, setIsWinner] = useState(false);\r\n const [isJoined, setIsJoined] = useState(false);\r\n const [pool, setPool] = useState({});\r\n const [curPlayer, setCurPlayer] = useState()\r\n const [status, setStatus] = useState()\r\n const [symbol, setSymbol] = useState()\r\n const [toSymbol, setToSymbol] = useState()\r\n const [toDecimals, setToDecimals] = useState()\r\n const [inWhitelist, setInWhitelist] = useState()\r\n const [toAddress, setToAddress] = useState()\r\n const [tokenId, setTokenId] = useState()\r\n const [cover, setCover] = useState()\r\n const [onlyBOT, setOnlyBOT] = useState()\r\n\r\n\r\n\r\n\r\n const [playStatus, setPlayStatus] = useState()\r\n\r\n async function getLotteryNFTDetail() {\r\n try {\r\n\r\n const lotteryNFTContract = getContract(library, BounceLotteryNFTPro.abi, BOUNCE_PRO_LOTTERY_NFT_PRO(chainId));\r\n console.log('id----->',id)\r\n const poolRes = await lotteryNFTContract.methods.pools(id).call();\r\n console.log('poolRes--->', poolRes)\r\n\r\n setTokenId(poolRes.tokenId0)\r\n\r\n const toToken = tokenOptions.find(item => {\r\n return poolRes.token1.toLowerCase() === item.key.toLowerCase()\r\n })\r\n\r\n if (poolRes.token1 === '0x0000000000000000000000000000000000000000') {\r\n setToAddress(null)\r\n setToSymbol('ETH')\r\n setToDecimals('18')\r\n } else if (toToken) {\r\n setToAddress(poolRes.token1)\r\n setToDecimals(toToken.decimals)\r\n setToSymbol(toToken.symbol)\r\n } else {\r\n setToAddress(null)\r\n setToSymbol('ETH')\r\n setToDecimals('18')\r\n }\r\n\r\n\r\n getProjectInfo(poolRes.projectId).then(info =>{\r\n console.log('pool info---->',info)\r\n setName(info.proname)\r\n })\r\n\r\n lotteryNFTContract.methods.onlyBotHolderP(id).call().then(res =>{\r\n setOnlyBOT(res)\r\n })\r\n\r\n setAddress(poolRes.token0);\r\n setPrice(poolRes.amount1);\r\n console.log('closeat', poolRes.closeAt)\r\n\r\n const date = new Date(poolRes.closeAt * 1000);\r\n const now = new Date();\r\n const leftTime = date - now;\r\n console.log('leftTime',leftTime)\r\n const isOpen = new Date() - poolRes.openAt * 1000 > 0\r\n if (!isOpen) {\r\n setStatus('Upcoming')\r\n }else {\r\n setIsLive(leftTime > 0 )\r\n setStatus(leftTime > 0 ? 'Live' : 'Closed')\r\n }\r\n\r\n setTime(poolRes.closeAt);\r\n setParticipate(poolRes.maxPlayer);\r\n\r\n\r\n // const tokenContract = getContract(library, bounceERC20.abi, poolRes.token0)\r\n // tokenContract.methods.symbol().call().then((res) => {\r\n // console.log('query fs symbol:', res)\r\n // setSymbol(res)\r\n // })\r\n\r\n\r\n // const tokenContract1 = getContract(library, bounceERC20.abi, poolRes.token1)\r\n // tokenContract1.methods.symbol().call().then((res) => {\r\n // console.log('symbol', res)\r\n // setToSymbol(res)\r\n // })\r\n\r\n // tokenContract1.methods.decimals().call().then((res) => {\r\n // setToDecimals(res)\r\n // })\r\n\r\n setPool(poolRes)\r\n\r\n const info = await lotteryNFTContract.methods.poolsExt(id).call();\r\n console.log('pool info--->', info.nShare);\r\n setWinner(info.nShare);\r\n\r\n const playerNum = await lotteryNFTContract.methods.curPlayerP(id).call();\r\n setCurPlayer(playerNum);\r\n\r\n\r\n const playStatusConst = await lotteryNFTContract.methods.getPlayerStatus(id, account).call();\r\n console.log('playStatusConst', playStatusConst)\r\n //返回1表示调用者是池子创建者并且未收割\r\n //返回5表示调用者是池子创建者并且已收割\r\n //返回2表示调用者是池子参与者并且未收割\r\n //返回6表示调用者是池子参与者并且已收割\r\n setPlayStatus(playStatusConst);\r\n switch (playStatusConst) {\r\n case '0':\r\n setIsJoined(false);\r\n break;\r\n case '1':\r\n setIsMine(true);\r\n setIsJoined(true);\r\n setClaimed(false)\r\n break;\r\n case '2':\r\n setIsJoined(true);\r\n setClaimed(false)\r\n break;\r\n case '5':\r\n setIsJoined(true);\r\n setIsMine(true);\r\n setClaimed(true);\r\n break;\r\n case '6':\r\n setIsJoined(true);\r\n setClaimed(true);\r\n break;\r\n default:\r\n }\r\n\r\n const winnerState = await lotteryNFTContract.methods.isWinner(id, account).call();\r\n console.log('winnerState',winnerState)\r\n setIsWinner(winnerState);\r\n } catch (e) {\r\n console.log('getTokenInfo:', e)\r\n }\r\n }\r\n\r\n function queryAccount () {\r\n const lotteryNFTContract = getContract(library, BounceLotteryNFTPro.abi, BOUNCE_PRO_LOTTERY_NFT_PRO(chainId));\r\n lotteryNFTContract.methods.whitelistP(id, account).call().then((res) => {\r\n console.log('whitelistP:', res)\r\n setInWhitelist(res)\r\n })\r\n }\r\n\r\n async function queryNFT () {\r\n try {\r\n const contract = getContract(library, bounceERC1155.abi, address)\r\n console.log('contract',contract)\r\n const uris = await contract.getPastEvents(\r\n 'URI',\r\n {\r\n fromBlock: 0,\r\n toBlock: 'latest'\r\n },\r\n (err, events) => { console.log(events) }\r\n )\r\n console.log('uri',uris)\r\n let tokenURl = uris.filter(item => { return item.returnValues.id == tokenId}).map(item => {return item.returnValues.value})\r\n tokenURl = tokenURl[tokenURl.length-1]\r\n console.log('tokenURl----->', tokenURl)\r\n const res = await fetch(tokenURl)\r\n const result = await res.json();\r\n console.log('token json', result)\r\n if (result.image) {\r\n setCover(result.image)\r\n } else if (result.properties.image.description) {\r\n setCover(result.properties.image.description)\r\n }\r\n } catch (e) {\r\n console.log('fetch cover error', e)\r\n }\r\n }\r\n\r\n\r\n useEffect(() => {\r\n if (active) {\r\n getLotteryNFTDetail()\r\n } else {\r\n dispatch({\r\n type: 'CONNECT_WALLET',\r\n value: true\r\n })\r\n }\r\n }, [active, account])\r\n\r\n useEffect(() => {\r\n if (active && account) {\r\n queryAccount()\r\n } else {\r\n //dispatch({ type: HANDLE_SHOW_CONNECT_MODAL, showConnectModal: true });\r\n }\r\n }, [active, account])\r\n\r\n\r\n useEffect(() => {\r\n if (active && tokenId && address) {\r\n queryNFT()\r\n } else {\r\n //dispatch({ type: HANDLE_SHOW_CONNECT_MODAL, showConnectModal: true });\r\n }\r\n }, [active, tokenId, address])\r\n\r\n return {\r\n name, address, isLive, time, price, winner, participate, playStatus, claimed, inWhitelist,\r\n isMine, isWinner, isJoined, pool, curPlayer, symbol,\r\n toDecimals, toSymbol, status, setStatus,\r\n toAddress, tokenId, cover, onlyBOT\r\n }\r\n}\r\n","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\components\\common\\BidModal.js",[],"C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\components\\common\\Button.js",[],"C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\web3\\address.js",[],"C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\web3\\common.js",["486","487"],"import React, { useEffect, useState } from 'react';\r\nimport bounceERC20 from '../web3/abi/bounceERC20.json'\r\nimport { useActiveWeb3React } from \"./index\";\r\nimport { getContract } from \"../web3\";\r\nimport { getBotAddress, getUSDTAddress, getWBTCAddress, getYFIAddress } from \"./address\";\r\nimport Web3 from 'web3'\r\nimport { TokenFrame } from \"../components/common/Layout\";\r\nimport icon_usdt from '../assets/icons/icon-usdt.png'\r\nimport bounce_token from '../assets/icons/bounce_token.png'\r\nimport wbtc_icon from '../assets/icons/wbtc_icon.png'\r\nimport yfi_icon from '../assets/icons/yfi_icon.png'\r\nimport icon_eth from '../assets/icons/icon_eth.svg'\r\nimport { useActivePlatform } from \"../hooks\";\r\n\r\nexport const useTokenList = () => {\r\n const { chainId } = useActiveWeb3React();\r\n const { Psymbol } = useActivePlatform()\r\n\r\n return [{\r\n key: '0x0000000000000000000000000000000000000000',\r\n value: <TokenFrame><img alt=\"\" src={icon_eth} /><span>{Psymbol}</span></TokenFrame>,\r\n symbol: Psymbol,\r\n decimals: '18'\r\n\r\n }, {\r\n key: getUSDTAddress(chainId),\r\n value: <TokenFrame><img alt=\"\" src={icon_usdt} /><span>USDT</span></TokenFrame>,\r\n symbol: 'USDT',\r\n decimals: chainId === 56 ? '18' : '6'\r\n }, {\r\n key: getBotAddress(chainId),\r\n value: <TokenFrame><img alt=\"\" src={bounce_token} /><span>BOT</span></TokenFrame>,\r\n symbol: 'BOT',\r\n decimals: '18'\r\n }, {\r\n key: getWBTCAddress(chainId),\r\n value: <TokenFrame><img alt=\"\" src={wbtc_icon} /><span>WBTC</span></TokenFrame>,\r\n symbol: 'WBTC',\r\n decimals: '8'\r\n }, {\r\n key: getYFIAddress(chainId),\r\n value: <TokenFrame><img alt=\"\" src={yfi_icon} /><span>YFI</span></TokenFrame>,\r\n symbol: 'YFI',\r\n decimals: '18'\r\n }, {\r\n key: '0x2170ed0880ac9a755fd29b2688956bd959f933f8',\r\n value: <TokenFrame><img alt=\"\" src={icon_eth} /><span>{Psymbol}</span></TokenFrame>,\r\n symbol: Psymbol,\r\n decimals: '18'\r\n\r\n }]\r\n}\r\n\r\n\r\nexport const getIndexList = (count) => {\r\n let poolIdList = [];\r\n for (let i = 0; i < count; i++) {\r\n poolIdList[i] = count - i - 1;\r\n }\r\n return poolIdList\r\n}\r\n\r\n\r\nexport const useEthBalance = (token) => {\r\n const { active, account, library } = useActiveWeb3React();\r\n const [ethBalance, setEthBalance] = useState(null)\r\n\r\n\r\n useEffect(() => {\r\n console.log('token---->', token)\r\n\r\n if (active) {\r\n if (token) {\r\n const tokenContract = getContract(library, bounceERC20.abi, token)\r\n tokenContract.methods.balanceOf(account).call().then(res => {\r\n console.log('token balance', res)\r\n setEthBalance(res)\r\n })\r\n } else {\r\n const web3 = new Web3(library.provider)\r\n web3.eth.getBalance(account)\r\n .then(balance => {\r\n console.log('eth balance', balance)\r\n console.log(ethBalance)\r\n setEthBalance(balance)\r\n })\r\n }\r\n\r\n } else {\r\n setEthBalance(null)\r\n }\r\n\r\n }, [active, token, account])\r\n\r\n return { ethBalance }\r\n}\r\n\r\nexport const useTokenBalance = (address) => {\r\n const { active, account, library, chainId } = useActiveWeb3React();\r\n const [balance, setBalance] = useState(null)\r\n\r\n\r\n useEffect(() => {\r\n\r\n async function getBalance() {\r\n try {\r\n const tokenContract = getContract(library, bounceERC20.abi, address ? address : getBotAddress(chainId))\r\n const balance = await tokenContract.methods.balanceOf(account).call()\r\n setBalance(balance)\r\n } catch (e) {\r\n console.log('useTokenBalance:', e)\r\n setBalance(null)\r\n }\r\n }\r\n\r\n if (active) {\r\n getBalance()\r\n } else {\r\n setBalance(null)\r\n }\r\n\r\n }, [active, account])\r\n\r\n\r\n return { balance }\r\n}\r\n","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\CertifiedSales\\index.jsx",[],"C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\hooks\\useBalance.js",["488","489"],"import {getContract, useActiveWeb3React} from \"../web3\";\r\nimport {useEffect, useState} from \"react\";\r\nimport bounceERC20 from \"../web3/abi/bounceERC20.json\";\r\nimport {AUCTION, BOT} from \"../web3/address\";\r\n\r\nexport const useTokenBalance = (address) => {\r\n console.log('address------>1',address)\r\n const { active, account, library, chainId } = useActiveWeb3React();\r\n const [balance, setBalance] = useState(null)\r\n\r\n useEffect(() => {\r\n async function getBalance() {\r\n try {\r\n const tokenContract = getContract(library, bounceERC20.abi, address ? address : AUCTION(chainId))\r\n const balance = await tokenContract.methods.balanceOf(account).call()\r\n setBalance(balance)\r\n } catch (e) {\r\n console.log('useTokenBalance:', e)\r\n setBalance(null)\r\n }\r\n }\r\n\r\n if (active && account && chainId) {\r\n getBalance()\r\n } else {\r\n setBalance(null)\r\n }\r\n\r\n }, [active, account, chainId, address])\r\n\r\n\r\n return { balance }\r\n}\r\n","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\hooks\\useLeftTime.js",["490"],"import {useEffect, useState} from \"react\";\r\n\r\nexport const useLeftTime = () => {\r\n const initRenderTime = {\r\n days: 0,\r\n hours: 0,\r\n minutes: 0,\r\n seconds: 0,\r\n }\r\n\r\n const [time, setTime] = useState();\r\n const [leftTime, setLeftTime] = useState(initRenderTime);\r\n\r\n const calcuTime = ()=>{\r\n if (time) {\r\n let leftd = Math.floor(time / (1000 * 60 * 60 * 24));\r\n let lefth = Math.floor(time / (1000 * 60 * 60) % 24);\r\n let leftm = Math.floor(time / (1000 * 60) % 60);\r\n let lefts = Math.floor(time / 1000 % 60);\r\n const left = {\r\n days: leftd < 0 ? 0 : leftd,\r\n hours: lefth < 0 ? 0 : lefth,\r\n minutes: leftm < 0 ? 0 : leftm,\r\n seconds: lefts < 0 ? 0 : lefts,\r\n };\r\n setLeftTime(left);\r\n if (left < 0) {\r\n setLeftTime(initRenderTime);\r\n }\r\n } else {\r\n setLeftTime(initRenderTime);\r\n }\r\n }\r\n\r\n\r\n useEffect(()=>{\r\n calcuTime()\r\n }, [time])\r\n\r\n return {setTime, leftTime}\r\n}","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\utils\\numberTransform.js",[],"C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\CertifiedSales\\ApplyModal.js",["491","492"],"import Modal, {ModalContent, ModalTitle} from \"../../components/common/Modal\";\r\nimport styled from 'styled-components'\r\nimport Lottie from \"react-lottie\";\r\nimport icon_success from \"../../assets/icons/icon-success.svg\";\r\nimport icon_error from \"../../assets/icons/icon-error.svg\";\r\nimport React from \"react\";\r\nimport bounce_loading from \"../../assets/bounce-loading.json\";\r\nimport {Button} from \"../../components/common/Button\";\r\n\r\nexport const FormStatus = styled.div`\r\n width: 100%;\r\n height: 200px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n`\r\n\r\nconst defaultOptions = {\r\n loop: true,\r\n autoplay: true,\r\n animationData: bounce_loading,\r\n rendererSettings: {\r\n preserveAspectRatio: 'xMidYMid slice'\r\n }\r\n};\r\n\r\nexport const approveStatus = {status: 1, title: 'Bounce requests wallet approval', content: 'Please manually interact with your wallet'}\r\nexport const confirmStatus = {status: 2, title: 'Bounce requests wallet interaction', content: 'Please open your wallet and confirm in the transaction activity to proceed your order'}\r\nexport const pendingStatus = {status: 3, title: 'Bounce waiting for transaction settlement', content: 'Bounce is engaging with blockchain transaction, please wait patiently for on-chain transaction settlement'}\r\nexport const successStatus = {status: 4, title: 'Auction successfully published', content: 'Congratulations! Your auction is live and is now listed in designated area. Please find more information about the next steps in the pool page'}\r\nexport const successIssuedStatus = {status: 4, title: 'Congratulations!', content: 'You have successfully submitted your project to voting board.'}\r\n\r\nexport const predictionSuccessStatus = {status: 4, title: 'Prediction successfully published', content: 'Congratulations! Your predcition is live and is now listed in designated area. Please find more information about the next steps in the pool page'}\r\nexport const errorStatus = {status: -1, title: 'Transaction failed on Bounce', content: 'Oops! Your transaction is failed for on-chain approval and settlement. Please initiate another transaction'}\r\nexport const cancelStatus = {status: -2, title: 'Transaction canceled on Bounce', content: 'Sorry! Your transaction is canceled. Please try again.'}\r\nexport const initStatus = {status: 0, title: '', content: ''}\r\n\r\n\r\nexport const ApplyModal = ({modalStatus, onDismiss, onOK}) =>{\r\n\r\n const {status, title, content} = modalStatus\r\n\r\n return (\r\n <Modal isOpen={status !== 0} onDismiss={() => {\r\n onDismiss()\r\n }}>\r\n <ModalTitle style={{textAlign: 'center'}}>{title}</ModalTitle>\r\n\r\n {(status === 1 || status === 2 || status === 3) &&\r\n <Lottie width={200} height={200} options={defaultOptions}/>}\r\n\r\n {(status === 4 ) &&\r\n <FormStatus ><img src={icon_success}/></FormStatus>}\r\n\r\n {(status === -1 || status === -2) &&\r\n <FormStatus><img src={icon_error}/></FormStatus>}\r\n\r\n <ModalContent style={{width: 300, textAlign: 'center'}}>{content}</ModalContent>\r\n {(status === 1 || status === 2 || status === 3) && <Button width={'320px'} black>Awaiting...</Button>}\r\n {status === 4 && <Button width={'320px'} black onClick={()=>{\r\n onOK()\r\n }}>Close</Button>}\r\n {status === -1 && <Button onClick={()=>{onDismiss()}} width={'320px'} black>Try again</Button>}\r\n </Modal>\r\n )\r\n}\r\n","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\components\\Modal\\index.jsx",[],"C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\PersonalInfo\\index.jsx",[],"C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\Kyc\\index.jsx",["493"],"import React, { useState, useEffect, useContext } from 'react'\r\nimport { KycStyled } from './styled'\r\nimport image_kyc from '../../assets/images/kyc.svg'\r\nimport Step1 from './Step1'\r\nimport Step2 from './Step2'\r\nimport Step3 from './Step3'\r\nimport { useWeb3React } from '@web3-react/core'\r\nimport { myContext } from '../../redux'\r\nimport Crumbs from '../components/Exhibition/Crumbs'\r\nimport {useIsSMDown} from '../../utils/themeHooks';\r\n\r\nexport default function Index() {\r\n const { active } = useWeb3React();\r\n const isXSDown = useIsSMDown();\r\n const { dispatch } = useContext(myContext)\r\n const [curStep, setCurStep] = useState(1)\r\n const [ReqData, setReqData] = useState({\r\n country: 'china'\r\n })\r\n\r\n useEffect(() => {\r\n if (!ReqData || active) {\r\n return\r\n }\r\n\r\n dispatch({\r\n type: 'CONNECT_WALLET',\r\n value: true\r\n })\r\n\r\n }, [ReqData])\r\n\r\n return (\r\n <KycStyled>\r\n <Crumbs list={[{\r\n name: 'KYC'\r\n }, {\r\n name: 'Basic Info',\r\n active: true\r\n }]} />\r\n <div className=\"container\">\r\n <div className=\"top\">\r\n <h3>KYC</h3>\r\n <p>{curStep} / 3</p>\r\n </div>\r\n <div className=\"bottom\">\r\n {!isXSDown &&\r\n <div className=\"left\">\r\n <img src={image_kyc} alt=\"image_kyc\" />\r\n </div>\r\n }\r\n <div className=\"right\">\r\n {curStep === 1 && <Step1 curStep={curStep} setCurStep={setCurStep} ReqData={ReqData} setReqData={setReqData} />}\r\n {curStep === 2 && <Step2 curStep={curStep} setCurStep={setCurStep} ReqData={ReqData} setReqData={setReqData} />}\r\n {curStep === 3 && <Step3 curStep={curStep} setCurStep={setCurStep} ReqData={ReqData} setReqData={setReqData} />}\r\n </div>\r\n </div>\r\n </div>\r\n </KycStyled>\r\n )\r\n}\r\n","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\Home\\index.jsx",["494","495","496","497","498"],"import React, { useState, useContext, useEffect } from 'react'\r\nimport { HomeStyled } from './styled'\r\nimport { useWeb3React } from '@web3-react/core'\r\nimport { myContext } from '../../redux';\r\nimport { queryIsKyc } from '../../config/utils/END_FUN'\r\nimport { queryBotBalance } from '../../config/utils/BOT_FUN'\r\nimport { useVoteList } from \"../CertifiedSales/hooks\";\r\nimport lattice from '../../assets/images/lattice.svg'\r\nimport bule_check from '../../assets/images/bule-check.svg'\r\nimport bule_star from '../../assets/images/bule-star.svg'\r\nimport bule_people from '../../assets/images/bule-people.svg'\r\nimport logo_white from '../../assets/logo/logo-white.svg'\r\nimport { useHistory } from 'react-router-dom'\r\n\r\nimport back1 from '../../assets/images/back1.svg'\r\nimport back2 from '../../assets/images/back2.svg'\r\nimport back3 from '../../assets/images/back3.svg'\r\nimport back4 from '../../assets/images/back4.svg'\r\nimport back5 from '../../assets/images/back5.svg'\r\nimport back6 from '../../assets/images/back6.svg'\r\n\r\nimport medium from '../../assets/icons/index-medium.svg'\r\nimport twitter from '../../assets/icons/index-twitter.svg'\r\nimport telegram from '../../assets/icons/index-telegram.svg'\r\n\r\nimport video from '../../assets/video/index.mp4'\r\nimport { useIsSMDown } from '../../hooks/themeHooks';\r\n\r\nconst CertifiedSalesSteps = [{\r\n title: 'Certified sale application',\r\n desc: 'Submit project information to the voting board to apply for a certified sale'\r\n}, {\r\n title: 'Community scanning and voting',\r\n desc: 'The community reviews your project for quality and approves the start of the best token sale'\r\n}, {\r\n title: 'Multisig governance configuration',\r\n desc: 'Execution upon multisignature by parties involved'\r\n}, {\r\n title: 'Token sale activation',\r\n desc: 'Your certified token sale goes live for verified user'\r\n}]\r\n\r\nexport default function Index() {\r\n const [curCertifiedSalesSteps, setCurCertifiedSalesSteps] = useState(0)\r\n const [stepIsHover, setStepIsHover] = useState(false)\r\n const { account, chainId, library, active } = useWeb3React()\r\n const history = useHistory()\r\n const isSMDown = useIsSMDown();\r\n const [isKYC, setIsKYC] = useState(false)\r\n const [balance, setBalance] = useState(0)\r\n const { state, dispatch } = useContext(myContext);\r\n const { list } = useVoteList()\r\n\r\n const myProject = list && list.filter(item => {\r\n return item.status === 'Active' && item.creator && account && item.creator.toLowerCase() === account.toLowerCase()\r\n })[0]\r\n\r\n useEffect(async () => {\r\n if (!account || !active) return\r\n const isKYC = await queryIsKyc(account)\r\n const balance = await queryBotBalance(library, account, chainId)\r\n setIsKYC(isKYC)\r\n setBalance(balance)\r\n }, [account, active])\r\n\r\n return (\r\n <HomeStyled>\r\n <div className=\"page_wrapper page_one\">\r\n <div className=\"main\">\r\n <div className=\"left\">\r\n <video\r\n width={isSMDown ? '100%' : '525px'}\r\n height={isSMDown ? '100%' : '525px'}\r\n muted\r\n src={video}\r\n autoPlay='autoPlay'\r\n loop='loop'\r\n />\r\n </div>\r\n\r\n <div className=\"right\">\r\n <h1>Certified crypto auction curated <span>by the community</span></h1>\r\n <p>Bounce Certified empowers the community to curate a select group of high-quality projects to conduct their public sale on the same robust and secure platform behind Bounce Finance.</p>\r\n <p><span>KYC checks</span> / <span>White list sales</span> / <span>Decentralized auction managed by community DAO</span></p>\r\n\r\n <button onClick={() => {\r\n if (chainId !== 1 && chainId !== 4) {\r\n return dispatch({\r\n type: 'MODAL',\r\n value: {\r\n name: 'CONFIRM',\r\n title: 'Bounce Decentralized',\r\n deputy: 'Please switch to Ethereum Mainnet to apply',\r\n cancel: {\r\n text: 'Not Now'\r\n }\r\n }\r\n })\r\n }\r\n\r\n if (!isKYC) {\r\n return dispatch({\r\n type: 'MODAL',\r\n value: {\r\n name: 'CONFIRM',\r\n title: 'Bounce Decentralized',\r\n deputy: 'You are not KYC certified, please authenticate before adding the vote',\r\n cancel: {\r\n text: 'Not Now'\r\n },\r\n confirm: {\r\n text: 'Go',\r\n callback: () => {\r\n dispatch({ type: 'MODAL', value: null })\r\n history.push('/kyc')\r\n }\r\n }\r\n }\r\n })\r\n } else if (balance < 30) {\r\n return dispatch({\r\n type: 'MODAL',\r\n value: {\r\n name: 'CONFIRM',\r\n title: 'Bounce Certified Fee',\r\n deputy: `If you want to add a project vote, you must have more than 30 AUCTION. Your current balance is ${Number(balance)}, so you cannot create it`,\r\n cancel: {\r\n text: 'I Know'\r\n }\r\n }\r\n })\r\n } else if (myProject) {\r\n return dispatch({\r\n type: 'MODAL',\r\n value: {\r\n name: 'CONFIRM',\r\n title: 'Bounce Decentralized',\r\n deputy: `You currently have a project running and cannot create two running pools`,\r\n cancel: {\r\n text: 'I Know'\r\n },\r\n confirm: {\r\n text: 'Show My Project',\r\n callback: () => {\r\n return history.push(`/learn-more/${myProject.id}`)\r\n }\r\n }\r\n }\r\n })\r\n } else {\r\n return history.push('/applySale')\r\n }\r\n }}>Apply for certified sale</button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div className=\"page_other\">\r\n <div className=\"block\">\r\n <h3>Features</h3>\r\n <ul className='Features_list'>\r\n <li>\r\n <div className='bg'></div>\r\n <h4>\r\n <img src={bule_check} alt=\"\" />\r\n KYC checks\r\n </h4>\r\n <p>Know-Your-Customer tools identity verification</p>\r\n </li>\r\n\r\n <li>\r\n <div className='bg'></div>\r\n <h4>\r\n <img src={bule_star} alt=\"\" />\r\n White list sales\r\n </h4>\r\n <p>Exclusive customer sign-up for token auction</p>\r\n </li>\r\n\r\n <li>\r\n <div className='bg'></div>\r\n <h4>\r\n <img src={bule_people} alt=\"\" />\r\n Decentralized auction\r\n </h4>\r\n <p>Auction managed by community DAO</p>\r\n </li>\r\n </ul>\r\n </div>\r\n\r\n\r\n <div className=\"block Certified\">\r\n <h3>Certified Sales Steps</h3>\r\n <ul className=\"step_list\" >\r\n {CertifiedSalesSteps.map((item, index) => {\r\n return <li\r\n key={index}\r\n className={curCertifiedSalesSteps === index && !stepIsHover ? 'active' : ''}\r\n onMouseEnter={() => {\r\n setCurCertifiedSalesSteps(index)\r\n }}\r\n >\r\n <h4>\r\n <i>{index + 1}</i>\r\n {item.title}\r\n </h4>\r\n <p>{item.desc}</p>\r\n </li>\r\n })}\r\n </ul>\r\n </div>\r\n\r\n <div className=\"utility\">\r\n <h3>Token Utility</h3>\r\n <ul className='utility_list'>\r\n <li>\r\n <div>\r\n <i>1</i>\r\n Application fee\r\n </div>\r\n\r\n <div>\r\n <i>3</i>\r\n Auction token holder exclusive sales\r\n </div>\r\n </li>\r\n <li>\r\n <div>\r\n <i>2</i>\r\n Project voting power\r\n </div>\r\n\r\n <div>\r\n <i>4</i>\r\n Transaction fee buy back and burn\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n\r\n\r\n </div>\r\n\r\n <div className=\"started\">\r\n <div className=\"started_bg\" onClick={() => { return console.log(31) }}></div>\r\n <div className=\"started_main\">\r\n <h3>Get started to apply for certified sale with Bounce</h3>\r\n <button onClick={() => { return history.push('/applySale') }}>Get Started</button>\r\n </div>\r\n </div>\r\n\r\n <div className=\"backed\">\r\n <div className=\"main\">\r\n <h5>Backed by</h5>\r\n <ul>\r\n <li>\r\n <img src={back1} alt=\"\" />\r\n </li>\r\n <li>\r\n <img src={back2} alt=\"\" />\r\n </li>\r\n <li>\r\n <img src={back3} alt=\"\" />\r\n </li>\r\n <li>\r\n <img src={back4} alt=\"\" />\r\n </li>\r\n <li>\r\n <img src={back5} alt=\"\" />\r\n </li>\r\n <li>\r\n <img src={back6} alt=\"\" />\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n\r\n <div className=\"footer\">\r\n <div className=\"main\">\r\n {!isSMDown && <img src={logo_white} alt=\"\" />}\r\n <div className=\"link\">\r\n <ul>\r\n <li>\r\n <a href=\"https://bouncefinance.medium.com/\">\r\n <img src={medium} alt=\"\" />\r\n </a>\r\n </li>\r\n\r\n <li>\r\n <a href=\"https://twitter.com/bounce_finance?s=21\">\r\n <img src={twitter} alt=\"\" />\r\n </a>\r\n </li>\r\n\r\n <li>\r\n <a href=\"https://t.me/bounce_finance\">\r\n <img src={telegram} alt=\"\" />\r\n </a>\r\n </li>\r\n </ul>\r\n\r\n <p>Forum</p>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </HomeStyled>\r\n )\r\n}\r\n","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\CertifiedSales\\LearnMore\\index.jsx",["499","500"],"import React, { useState, useEffect } from 'react'\r\nimport { useHistory } from 'react-router-dom'\r\nimport { LearnMoreStyle } from './styled'\r\nimport CardHeader from '../CardHeader'\r\nimport { Passage } from '../../components/Exhibition'\r\nimport { TextInput, Button } from '../../components/Table'\r\nimport Progress from '../Progress'\r\nimport { useParams } from 'react-router-dom'\r\nimport { useVoteListByPoolId } from '../hooks'\r\nimport Crumbs from '../../components/Exhibition/Crumbs'\r\nimport BigNumber from \"bignumber.js\";\r\nimport { numToWei, weiToNum } from \"../../../utils/numberTransform\";\r\nimport { useTokenBalance } from \"../../../hooks/useBalance\";\r\nimport {\r\n cancelStatus,\r\n confirmStatus,\r\n errorStatus,\r\n initStatus,\r\n pendingStatus,\r\n successVotedStatus,\r\n TxModal\r\n} from \"../../../components/common/TXModal\";\r\nimport { ModalLayout } from \"../../components/Modal/styled\";\r\nimport Support from \"../../components/Modal/Support\";\r\nimport { getContract, useActiveWeb3React } from \"../../../web3\";\r\nimport bounceERC20 from \"../../../web3/abi/bounceERC20.json\";\r\nimport { AUCTION, BOT, BOUNCE_PRO_VOTING } from \"../../../web3/address\";\r\nimport BounceProVoting from \"../../../web3/abi/BounceProVoting.json\";\r\nimport { HOST } from '../../../config/request_api'\r\nimport InfoBox from './InfoBox'\r\nimport { useIsSMDown } from '../../../utils/themeHooks';\r\n\r\nexport default function Index() {\r\n const history = useHistory()\r\n const { poolId } = useParams()\r\n const pool = useVoteListByPoolId(poolId)\r\n const proInfo = pool.proInfo\r\n const { balance } = useTokenBalance()\r\n const [supporting, setSupporting] = useState(false)\r\n const [value, setValue] = useState()\r\n const [bidStatus, setBidStatus] = useState(initStatus)\r\n const { account, library, chainId, active } = useActiveWeb3React()\r\n const isXSDown = useIsSMDown();\r\n // const { prosummary, whitepaperlink, protheme, techhighlight, architecture } = useVoteListByPoolId(poolId)\r\n const [isSupport, setIsSupport] = useState(false)\r\n const [crumbs_name, setCrumbs_name] = useState({\r\n name: 'Active_sales',\r\n route: '/certified-sales'\r\n })\r\n // console.log('proInfo', proInfo)\r\n useEffect(() => {\r\n console.log(proInfo)\r\n }, [proInfo])\r\n\r\n useEffect(() => {\r\n const crumbs_index = JSON.parse(window.localStorage.getItem('crumbs_index'))\r\n if (crumbs_index) {\r\n setCrumbs_name(crumbs_index)\r\n }\r\n }, [])\r\n\r\n const onVote = async () => {\r\n setSupporting(false)\r\n const tokenContract = getContract(library, bounceERC20.abi, AUCTION(chainId))\r\n const bounceContract = getContract(library, BounceProVoting.abi, BOUNCE_PRO_VOTING(chainId))\r\n const weiAmount = numToWei(value);\r\n\r\n setBidStatus(confirmStatus);\r\n try {\r\n await tokenContract.methods.approve(\r\n BOUNCE_PRO_VOTING(chainId),\r\n weiAmount,\r\n )\r\n .send({ from: account });\r\n bounceContract.methods.vote(pool.id, weiAmount)\r\n .send({ from: account })\r\n .on('transactionHash', hash => {\r\n setBidStatus(pendingStatus)\r\n })\r\n .on('receipt', (_, receipt) => {\r\n console.log('bid fixed swap receipt:', receipt)\r\n setBidStatus(successVotedStatus)\r\n })\r\n .on('error', (err, receipt) => {\r\n setBidStatus(errorStatus)\r\n })\r\n } catch (e) {\r\n console.log('bid---->', e)\r\n if (e.code === 4001) {\r\n setBidStatus(cancelStatus)\r\n } else {\r\n setBidStatus(errorStatus)\r\n }\r\n }\r\n\r\n }\r\n\r\n return (\r\n <>\r\n <Crumbs list={[{\r\n name: crumbs_name.name,\r\n onClick: () => {\r\n history.push(crumbs_name.route)\r\n }\r\n }, {\r\n name: 'Bounce Project',\r\n active: true\r\n }]} />\r\n <LearnMoreStyle>\r\n {pool.proInfo &&\r\n <CardHeader title={pool && pool.proInfo && pool.proInfo.proname} logo={pool.proInfo.prologourl.startsWith('https://') ? pool.proInfo.prologourl : HOST + '/' + pool.proInfo.prologourl}\r\n socialLink={[\r\n { name: 'facebook', link: pool.proInfo.fackbook },\r\n { name: 'telegram', link: pool.proInfo.telegram },\r\n { name: 'twitter', link: pool.proInfo.twitter },\r\n { name: 'github', link: pool.proInfo.githublink },\r\n { name: 'medium', link: pool.proInfo.medium }\r\n ]} />}\r\n\r\n <div className=\"main\">\r\n <div className=\"left\">\r\n <Passage\r\n title='Project summary'\r\n desc={proInfo && proInfo.prosummary} />\r\n\r\n <a href={proInfo && proInfo.prowebsite}>{proInfo && proInfo.prowebsite}</a>\r\n\r\n {isSupport && <div className='support'>\r\n <div className=\"progress\">\r\n <Progress\r\n title='Support from community:'\r\n status={pool && pool.status}\r\n plan={pool && new BigNumber(pool.totalVotes).dividedBy('200000000000000000000').dividedBy('100')}\r\n value={pool && `${weiToNum(pool.totalVotes)} Auction`}\r\n total={pool && pool.total}\r\n />\r\n </div>\r\n <TextInput onValChange={(value) => {\r\n console.log('value', value)\r\n setValue(value)\r\n }} placeholder={`Enter your vote amount (${weiToNum(balance)} Auction)`} width='100%' bottom={'10px'} />\r\n {pool.status === 'Active' &&\r\n <Button disabled={new BigNumber(numToWei(value)).isGreaterThan(balance)} type='black'\r\n value={new BigNumber(numToWei(value)).isGreaterThan(balance) ? `Insufficient Auction` : 'Support'}\r\n width={isXSDown ? '100%' : '180px'} onClick={() => {\r\n setSupporting(true)\r\n }} />}\r\n <Button type='white' value='Back' width={isXSDown ? '100%' : '180px'} onClick={() => {\r\n setIsSupport(false)\r\n }} />\r\n\r\n </div>}\r\n </div>\r\n\r\n <div className=\"right\">\r\n <Passage\r\n title='Theme'\r\n desc={proInfo && proInfo.protheme} />\r\n <Passage title='Whitepaper'>\r\n <a style={{\r\n width: '450px',\r\n display: 'inline-block',\r\n overflowWrap: 'anywhere'\r\n }} href={proInfo && proInfo.whitepaperlink}>{proInfo && proInfo.whitepaperlink}</a>\r\n </Passage>\r\n\r\n </div>\r\n\r\n\r\n </div>\r\n {!isSupport && pool.status === 'Active' && <div className='btn_group'>\r\n <Button type='black' value='Support' width={isXSDown ? '100%' : '180px'} onClick={() => {\r\n setIsSupport(true)\r\n }} />\r\n </div>}\r\n\r\n <InfoBox proInfo={pool.proInfo} />\r\n </LearnMoreStyle>\r\n\r\n\r\n <TxModal modalStatus={bidStatus} onDismiss={() => {\r\n setBidStatus(initStatus)\r\n }} />\r\n\r\n {supporting && (\r\n <ModalLayout className='layout' onClick={(e) => {\r\n e.stopPropagation()\r\n }}>\r\n <Support onConfirm={onVote} cancel={() => setSupporting(false)} amount={value} />\r\n </ModalLayout>\r\n )}\r\n </>\r\n )\r\n}\r\n","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\ProjectList\\index.jsx",["501","502"],"import React, { useState, useEffect, useContext } from 'react'\r\nimport { useParams, useHistory } from 'react-router-dom'\r\nimport { myContext } from '../../redux'\r\nimport { ProjectListStyle } from './styled'\r\nimport Card from '../CertifiedSales/Card'\r\nimport { useVoteList } from \"../CertifiedSales/hooks\";\r\nimport { EmptyLayout } from \"../../components/common/Layout\";\r\nimport loading from '../../assets/icons/loading.svg'\r\n\r\nconst proTabs = [{\r\n status: 'Active',\r\n name: 'Active Votings',\r\n route: '/project-voting-board/active'\r\n}, {\r\n status: 'Close',\r\n name: 'Closed Votings',\r\n route: '/project-voting-board/close'\r\n}]\r\n\r\nexport default function Index() {\r\n const { state, dispatch } = useContext(myContext)\r\n const history = useHistory()\r\n const { type } = useParams()\r\n const { list } = useVoteList()\r\n const [curPro, setCurPro] = useState(type === 'close' ? 1 : 0)\r\n\r\n useEffect(() => {\r\n // console.log('list', list)\r\n }, [list])\r\n\r\n const renderProList = () => {\r\n // 维护入口\r\n // return <></>\r\n switch (type) {\r\n case 'active':\r\n const activePools = list ? list.filter(item => {\r\n return item.status === 'Active'\r\n }) : null\r\n console.log('activePools', list)\r\n return <>\r\n {!activePools || activePools.length === 0 ? (\r\n <EmptyLayout>\r\n <img src={loading} alt=\"\" />\r\n <p>{Array.isArray(activePools) && activePools.length === 0 ? 'there is currently no active voting, please come back later' : 'Sales are loading ... Please wait'}</p>\r\n </EmptyLayout>\r\n )\r\n :\r\n activePools.sort((item1, item2) => {\r\n return item2.id - item1.id\r\n }).map((item, index) => {\r\n return (\r\n <Card\r\n key={index}\r\n isVote\r\n pool={item}\r\n progress={{\r\n value: '200 BOT',\r\n total: 'Success',\r\n plan: 1,\r\n status: 'success'\r\n }}\r\n status='proList-Active'\r\n />\r\n )\r\n })}\r\n </>\r\n\r\n case 'close':\r\n // return null\r\n const closedPools = list ? list.filter(item => {\r\n return item.status === 'Failed' || item.status === 'Success'\r\n }) : null\r\n return <>\r\n {!closedPools || closedPools.length === 0 ? (\r\n <EmptyLayout>\r\n <img src={loading} alt=\"\" />\r\n <p>{Array.isArray(closedPools) && closedPools.length === 0 ? 'No sales now Please check back later' : 'Sales are loading ... Please wait'}</p>\r\n </EmptyLayout>\r\n )\r\n : closedPools.sort((item1, item2) => {\r\n return item2.id - item1.id\r\n }).map((item, index) => {\r\n return (\r\n <Card key={item.id} isVote pool={item} progress={{\r\n value: '200 BOT',\r\n total: 'Success',\r\n plan: 1,\r\n status: 'success'\r\n }}\r\n status='proList-Close'\r\n />\r\n )\r\n })}\r\n </>\r\n\r\n default:\r\n return <></>\r\n }\r\n }\r\n\r\n return (<>\r\n <ProjectListStyle>\r\n <div className=\"pro_header\">\r\n <ul className='pro_tabs'>\r\n {proTabs.map((item, index) => {\r\n return <li\r\n key={index}\r\n onClick={() => {\r\n // if (item.status === 'Close') {\r\n // // 维护入口\r\n // return dispatch({\r\n // type: 'MODAL',\r\n // value: {\r\n // name: 'CONFIRM',\r\n // title: 'Bounce Decentralized',\r\n // deputy: 'This function is being maintained and upgraded, so stay tuned!comming soon...',\r\n // cancel: {\r\n // text: 'I Know'\r\n // }\r\n // }\r\n // })\r\n // }\r\n history.push(item.route)\r\n setCurPro(index)\r\n }}\r\n className={curPro === index ? `active ${item.status}` : item.status}\r\n >{item.name}</li>\r\n })}\r\n </ul>\r\n\r\n <div className=\"paging\" />\r\n </div>\r\n\r\n {renderProList(proTabs[curPro] && proTabs[curPro].name)}\r\n </ ProjectListStyle>\r\n </>\r\n )\r\n}\r\n","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\CertifiedSales\\Detail\\index.jsx",[],"C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\ApplySale\\index.jsx",["503","504","505"],"import React, { useContext, useState } from 'react'\r\nimport { ApplySaleStyled } from './styled'\r\nimport { useHistory } from 'react-router-dom'\r\nimport { Crumbs } from '../components/Exhibition'\r\nimport Step1 from './Step1'\r\nimport Step2 from './Step2'\r\nimport Step3 from './Step3'\r\nimport Step4 from './Step4'\r\nimport Step5 from './Step5'\r\nimport Step6 from './Step6'\r\n\r\nimport axios from 'axios'\r\nimport API from '../../config/request_api'\r\nimport { myContext } from '../../redux'\r\nimport {\r\n ApplyModal,\r\n approveStatus,\r\n cancelStatus,\r\n confirmStatus,\r\n errorStatus, initStatus,\r\n pendingStatus, successIssuedStatus,\r\n successStatus\r\n} from \"../CertifiedSales/ApplyModal\";\r\nimport { getContract, useActiveWeb3React } from \"../../web3\";\r\nimport bounceERC20 from \"../../web3/abi/bounceERC20.json\";\r\nimport {AUCTION, BOT, BOUNCE_PRO_VOTING} from \"../../web3/address\";\r\nimport BounceProVoting from \"../../web3/abi/BounceProVoting.json\";\r\nimport useAxios from '../../hooks/useAxios'\r\n\r\nexport default function Index () {\r\n const [modalStatus, setModalStatus] = useState(initStatus)\r\n const history = useHistory()\r\n const { account, library, chainId, active } = useActiveWeb3React()\r\n const { dispatch } = useContext(myContext)\r\n const [curStep, setCurStep] = useState(1)\r\n const [title, setTitle] = useState({\r\n title: 'Apply Certified Sales',\r\n crumbsList: [{\r\n name: 'Apply Certified Sales'\r\n }]\r\n })\r\n const [step1Data, setStep1Data] = useState({})\r\n const [step2Data, setStep2Data] = useState({})\r\n const [step3Data, setStep3Data] = useState({})\r\n const [step4Data, setStep4Data] = useState({})\r\n const [step5Data, setStep5Data] = useState({\r\n auctiontype: 'Fixed swap auction',\r\n ifkyc: 1,\r\n ifwhitelist: 1,\r\n allocationperwallet: 'No limits'\r\n })\r\n const [step6Data, setStep6Data] = useState({})\r\n\r\n const { sign_Axios } = useAxios()\r\n\r\n const onApply = async (id) => {\r\n console.log('onApply', active)\r\n setModalStatus(approveStatus);\r\n\r\n try {\r\n const tokenContract = getContract(library, bounceERC20.abi, AUCTION(chainId))\r\n const bounceContract = getContract(library, BounceProVoting.abi, BOUNCE_PRO_VOTING(chainId))\r\n\r\n const result = await tokenContract.methods.approve(\r\n BOUNCE_PRO_VOTING(chainId),\r\n '60000000000000000000',\r\n )\r\n .send({ from: account });\r\n setModalStatus(confirmStatus);\r\n if (result.status) {\r\n await bounceContract.methods.create(id)\r\n .send({ from: account })\r\n .on('transactionHash', hash => {\r\n setModalStatus(pendingStatus)\r\n })\r\n .on('receipt', (_, receipt) => {\r\n setModalStatus(successIssuedStatus)\r\n })\r\n .on('error', (err, receipt) => {\r\n setModalStatus(errorStatus)\r\n })\r\n } else {\r\n setModalStatus(errorStatus)\r\n }\r\n } catch (err) {\r\n if (err.code === 4001) {\r\n setModalStatus(cancelStatus)\r\n } else {\r\n setModalStatus(errorStatus)\r\n }\r\n console.log('err', err);\r\n }\r\n };\r\n\r\n\r\n const handelSubmit = () => {\r\n const params = {\r\n id: 0,\r\n ...step1Data,\r\n ...step2Data,\r\n ...step3Data,\r\n ...step4Data,\r\n ...step5Data,\r\n ...step6Data\r\n }\r\n params.accountaddress = account\r\n // console.log(JSON.stringify(params))\r\n try {\r\n sign_Axios.post(API.sign_applySale, params).then(res => {\r\n if (res.status === 200 && res.data.code === 1) {\r\n // console.log('onApply', res.data.data.id)\r\n onApply(res.data.data.id)\r\n\r\n } else if (res.status === 200 && res.data.code === 0) {\r\n dispatch({\r\n type: 'MODAL',\r\n value: {\r\n name: 'CONFIRM',\r\n title: 'Message',\r\n deputy: `ErrorCode: ${res.data.code} Msg: ${res.data.msg}`,\r\n confirm: {\r\n text: 'Confirm',\r\n callback: () => {\r\n dispatch({\r\n type: 'MODAL',\r\n value: null\r\n })\r\n }\r\n }\r\n }\r\n })\r\n // alert('Information submission error, please contact the platform customer service')\r\n }\r\n })\r\n } catch (error) {\r\n dispatch({\r\n type: 'MODAL',\r\n value: {\r\n name: 'CONFIRM',\r\n title: 'Message',\r\n deputy: 'The request failed. Please check your network or contact your administrator',\r\n confirm: {\r\n text: 'Confirm',\r\n callback: () => {\r\n dispatch({\r\n type: 'MODAL',\r\n value: null\r\n })\r\n }\r\n }\r\n }\r\n })\r\n }\r\n }\r\n\r\n const renderStep = (curStep) => {\r\n switch (curStep) {\r\n case 1:\r\n return <Step1 setCurStep={setCurStep} setTitle={setTitle} step1Data={step1Data} setStep1Data={setStep1Data} />\r\n\r\n case 2:\r\n return <Step2 setCurStep={setCurStep} setTitle={setTitle} step2Data={step2Data} setStep2Data={setStep2Data} />\r\n\r\n case 3:\r\n return <Step3 setCurStep={setCurStep} setTitle={setTitle} step3Data={step3Data} setStep3Data={setStep3Data} />\r\n\r\n case 4:\r\n return <Step4 setCurStep={setCurStep} setTitle={setTitle} step4Data={step4Data} setStep4Data={setStep4Data} />\r\n\r\n case 5:\r\n return <Step5 setCurStep={setCurStep} setTitle={setTitle} step5Data={step5Data} setStep5Data={setStep5Data} />\r\n\r\n case 6:\r\n return <Step6 setCurStep={setCurStep} setTitle={setTitle} step6Data={step6Data} setStep6Data={setStep6Data}\r\n handelSubmit={handelSubmit} />\r\n default:\r\n return <></>\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n <ApplySaleStyled>\r\n <Crumbs list={title.crumbsList} active={'Details'} />\r\n <div className=\"main\">\r\n <div className=\"top\">\r\n <h1>{title.title}</h1>\r\n <p className=\"step\"><span>{curStep}</span> / 6</p>\r\n </div>\r\n\r\n {renderStep(curStep)}\r\n </div>\r\n </ApplySaleStyled>\r\n <ApplyModal onOK={() => {\r\n setModalStatus(initStatus)\r\n history.push('/project-voting-board/active')\r\n }} onDismiss={() => {\r\n setModalStatus(initStatus)\r\n }} modalStatus={modalStatus} />\r\n </>\r\n )\r\n}\r\n","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\components\\HeaderTab\\index.jsx",["506","507","508"],"import React, { useContext, useState, useEffect } from 'react'\r\nimport { HeaderTabStyled } from './styled'\r\nimport logo_black from '../../../assets/logo/logo-black.svg'\r\nimport { headerMenu } from './config'\r\nimport { useHistory } from 'react-router-dom'\r\nimport PersonalModal from './PersonalModal'\r\nimport { myContext } from '../../../redux'\r\nimport { Button } from '../Table'\r\nimport axios from 'axios'\r\nimport HOST_API from '../../../config/request_api'\r\nimport { useActiveWeb3React, getContract } from \"../../../web3\";\r\nimport { useIsSMDown } from '../../../hooks/themeHooks';\r\nimport menu from '../../../assets/mobile/menu.svg';\r\nimport logo_white from '../../../assets/logo/logo-sigle-white.svg';\r\nimport MenuModal from './MenuModal';\r\nimport BouncePro from \"../../../web3/abi/BouncePro.json\";\r\nimport { BOUNCE_PRO } from \"../../../web3/address\";\r\n\r\nexport default function Index() {\r\n const { state, dispatch } = useContext(myContext)\r\n const history = useHistory()\r\n const [curTab, setCurTab] = useState(history.location.pathname === '/' ? '/home' : history.location.pathname)\r\n // console.log(curTab)\r\n const { active, account, library, chainId } = useActiveWeb3React()\r\n const [userName, setUserName] = useState('undefined');\r\n const [mobileMenu, setMobileMenu] = useState(false);\r\n const [isKYC, setIsKYC] = useState(false)\r\n const isSMDown = useIsSMDown();\r\n\r\n useEffect(() => {\r\n // 设置cookie\r\n const isShowTip = getCookie('isShowTip')\r\n // console.log(isShowTip)\r\n if (isShowTip === '') {\r\n dispatch({\r\n type: 'MODAL',\r\n value: {\r\n name: 'KYC_TIP',\r\n confirm: {\r\n text: 'Confirm',\r\n callback: () => {\r\n window.document.cookie = 'isShowTip = true'\r\n dispatch({\r\n type: 'MODAL',\r\n value: null\r\n })\r\n }\r\n }\r\n }\r\n })\r\n\r\n }\r\n }, [])\r\n\r\n\r\n useEffect(() => {\r\n if (!account || !active) return\r\n checkKYC(account)\r\n }, [account, active])\r\n\r\n const renderConnectBtn = () => {\r\n return active ? <div\r\n className=\"personal ignore\"\r\n onClick={() => {\r\n if (chainId !== 1 && chainId !== 4) {\r\n return dispatch({\r\n type: 'MODAL',\r\n value: {\r\n name: 'CONFIRM',\r\n title: 'Bounce Certified Warning',\r\n deputy: `If the auction requires KYC identification, please switch to Ethereum Mainnet to complete KYC before participating in the auction `,\r\n cancel: {\r\n text: 'I Know'\r\n }\r\n }\r\n })\r\n }\r\n dispatch({\r\n type: \"SHOW_PER\",\r\n value: !state.isShowPersonal\r\n })\r\n }}\r\n /> : <Button\r\n type='black'\r\n width='130px'\r\n height='36px'\r\n value='Connect Wallet'\r\n style={{ fontSize: 14, marginLeft: '32px' }}\r\n onClick={() => {\r\n // if (active === undefined || (chainId !== 1 && chainId !== 4)) return\r\n dispatch({\r\n type: 'CONNECT_WALLET',\r\n value: true\r\n })\r\n }}\r\n />\r\n }\r\n\r\n const checkKYC = async (account) => {\r\n console.log('tag---->', account, active)\r\n const params = {\r\n \"accountaddress\": account\r\n }\r\n\r\n axios.post(HOST_API.queryKycByAccount, params).then(res => {\r\n // console.log(res)\r\n if (res.status === 200 && res.data.code === 1) {\r\n // const { status, username, ifincontract } = res.data.data\r\n const { status, username } = res.data.data\r\n window.localStorage.setItem('KYC_STATUS', status)\r\n // window.localStorage.setItem('KYC_IC', ifincontract)\r\n setUserName(username)\r\n } else {\r\n window.localStorage.setItem('KYC_STATUS', 0)\r\n // window.localStorage.setItem('KYC_IC', 0)\r\n }\r\n }).catch(err => {\r\n window.localStorage.setItem('KYC_STATUS', 0)\r\n // window.localStorage.setItem('KYC_IC', 0)\r\n })\r\n\r\n try {\r\n const BouncePro_CT = getContract(library, BouncePro.abi, BOUNCE_PRO(chainId))\r\n BouncePro_CT.methods.kyclist(account).call().then(res => {\r\n // BouncePro_CT.methods.kyclist('0xFCE50eC01725d9Bc975ce358B266dFDBE7Cc26c5').call().then(res => {\r\n // console.log('isKYC', res)\r\n // alert(res)\r\n setIsKYC(res)\r\n })\r\n } catch (error) {\r\n console.log('isKYC', error)\r\n }\r\n }\r\n\r\n return (\r\n <HeaderTabStyled>\r\n <div className=\"container\">\r\n <div className=\"left\">\r\n <img style={{ cursor: 'pointer' }} onClick={() => { return window.location.href = '/' }} src={isSMDown ? logo_white : logo_black} alt=\"bounce logo\" />\r\n </div>\r\n {!isSMDown &&\r\n <div className=\"right\">\r\n <ul>\r\n {headerMenu.map((item, index) => {\r\n return <li\r\n key={index}\r\n className={item.route && curTab && curTab.indexOf(item.route) !== -1 ? 'active' : ''}\r\n onClick={() => {\r\n if (item.isConfirm) {\r\n dispatch({\r\n type: 'MODAL',\r\n value: {\r\n name: 'CONFIRM',\r\n title: 'Bounce Decentralized',\r\n deputy: 'You will be directed to Bounce Decentralized platform',\r\n cancel: {\r\n text: 'Not Now'\r\n },\r\n confirm: {\r\n text: 'Confirm',\r\n callback: () => {\r\n window.open(item.link)\r\n }\r\n }\r\n }\r\n })\r\n } else if (item.route) {\r\n // 维护入口\r\n // if (item.route === '/certified-sales') {\r\n // return dispatch({\r\n // type: 'MODAL',\r\n // value: {\r\n // name: 'CONFIRM',\r\n // title: 'Bounce Decentralized',\r\n // deputy: 'This function is being maintained and upgraded, so stay tuned!comming soon...',\r\n // cancel: {\r\n // text: 'I Know'\r\n // }\r\n // }\r\n // })\r\n // }\r\n history.push(item.route)\r\n }\r\n setCurTab(item.route)\r\n }}>\r\n <h5>{item.name}</h5>\r\n </li>\r\n })}\r\n </ul>\r\n {renderConnectBtn()}\r\n </div>\r\n }\r\n {isSMDown &&\r\n <>\r\n\r\n <div className=\"right\">\r\n {active && renderConnectBtn()}\r\n <img src={menu} alt=\"\" onClick={() => { setMobileMenu(true) }} className=\"menu\" />\r\n </div>\r\n {mobileMenu && <MenuModal setMobileMenu={setMobileMenu} show={mobileMenu} />}\r\n </>\r\n }\r\n <PersonalModal show={state.isShowPersonal} userName={userName} isKYC={isKYC} />\r\n </div>\r\n </HeaderTabStyled>\r\n )\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nfunction getCookie(cname) {\r\n var name = cname + \"=\";\r\n var ca = document.cookie.split(';');\r\n for (var i = 0; i < ca.length; i++) {\r\n var c = ca[i].trim();\r\n if (c.indexOf(name) == 0) return c.substring(name.length, c.length);\r\n }\r\n return \"\";\r\n}\r\n","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\CertifiedSales\\hooks.js",["509","510","511","512","513","514","515","516","517","518","519"],"C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\components\\common\\Layout.jsx",[],"C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\utils\\common.js",["520"],"import Web3 from \"web3\";\r\n\r\nconst {numberToHex} = Web3.utils\r\n\r\nconst BigNumber = require('bignumber.js');\r\n\r\nexport const getTime = (day, hour, min) => {\r\n let time = 0;\r\n if ( day ) {\r\n time += 24 * 60 * 60 * day;\r\n }\r\n if ( hour ) {\r\n time += 60* 60 * hour;\r\n }\r\n if ( min ) {\r\n time += 60 * min;\r\n }\r\n return time;\r\n}\r\n\r\nexport const isGreaterThan = (value1, value2) => {\r\n return new BigNumber(value1).isGreaterThan(new BigNumber(value2))\r\n}\r\n\r\n\r\nexport const isEqualTo = (value1, value2) => {\r\n return new BigNumber(value1).isEqualTo(new BigNumber(value2))\r\n}\r\n\r\n","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\components\\common\\message.js",[],"C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\utils\\form.js",[],"C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\components\\common\\TipLink.js",[],"C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\components\\common\\AuctionTipModal.js",[],"C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\utils\\themeHooks.js",[],"C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\components\\styled.js",[],"C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\components\\Modal\\styled.js",[],"C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\web3\\index.js",["521"],"import { useWeb3React } from '@web3-react/core'\r\nimport { useWeb3React as useWeb3ReactCore } from '@web3-react/core'\r\nimport Web3 from \"web3\";\r\nimport {Web3Provider} from \"@ethersproject/providers\";\r\n\r\nexport function getContract(library, abi, address) {\r\n const web3 = new Web3(library.provider);\r\n return new web3.eth.Contract(abi, address)\r\n}\r\n\r\nexport const useActiveWeb3React = () => {\r\n // const contextNetwork = useWeb3React()\r\n return useWeb3React()\r\n}\r\n\r\nexport const getETHDefaultLibrary = () => {\r\n const provider = new Web3(new Web3.providers.HttpProvider('https://mainnet.infura.io/v3/64ce9c9d9d304d058ad0ce7ad22f67af')).currentProvider\r\n const library = {}\r\n library.provider = provider\r\n return library\r\n}\r\n\r\nexport const getBNBDefaultLibrary = () => {\r\n const provider = new Web3(new Web3.providers.HttpProvider('https://bsc-dataseed3.binance.org')).currentProvider\r\n const library = {}\r\n library.provider = provider\r\n return library\r\n}\r\n\r\nexport const getHECODefaultLibrary = () => {\r\n const provider = new Web3(new Web3.providers.HttpProvider('https://http-mainnet.hecochain.com')).currentProvider\r\n const library = {}\r\n library.provider = provider\r\n return library\r\n}\r\n\r\nexport const useActivePlatform = () => {\r\n const context = useWeb3ReactCore()\r\n let symbol = 'ETH'\r\n if (context.chainId === 97 || context.chainId === 56) {\r\n symbol = 'BNB'\r\n }\r\n if (context.chainId === 128 ) {\r\n symbol = 'HT'\r\n }\r\n // let symbol = {}\r\n return { Psymbol: symbol }\r\n}\r\n","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\components\\common\\Form.js",[],"C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\FixedSwap\\Hooks.js",["522","523","524","525","526"],"import { getContract, useActivePlatform, useActiveWeb3React } from \"../../web3\";\r\nimport { useContext, useEffect, useState } from \"react\";\r\nimport bounceERC20 from \"../../web3/abi/bounceERC20.json\";\r\nimport BouncePro from '../../web3/abi/BouncePro.json'\r\nimport { mainContext } from '../../reducer'\r\n\r\nimport BigNumber from \"bignumber.js\";\r\nimport { BOUNCE_PRO } from \"../../web3/address\";\r\nimport { isGreaterThan } from \"../../utils/common\";\r\nimport { HANDLE_SHOW_CONNECT_MODAL } from \"../../const\";\r\nimport {useTokenList} from \"../../web3/common\";\r\nimport {getProjectInfo} from \"../CertifiedSales/hooks\";\r\n\r\n\r\nexport const usePoolDetail = (id = 0) => {\r\n const { active, account, library, chainId } = useActiveWeb3React();\r\n\r\n const { state, dispatch } = useContext(mainContext);\r\n\r\n const [joinStatus, setJoinStatus] = useState(false)\r\n const [name, setName] = useState(null)\r\n const [pool, setPool] = useState({})\r\n const [symbol, setSymbol] = useState('')\r\n const [toSymbol, setToSymbol] = useState()\r\n const [address, setAddress] = useState(null)\r\n const [toAddress, setToAddress] = useState(null)\r\n const [decimals, setDecimals] = useState()\r\n const [toDecimals, setToDecimals] = useState()\r\n const [toAmount, setToAmount] = useState(null)\r\n const [limit, setLimit] = useState(null)\r\n const [isMine, setIsMine] = useState(false)\r\n const [time, setTime] = useState()\r\n const [fromBidAmount, setFromBidAmount] = useState('0')\r\n const [toBidAmount, setToBidAmount] = useState()\r\n const [fromAmount, setFromAmount] = useState()\r\n const [status, setStatus] = useState()\r\n const [onlyBOT, setOnlyBOT] = useState(false)\r\n const [toTokenBalance, setToTokenBalance] = useState(0)\r\n const [biddenAmount, setBiddenAmount] = useState()\r\n const [inWhiteList, setInWhiteList] = useState()\r\n const [myBidFromAmount, setMyBidFromAmount] = useState()\r\n\r\n\r\n const { Psymbol } = useActivePlatform()\r\n const tokenOptions = useTokenList()\r\n const [claimAble, setClaimAble] = useState(false)\r\n const [claimAt, setClaimAt] = useState()\r\n\r\n const [claimed, setClaimed] = useState(true)\r\n\r\n\r\n const checkMyFSPool = async () => {\r\n const fsContract = getContract(library, BouncePro.abi, BOUNCE_PRO(chainId))\r\n let myPoolIndex = await fsContract.methods.teamPool(account).call()\r\n if (myPoolIndex > 0) {\r\n myPoolIndex = myPoolIndex - 1\r\n const fromAmount = await fsContract.methods.amountTotal0FP(myPoolIndex).call()\r\n const bidAmount = await fsContract.methods.amountSwap0FP(myPoolIndex).call()\r\n if (fromAmount === bidAmount) {\r\n setClaimed(true)\r\n } else {\r\n setClaimed(false)\r\n }\r\n } else {\r\n setClaimed(true)\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n if (!toAddress) return\r\n if (new BigNumber(toAddress).isEqualTo(0)) return\r\n queryTokenBalance(toAddress)\r\n }, [toAddress])\r\n\r\n const queryTokenBalance = async (toAddress) => {\r\n const Contract = getContract(library, bounceERC20.abi, toAddress)\r\n const balance = await Contract.methods.balanceOf(account).call()\r\n setToTokenBalance(balance)\r\n }\r\n\r\n async function getFSPoolDetail() {\r\n try {\r\n\r\n const fsContract = getContract(library, BouncePro.abi, BOUNCE_PRO(chainId))\r\n\r\n fsContract.methods.pools(id).call().then( async (res) => {\r\n setPool(res)\r\n setFromAmount(res.amountTotal0)\r\n setToAmount(res.amountTotal1)\r\n\r\n setAddress(res.token0)\r\n const tokenContract = getContract(library, bounceERC20.abi, res.token0)\r\n tokenContract.methods.symbol().call().then((res) => {\r\n setSymbol(res)\r\n })\r\n tokenContract.methods.decimals().call().then((res) => {\r\n setDecimals(res)\r\n })\r\n\r\n const toToken = tokenOptions.find(item => {\r\n return res.token1.toLowerCase() === item.key.toLowerCase()\r\n })\r\n\r\n if (res.token1 === '0x0000000000000000000000000000000000000000') {\r\n setToAddress(null)\r\n setToSymbol(Psymbol)\r\n setToDecimals('18')\r\n } else if (toToken) {\r\n setToAddress(res.token1)\r\n setToDecimals(toToken.decimals)\r\n setToSymbol(toToken.symbol)\r\n } else {\r\n setToAddress(null)\r\n setToSymbol(Psymbol)\r\n setToDecimals('18')\r\n }\r\n\r\n // res.openAt = res.openAt - (3*60*60)\r\n // res.closeAt = res.closeAt\r\n\r\n const date = new Date(res.closeAt * 1000);\r\n const now = new Date();\r\n const leftTime = date - now;\r\n\r\n setTime(res.closeAt)\r\n\r\n // setIsMine((res.beneficiary.toLowerCase() === account.toLowerCase()))\r\n // if (res.beneficiary.toLowerCase() === account.toLowerCase()) {\r\n // let myPoolIndex = await fsContract.methods.myP(account).call()\r\n // if (myPoolIndex > 0) {\r\n // myPoolIndex = myPoolIndex - 1\r\n // const fromAmount = res.amountTotal0\r\n // const bidAmount = await fsContract.methods.amountSwap0P(myPoolIndex).call()\r\n // if (fromAmount === bidAmount) {\r\n // setClaimed(true)\r\n // } else {\r\n // setClaimed(false)\r\n // }\r\n // } else {\r\n // setClaimed(true)\r\n // }\r\n // }else {\r\n // fsContract.methods.myClaimed(account, id).call().then((res) => {\r\n // console.log('myClaimed:', res)\r\n // setClaimed(res)\r\n // })\r\n // }\r\n\r\n setToAmount(res.amountTotal1)\r\n console.log('AA_console', res)\r\n\r\n const claimTime = (new BigNumber(res.closeAt).plus(res.claimDelaySec).toString())\r\n if(new Date() - claimTime * 1000 > 0){\r\n setClaimAble(true)\r\n }else {\r\n setClaimAt(claimTime)\r\n setClaimAble(false)\r\n }\r\n\r\n const isOpen = new Date() - res.openAt * 1000 > 0\r\n if (!isOpen) {\r\n setStatus('Upcoming')\r\n // setStatus('Live') \r\n }else {\r\n setStatus(leftTime > 0 ? 'Live' : 'Closed')\r\n fsContract.methods.myClaimed(account, id).call().then((res) => {\r\n setClaimed(res)\r\n })\r\n fsContract.methods.amountSwap1P(id).call().then((bidAmount) => {\r\n setToBidAmount(bidAmount)\r\n if(leftTime < 0){\r\n // setClaimAble(true)\r\n }else {\r\n if (bidAmount === res.amountTotal1) {\r\n setStatus('Filled')\r\n }\r\n }\r\n\r\n })\r\n }\r\n\r\n\r\n getProjectInfo(res.projectId).then(info =>{\r\n console.log('info',info)\r\n setName(info.proname)\r\n })\r\n })\r\n\r\n fsContract.methods.myAmountSwapped1(account, id).call().then((res) => {\r\n console.log('query fs myAmountSwapped1:', res)\r\n setBiddenAmount(res)\r\n setJoinStatus(isGreaterThan(res, '0'))\r\n })\r\n\r\n fsContract.methods.myAmountSwapped0(account, id).call().then((res) => {\r\n console.log('query fs myAmountSwapped0:', res)\r\n setMyBidFromAmount(res)\r\n setJoinStatus(isGreaterThan(res, '0'))\r\n })\r\n\r\n fsContract.methods.onlyBotHolderP(id).call().then((res) => {\r\n console.log('query fs name:', res)\r\n setOnlyBOT(res)\r\n })\r\n\r\n fsContract.methods.amountSwap0P(id).call().then((res) => {\r\n console.log('query fs from bid amount:', res)\r\n setFromBidAmount(res)\r\n })\r\n\r\n\r\n fsContract.methods.maxEthPerWalletP(id).call().then((res) => {\r\n console.log('query fs limit max:', res)\r\n setLimit(res)\r\n })\r\n\r\n fsContract.methods.whitelistP(id, account).call().then((res) => {\r\n console.log('whitelistP:', res)\r\n setInWhiteList(res)\r\n })\r\n\r\n } catch (e) {\r\n console.log('getTokenInfo:', e)\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n if (active && chainId && account) {\r\n console.log('chainId', chainId)\r\n getFSPoolDetail()\r\n } else {\r\n dispatch({ type: HANDLE_SHOW_CONNECT_MODAL, showConnectModal: true });\r\n }\r\n\r\n }, [active, chainId, account])\r\n\r\n // console.log('FS_BUG', fromAmount, fromBidAmount, toAmount, toBidAmount)\r\n return {\r\n name,\r\n claimed,\r\n address,\r\n symbol,\r\n toAddress,\r\n toSymbol,\r\n toDecimals,\r\n decimals,\r\n toAmount,\r\n limit,\r\n time,\r\n fromBidAmount,\r\n toBidAmount,\r\n fromAmount,\r\n status,\r\n isMine,\r\n onlyBOT,\r\n toTokenBalance,\r\n joinStatus,\r\n biddenAmount,\r\n inWhiteList,\r\n claimAble,\r\n claimAt,\r\n setClaimAble,\r\n myBidFromAmount,\r\n pool\r\n }\r\n}\r\n","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\hooks.js",[],"C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\CertifiedSales\\Detail\\styled.js",[],"C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\hooks\\useAxios.js",[],"C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\hooks\\themeHooks.js",[],"C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\components\\HeaderTab\\styled.js",[],"C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\components\\HeaderTab\\config.js",[],"C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\config\\request_api.js",[],"C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\components\\Modal\\Approve.jsx",[],"C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\components\\HeaderTab\\MenuModal.jsx",["527","528","529"],"import React, { useContext, useEffect, useState } from 'react';\r\nimport { MenuModalStyled } from './styled';\r\nimport { useHistory } from 'react-router-dom';\r\nimport logo_sigle from '../../../assets/logo/logo-sigle-white.svg';\r\nimport close from '../../../assets/icons/close-white.svg';\r\nimport { headerMenu } from './config';\r\nimport { myContext } from '../../../redux';\r\nimport { useActiveWeb3React } from \"../../../web3\";\r\nimport { Button } from '../Table'\r\n\r\n\r\n\r\nexport default function MenuModal({ show = false,setMobileMenu }) {\r\n const history = useHistory()\r\n const [curTab, setCurTab] = useState(history.location.pathname === '/' ? '/home' : history.location.pathname)\r\n const { state, dispatch } = useContext(myContext);\r\n const { active, account } = useActiveWeb3React();\r\n \r\n\r\n const renderConnectBtn = () => {\r\n\r\n return active ? <div></div> : <Button\r\n type='black'\r\n width='130px'\r\n height='36px'\r\n value='Connect Wallet'\r\n className=\"connect\"\r\n onClick={() => {\r\n if (active === undefined) return\r\n dispatch({\r\n type: 'CONNECT_WALLET',\r\n value: true\r\n })\r\n }}\r\n />\r\n }\r\n\r\n return (\r\n show && \r\n <MenuModalStyled>\r\n <div className=\"account\">\r\n <img onClick={() => { return window.location.href = '/' }} src={logo_sigle} alt=\"bounce logo\" />\r\n <img src={close} onClick={() => {setMobileMenu(false)}} alt=\"\" />\r\n </div>\r\n <div className=\"right\" id=\"right\">\r\n <ul>\r\n {headerMenu.map((item, index) => {\r\n return <li\r\n key={index}\r\n className={item.route && curTab && curTab.indexOf(item.route) !== -1 ? 'active' : ''}\r\n onClick={() => {\r\n setMobileMenu(false)\r\n if (item.isConfirm) {\r\n dispatch({\r\n type: 'MODAL',\r\n value: {\r\n name: 'CONFIRM',\r\n title: 'Bounce Decentralized',\r\n deputy: 'You will be directed to Bounce Decentralized platform',\r\n cancel: {\r\n text: 'Not Now'\r\n },\r\n confirm: {\r\n text: 'Confirm',\r\n callback: () => {\r\n window.open(item.link)\r\n }\r\n }\r\n }\r\n })\r\n } else if (item.route) {\r\n history.push(item.route)\r\n }\r\n setCurTab(item.route)\r\n }}>\r\n <h5>{item.name}</h5>\r\n </li>\r\n })}\r\n </ul>\r\n {renderConnectBtn()}\r\n <div onClick={() => { setMobileMenu(false)}} className=\"cancel\">\r\n Close\r\n </div>\r\n </div>\r\n </MenuModalStyled>\r\n )\r\n}\r\n","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\components\\HeaderTab\\PersonalModal.jsx",["530","531","532","533","534"],"import React, { useContext, useEffect, useState } from 'react'\r\nimport { PerModalStyled } from './styled'\r\nimport { useHistory } from 'react-router-dom'\r\nimport { useWeb3React } from '@web3-react/core'\r\nimport { CopyToClipboard } from 'react-copy-to-clipboard';\r\nimport copy_icon from '../../../assets/icons/copy-black.svg'\r\nimport bule_check from '../../../assets/images/bule-check.svg'\r\nimport { useVoteList } from \"../../CertifiedSales/hooks\";\r\nimport { queryIsKyc } from '../../../config/utils/END_FUN'\r\nimport { queryBotBalance } from '../../../config/utils/BOT_FUN'\r\nimport { myContext } from '../../../redux';\r\nimport { BOUNCE_PRO } from \"../../../web3/address\";\r\nimport { getContract } from \"../../../web3\";\r\nimport bounceERC20 from \"../../../web3/abi/bounceERC20.json\";\r\nimport { numToWei } from \"../../../utils/numberTransform\";\r\nimport { useIsSMDown } from '../../../hooks/themeHooks';\r\nimport logo_sigle from '../../../assets/logo/logo-sigle-black.svg';\r\nimport close from '../../../assets/icons/close-black.svg';\r\nimport icon_point from '../../../assets/icons/icon_point.svg'\r\nimport useAxios from '../../../hooks/useAxios'\r\nimport API_HOST from '../../../config/request_api'\r\nimport BouncePro from \"../../../web3/abi/BouncePro.json\";\r\nimport {\r\n cancelStatus,\r\n confirmStatus,\r\n errorStatus,\r\n initStatus,\r\n pendingStatus,\r\n successVotedStatus,\r\n TxModal\r\n} from \"../../../components/common/TXModal\"\r\n\r\n\r\nexport default function PersonalModal({ show = false, userName, isKYC: CT_KYC }) {\r\n const history = useHistory()\r\n const { sign_Axios, Axios } = useAxios()\r\n const { account, chainId, library, active } = useWeb3React()\r\n const KYC_STATUS = window.localStorage.getItem('KYC_STATUS') || 0\r\n const { state, dispatch } = useContext(myContext);\r\n const { list } = useVoteList()\r\n const [isKYC, setIsKYC] = useState(false)\r\n const [balance, setBalance] = useState(0)\r\n const [bidStatus, setBidStatus] = useState(initStatus)\r\n\r\n const isSMDown = useIsSMDown();\r\n const myProject = list && list.filter(item => {\r\n return item.status === 'Active' && item.creator && account && item.creator.toLowerCase() === account.toLowerCase()\r\n })[0]\r\n\r\n const activeProject = list && list.filter(item => {\r\n return item.status === 'Success' && !item.approved && item.creator && account && item.creator.toLowerCase() === account.toLowerCase()\r\n })[0]\r\n // console.log('activeProject', activeProject)\r\n\r\n const onApprove = async (approveAmount, address) => {\r\n const bounceAddress = BOUNCE_PRO(chainId)\r\n const tokenContract = getContract(library, bounceERC20.abi, address)\r\n const amount = numToWei(approveAmount);\r\n dispatch({\r\n type: 'MODAL',\r\n value: {\r\n name: 'APPROVE',\r\n amount: activeProject.proInfo.amountoftoken,\r\n symbol: activeProject.proInfo.tokenticketer,\r\n projectName: activeProject.proInfo.proname,\r\n loading: true,\r\n cancel: {\r\n text: 'I Know'\r\n },\r\n onConfirm: () => {\r\n onApprove(activeProject.proInfo.amountoftoken, activeProject.proInfo.tokencontractaddress)\r\n }\r\n }\r\n })\r\n\r\n try {\r\n await tokenContract.methods.approve(\r\n bounceAddress,\r\n amount,\r\n )\r\n .send({ from: account });\r\n dispatch({\r\n type: 'MODAL',\r\n value: {\r\n name: 'APPROVE',\r\n amount: activeProject.proInfo.amountoftoken,\r\n symbol: activeProject.proInfo.tokenticketer,\r\n projectName: activeProject.proInfo.proname,\r\n done: true,\r\n cancel: {\r\n text: 'I Know'\r\n },\r\n onConfirm: () => {\r\n onApprove(activeProject.proInfo.amountoftoken, activeProject.proInfo.tokencontractaddress)\r\n }\r\n }\r\n })\r\n } catch (err) {\r\n if (err.code === 4001) {\r\n } else {\r\n }\r\n console.log('err', err);\r\n }\r\n };\r\n\r\n\r\n useEffect(async () => {\r\n if (!account || !active) return\r\n const isKYC = await queryIsKyc(account)\r\n const balance = await queryBotBalance(library, account, chainId)\r\n // alert(isKYC)\r\n setIsKYC(isKYC)\r\n setBalance(balance)\r\n }, [account, active])\r\n\r\n const handelClickLi = (type) => {\r\n if (!type) return\r\n switch (type) {\r\n case 'kyc':\r\n return history.push('/kyc')\r\n case 'PersonalInfo':\r\n return history.push('/PersonalInfo')\r\n case 'applySale':\r\n // console.log(isKYC, balance)\r\n // console.log(state)\r\n if (!isKYC) {\r\n return dispatch({\r\n type: 'MODAL',\r\n value: {\r\n name: 'CONFIRM',\r\n title: 'Bounce Decentralized',\r\n deputy: 'You are not KYC certified, please authenticate before adding the vote',\r\n cancel: {\r\n text: 'Not Now'\r\n },\r\n confirm: {\r\n text: 'Go',\r\n callback: () => {\r\n dispatch({ type: 'MODAL', value: null })\r\n history.push('/kyc')\r\n }\r\n }\r\n }\r\n })\r\n } else if (balance < 30) {\r\n return dispatch({\r\n type: 'MODAL',\r\n value: {\r\n name: 'CONFIRM',\r\n title: 'Bounce Certified Fee',\r\n deputy: `If you want to add a project vote, you must have more than 30 AUCTION. Your current balance is ${Number(balance)}, so you cannot create it`,\r\n cancel: {\r\n text: 'I Know'\r\n }\r\n }\r\n })\r\n } else if (myProject) {\r\n return dispatch({\r\n type: 'MODAL',\r\n value: {\r\n name: 'CONFIRM',\r\n title: 'Bounce Decentralized',\r\n deputy: `You currently have a project running and cannot create two running pools`,\r\n cancel: {\r\n text: 'I Know'\r\n },\r\n confirm: {\r\n text: 'Show My Project',\r\n callback: () => {\r\n return history.push(`/learn-more/${myProject.id}`)\r\n }\r\n }\r\n }\r\n })\r\n } else {\r\n return history.push('/applySale')\r\n }\r\n break\r\n default:\r\n return\r\n }\r\n }\r\n\r\n const handelClickPoint = () => {\r\n if (!account) return\r\n Axios.post(API_HOST.queryKycByAccount, { accountaddress: account }).then(res => {\r\n if (res.status === 200 && res.data.code === 1) {\r\n const signaturestr = res.data.data.signaturestr\r\n\r\n const BouncePro_CT = getContract(library, BouncePro.abi, BOUNCE_PRO(chainId))\r\n setBidStatus(confirmStatus);\r\n try {\r\n BouncePro_CT.methods.registerKyc(signaturestr).send({ from: account })\r\n .on('transactionHash', hash => {\r\n setBidStatus(pendingStatus)\r\n })\r\n .on('receipt', async (_, receipt) => {\r\n console.log('bid fixed swap receipt:', receipt)\r\n setBidStatus(successVotedStatus)\r\n const params_2 = {\r\n ...res.data.data,\r\n ifincontract: 1\r\n }\r\n const res_2 = await sign_Axios.post(API_HOST.sign_KYC, params_2)\r\n if (res_2.status === 200 && res_2.data.code === 1) {\r\n dispatch({\r\n type: 'MODAL',\r\n value: {\r\n name: 'CONFIRM',\r\n title: 'Message',\r\n deputy: 'Supplementary contract certification successful',\r\n confirm: {\r\n text: 'Confirm',\r\n callback: () => {\r\n dispatch({\r\n type: 'MODAL',\r\n value: null\r\n })\r\n window.location.href = '/'\r\n // window.location.reload()\r\n }\r\n }\r\n }\r\n })\r\n } else {\r\n dispatch({\r\n type: 'MODAL',\r\n value: {\r\n name: 'CONFIRM',\r\n title: 'ERROR MESSAGE',\r\n deputy: res_2.data.msg,\r\n confirm: {\r\n text: 'Confirm',\r\n callback: () => {\r\n dispatch({\r\n type: 'MODAL',\r\n value: null\r\n })\r\n window.location.href = '/'\r\n // window.location.reload()\r\n }\r\n }\r\n }\r\n })\r\n }\r\n\r\n })\r\n .on('error', (err, receipt) => {\r\n setBidStatus(errorStatus)\r\n })\r\n } catch (error) {\r\n if (error.code === 4001) {\r\n setBidStatus(cancelStatus)\r\n } else {\r\n setBidStatus(errorStatus)\r\n }\r\n }\r\n } else {\r\n dispatch({\r\n type: 'MODAL',\r\n value: {\r\n name: 'CONFIRM',\r\n title: 'Message',\r\n deputy: 'Append contract authentication failed. Please try again later',\r\n confirm: {\r\n text: 'Confirm',\r\n callback: () => {\r\n dispatch({\r\n type: 'MODAL',\r\n value: null\r\n })\r\n window.location.href = '/'\r\n // window.location.reload()\r\n }\r\n }\r\n }\r\n })\r\n }\r\n }).catch(err => {\r\n console.log(err)\r\n })\r\n }\r\n\r\n return (\r\n <>\r\n {show && <PerModalStyled>\r\n {isSMDown &&\r\n <div>\r\n <div className=\"headers\">\r\n <img onClick={() => { return window.location.href = '/' }} src={logo_sigle} alt=\"bounce logo\" />\r\n <img src={close}\r\n />\r\n </div>\r\n <div className=\"personalLogo\">\r\n\r\n </div>\r\n </div>\r\n }\r\n\r\n <div className=\"account\">\r\n <div className='account_name'>\r\n <h5>{userName}</h5>\r\n {KYC_STATUS === '1' && CT_KYC && <img src={bule_check} alt=\"\" />}\r\n {KYC_STATUS === '1' && !CT_KYC && <img\r\n onClick={() => {\r\n handelClickPoint()\r\n }}\r\n style={{\r\n cursor: 'pointer',\r\n }} src={icon_point} alt=\"\" title={`You have complete the KYC process and\r\nnow please interact with Bounce contract\r\nto add your address to contract KYC list.`} />}\r\n </div>\r\n <div className=\"account_address\">\r\n <p>{account || '0x00'} </p>\r\n <CopyToClipboard\r\n text={account}\r\n onCopy={() => {\r\n }}>\r\n <img className='ignore' src={copy_icon} alt=\"\" />\r\n </CopyToClipboard>\r\n </div>\r\n </div>\r\n <ul>\r\n {KYC_STATUS !== '1' && <li\r\n onClick={() => {\r\n handelClickLi('kyc')\r\n }}\r\n >\r\n <i className='kyc'></i>\r\n <span>KYC</span>\r\n </li>}\r\n\r\n {KYC_STATUS === '1' && !CT_KYC && <li\r\n onClick={() => {\r\n handelClickPoint()\r\n }}\r\n >\r\n <i className='kyc'></i>\r\n <span>KYC interaction</span>\r\n </li>}\r\n\r\n <li onClick={() => {\r\n handelClickLi('PersonalInfo')\r\n }}>\r\n <i className='pi'></i>\r\n <span>Personal Info</span>\r\n </li>\r\n\r\n\r\n {!myProject && !activeProject && (\r\n <li\r\n onClick={() => {\r\n handelClickLi('applySale')\r\n }}\r\n >\r\n <i className='acs'></i>\r\n <span>{'Apply Certified Sale'}</span>\r\n </li>)}\r\n {myProject && (\r\n <li\r\n onClick={() => {\r\n handelClickLi('applySale')\r\n }}\r\n >\r\n <i className='acs'></i>\r\n <span>{'Check Status'}</span>\r\n </li>\r\n )}\r\n {activeProject && (\r\n <li\r\n onClick={() => {\r\n dispatch({\r\n type: 'MODAL',\r\n value: {\r\n name: 'APPROVE',\r\n amount: activeProject.proInfo.amountoftoken,\r\n symbol: activeProject.proInfo.tokenticketer,\r\n projectName: activeProject.proInfo.proname,\r\n cancel: {\r\n text: 'I Know'\r\n },\r\n onConfirm: () => {\r\n onApprove(activeProject.proInfo.amountoftoken, activeProject.proInfo.tokencontractaddress)\r\n }\r\n }\r\n })\r\n }}\r\n >\r\n <i className='acs'></i>\r\n <span>{'Approve'} {activeProject && activeProject.proInfo.proname}</span>\r\n </li>\r\n )}\r\n </ul>\r\n {isSMDown &&\r\n <div className=\"cancelBtn\">\r\n Close\r\n </div>\r\n }\r\n </PerModalStyled>}\r\n <TxModal modalStatus={bidStatus} onDismiss={() => {\r\n setBidStatus(initStatus)\r\n }} />\r\n </>\r\n )\r\n}\r\n","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\ApplySale\\Step6.jsx",["535"],"import React, { useEffect, useState } from 'react'\r\nimport { Step6Styled } from './styled'\r\nimport { TextInput, Button, Upload } from '../components/Table'\r\nimport {useIsSMDown} from '../../utils/themeHooks';\r\nconst requireList = ['contactemail', 'prologourl']\r\n\r\nexport default function Step6 ({ setCurStep, setTitle, step6Data, setStep6Data, handelSubmit }) {\r\n const [isNext, setIsNext] = useState(false)\r\n const isXSDown = useIsSMDown();\r\n useEffect(() => {\r\n setTitle({\r\n title: 'Auction',\r\n crumbsList: [{\r\n name: 'Apply Certified Sales'\r\n }, {\r\n name: 'General information',\r\n onClick: () => { return setCurStep(1) }\r\n }, {\r\n name: 'Details',\r\n onClick: () => { return setCurStep(2) }\r\n }, {\r\n name: 'Team',\r\n onClick: () => { return setCurStep(3) }\r\n }, {\r\n name: 'Token metrics',\r\n onClick: () => { return setCurStep(4) }\r\n }, {\r\n name: 'Auction',\r\n onClick: () => { return setCurStep(5) }\r\n }, {\r\n name: 'Additional information',\r\n active: true\r\n }]\r\n })\r\n }, [])\r\n\r\n useEffect(() => {\r\n const arr = requireList.filter(item => {\r\n return !step6Data[item]\r\n })\r\n // console.log('arr',arr, requireList)\r\n if (arr.length === 0) {\r\n setIsNext(true)\r\n } else {\r\n setIsNext(false)\r\n }\r\n }, [step6Data])\r\n\r\n const handelInputChange = (key, data) => {\r\n const obj = { ...step6Data }\r\n if (!data.isError) {\r\n obj[key] = data.value\r\n } else {\r\n obj[key] = null\r\n }\r\n setStep6Data(obj)\r\n }\r\n\r\n return (\r\n <Step6Styled>\r\n <TextInput\r\n label='Contact email'\r\n placeholder='Enter your Contact email'\r\n width={isXSDown?'100%':'600px'}\r\n defaultVal={step6Data.contactemail}\r\n isRequire={true}\r\n REG_rule={{\r\n reg: /[\\w!#$%&'*+/=?^_`{|}~-]+(?:\\.[\\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\\w](?:[\\w-]*[\\w])?\\.)+[\\w](?:[\\w-]*[\\w])?/,\r\n msg: 'Please enter a valid email address'\r\n }}\r\n onValueChange={(val) => {\r\n handelInputChange('contactemail', val)\r\n }}\r\n />\r\n\r\n <TextInput\r\n label='Additional information'\r\n placeholder='Enter additional information '\r\n width={isXSDown?'100%':'600px'}\r\n defaultVal={step6Data.additionalinfo}\r\n maxLength={200}\r\n onValueChange={(val) => {\r\n handelInputChange('additionalinfo', val)\r\n }}\r\n />\r\n\r\n <Upload\r\n name='Project logo'\r\n width={isXSDown?'100%':'600px'}\r\n desc='Supports JPG, PNG, JPEG2000, GIF, no more than 100MB, 262*262 Reccomended'\r\n successCallBack={(path) => {\r\n handelInputChange('prologourl', {\r\n isRequire: true,\r\n isError: false,\r\n value: path\r\n })\r\n }} />\r\n\r\n <div className=\"btn_group\">\r\n <Button type='white' value='Last Step' width={isXSDown?'100%':'164px'} onClick={() => {\r\n setCurStep(5)\r\n }} />\r\n <Button type='black' value='Submit' style={{ marginTop: 20}} width={isXSDown?'100%':'164px'} disabled={!isNext} onClick={() => {\r\n handelSubmit && handelSubmit()\r\n }} />\r\n </div>\r\n </Step6Styled>\r\n )\r\n}\r\n","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\ApplySale\\Step5.jsx",["536"],"import React, { useEffect, useState } from 'react'\r\nimport { Step5Styled } from './styled'\r\nimport { TextInput, TimeInput, AmountInput, Radio, Select, Button } from '../components/Table'\r\nimport {useIsSMDown} from '../../utils/themeHooks';\r\nconst requireList = ['auctiontype', 'amountoftoken', 'pricepertoken', 'allocationperwallet', 'auctiontime', 'teamwallet', 'ifkyc', 'ifwhitelist']\r\n\r\nexport default function Step5({ setCurStep, setTitle, step5Data, setStep5Data }) {\r\n const [isNext, setIsNext] = useState(false)\r\n const isXSDown = useIsSMDown();\r\n useEffect(() => {\r\n setTitle({\r\n title: 'Auction',\r\n crumbsList: [{\r\n name: 'Apply Certified Sales'\r\n }, {\r\n name: 'General information',\r\n onClick: () => { return setCurStep(1) }\r\n }, {\r\n name: 'Details',\r\n onClick: () => { return setCurStep(2) }\r\n }, {\r\n name: 'Team',\r\n onClick: () => { return setCurStep(3) }\r\n }, {\r\n name: 'Token metrics',\r\n onClick: () => { return setCurStep(4) }\r\n }, {\r\n name: 'Auction',\r\n active: true\r\n }]\r\n })\r\n }, [])\r\n\r\n useEffect(() => {\r\n const arr = requireList.filter(item => {\r\n return step5Data[item] === null || step5Data[item] === undefined\r\n })\r\n\r\n if (arr.length === 0) {\r\n setIsNext(true)\r\n } else {\r\n setIsNext(false)\r\n }\r\n }, [step5Data])\r\n\r\n const handelInputChange = (key, data) => {\r\n const obj = { ...step5Data }\r\n if (!data.isError) {\r\n obj[key] = data.value\r\n } else {\r\n obj[key] = null\r\n }\r\n setStep5Data(obj)\r\n }\r\n\r\n return (\r\n <Step5Styled>\r\n\r\n <Select\r\n label='Auction type'\r\n width={isXSDown?'100%':'600px'}\r\n options={[\r\n { name: 'Fixed swap auction' },\r\n { name: 'Sealed-bid auction' },\r\n { name: 'Dutch auction' },\r\n { name: 'ERC20 Lottery' },\r\n { name: 'NFT Lottery' },\r\n ]}\r\n\r\n defaultVal={{\r\n name: step5Data.auctiontype\r\n }}\r\n\r\n onChange={(val) => {\r\n handelInputChange('auctiontype', {\r\n isRequire: true,\r\n isError: false,\r\n value: val.name\r\n })\r\n }}\r\n />\r\n\r\n <TextInput\r\n label='Amount of tokens for auction'\r\n placeholder='Enter the amount of token you want to auction'\r\n width={isXSDown?'100%':'600px'}\r\n defaultVal={step5Data.amountoftoken}\r\n isRequire={true}\r\n isNumber={true}\r\n onValueChange={(val) => {\r\n handelInputChange('amountoftoken', {\r\n isRequire: true,\r\n isError: false,\r\n value: val.value\r\n })\r\n }}\r\n />\r\n\r\n <TextInput\r\n label='Price per token'\r\n placeholder='Enter price per token'\r\n width={isXSDown?'100%':'600px'}\r\n defaultVal={step5Data.pricepertoken}\r\n isRequire={true}\r\n isNumber={true}\r\n unit='USDT'\r\n onValueChange={(val) => {\r\n handelInputChange('pricepertoken', val)\r\n }}\r\n />\r\n\r\n <Radio\r\n label='Allocation per wallet'\r\n options={[\r\n { name: 'No limits' },\r\n {\r\n name: 'USDT',\r\n append: <AmountInput\r\n width={isXSDown?'100%':'100px'}\r\n placeholder={'Amount'}\r\n defaultVal={\r\n step5Data.allocationperwallet !== 'No limits' && parseFloat(step5Data.allocationperwallet)\r\n }\r\n onChange={(val) => {\r\n handelInputChange('allocationperwallet', {\r\n isRequire: true,\r\n isError: false,\r\n value: val.value + ' USDT'\r\n })\r\n }}\r\n />\r\n },\r\n ]}\r\n\r\n defaultIndex={\r\n step5Data.allocationperwallet === 'No limits' ? 0 : 1\r\n }\r\n\r\n onChange={(val) => {\r\n if (val.name === 'No limits') {\r\n handelInputChange('allocationperwallet', {\r\n isRequire: true,\r\n isError: false,\r\n value: val.name\r\n })\r\n }\r\n }}\r\n />\r\n\r\n <TimeInput\r\n label='Auction time'\r\n width={isXSDown?'100%':'600px'}\r\n defaultVal={step5Data.auctiontime}\r\n onChange={(time) => {\r\n handelInputChange('auctiontime', time)\r\n }}\r\n />\r\n\r\n\r\n\r\n <TextInput\r\n maxLength={64}\r\n label='Team wallet to receive auction fund'\r\n placeholder='Enter team wallet address to receive fund'\r\n width={isXSDown?'100%':'600px'}\r\n defaultVal={step5Data.teamwallet}\r\n isRequire={true}\r\n REG_rule={{\r\n reg: /[0x|0X][\\S]{41}/,\r\n msg: 'Please enter a positive integer Please enter a valid contract address'\r\n }}\r\n onValueChange={(val) => {\r\n handelInputChange('teamwallet', val)\r\n }}\r\n />\r\n\r\n <div className=\"select_group\">\r\n <Select\r\n label='KYC'\r\n width={isXSDown?'100%':'294px'}\r\n options={[\r\n { name: 'Yes', value: 1 },\r\n { name: 'No', value: 0 },\r\n ]}\r\n\r\n defaultVal={{\r\n value: step5Data.ifkyc\r\n }}\r\n\r\n onChange={(val) => {\r\n handelInputChange('ifkyc', {\r\n isRequire: true,\r\n isError: false,\r\n value: val.value\r\n })\r\n }}\r\n />\r\n\r\n <Select\r\n label='Whitelisting'\r\n width={isXSDown?'100%':'294px'}\r\n options={[\r\n { name: 'Yes', value: 1 },\r\n { name: 'No', value: 0 },\r\n ]}\r\n\r\n defaultVal={{\r\n value: step5Data.ifwhitelist\r\n }}\r\n\r\n onChange={(val) => {\r\n handelInputChange('ifwhitelist', {\r\n isRequire: true,\r\n isError: false,\r\n value: val.value\r\n })\r\n }}\r\n />\r\n </div>\r\n\r\n\r\n <div className=\"btn_group\">\r\n <Button type='white' value='Last Step' width={isXSDown?'100%':'164px'} onClick={() => {\r\n setCurStep(4)\r\n }} />\r\n <Button type='black' value='Next Step' style={{ marginTop: 20}} width={isXSDown?'100%':'164px'} disabled={!isNext} onClick={() => {\r\n setCurStep(6)\r\n console.log(step5Data)\r\n }} />\r\n </div>\r\n </Step5Styled>\r\n )\r\n}\r\n","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\ApplySale\\Step4.jsx",["537"],"import React, { useEffect, useState } from 'react'\r\nimport { Step4Styled } from './styled'\r\nimport { TextInput, Button } from '../components/Table'\r\nimport {useIsSMDown} from '../../utils/themeHooks';\r\nconst requireList = ['totalsupply', 'circulatingsupply', 'tokenticketer', 'tokencontractaddress', 'tokendistribution', 'tokenlookupschedule']\r\n\r\nexport default function Step4 ({ setCurStep, setTitle, step4Data, setStep4Data }) {\r\n const [isNext, setIsNext] = useState(false)\r\n const isXSDown = useIsSMDown();\r\n useEffect(() => {\r\n setTitle({\r\n title: 'Token metrics',\r\n crumbsList: [{\r\n name: 'Apply Certified Sales'\r\n }, {\r\n name: 'General information',\r\n onClick: () => { return setCurStep(1) }\r\n }, {\r\n name: 'Details',\r\n onClick: () => { return setCurStep(2) }\r\n }, {\r\n name: 'Team',\r\n onClick: () => { return setCurStep(3) }\r\n }, {\r\n name: 'Token metrics',\r\n active: true\r\n }]\r\n })\r\n }, [])\r\n\r\n useEffect(() => {\r\n const arr = requireList.filter(item => {\r\n return !step4Data[item]\r\n })\r\n if (arr.length === 0) {\r\n setIsNext(true)\r\n } else {\r\n setIsNext(false)\r\n }\r\n }, [step4Data])\r\n\r\n const handelInputChange = (key, data) => {\r\n const obj = { ...step4Data }\r\n if (!data.isError) {\r\n obj[key] = data.value\r\n } else {\r\n obj[key] = null\r\n }\r\n setStep4Data(obj)\r\n }\r\n\r\n return (\r\n <Step4Styled>\r\n <TextInput\r\n label='Total supply'\r\n placeholder='Enter your Total supply'\r\n width={isXSDown?'100%':'600px'}\r\n defaultVal={step4Data.totalsupply}\r\n isRequire={true}\r\n isNumber={true}\r\n REG_rule={{\r\n reg: /^[1-9]\\d*|0$/,\r\n mag: 'Please enter a positive integer'\r\n }}\r\n onValueChange={(val) => {\r\n handelInputChange('totalsupply', val)\r\n }}\r\n />\r\n\r\n <TextInput\r\n label='Initial circulating supply'\r\n placeholder='Enter initial circulating supply'\r\n width={isXSDown?'100%':'600px'}\r\n defaultVal={step4Data.circulatingsupply}\r\n isRequire={true}\r\n isNumber={true}\r\n REG_rule={{\r\n reg: /^[1-9]\\d*|0$/,\r\n mag: 'Please enter a positive integer'\r\n }}\r\n onValueChange={(val) => {\r\n handelInputChange('circulatingsupply', val)\r\n }}\r\n />\r\n\r\n <TextInput\r\n label='Token ticketer'\r\n placeholder='Enter token ticketer'\r\n width={isXSDown?'100%':'600px'}\r\n defaultVal={step4Data.tokenticketer}\r\n isRequire={true}\r\n upperCase={true}\r\n onValueChange={(val) => {\r\n handelInputChange('tokenticketer', val)\r\n }}\r\n />\r\n\r\n <TextInput\r\n label='Token contract address'\r\n placeholder='Paste token contract address'\r\n width={isXSDown?'100%':'600px'}\r\n maxLength={42}\r\n defaultVal={step4Data.tokencontractaddress}\r\n isRequire={true}\r\n REG_rule={{\r\n reg: /[0x|0X][\\S]{41}/,\r\n msg: 'Please enter a positive integer Please enter a valid contract address'\r\n }}\r\n onValueChange={(val) => {\r\n handelInputChange('tokencontractaddress', val)\r\n }}\r\n />\r\n\r\n\r\n <TextInput\r\n label='Token distribution'\r\n placeholder='describe your token distribution max 300 character'\r\n width={isXSDown?'100%':'600px'}\r\n minHeight='80px'\r\n maxLength={300}\r\n defaultVal={step4Data.tokendistribution}\r\n isRequire={true}\r\n onValueChange={(val) => {\r\n handelInputChange('tokendistribution', val)\r\n }}\r\n />\r\n\r\n <TextInput\r\n label='Token lockup schedule'\r\n placeholder='describe your token lockup schedule max 300 character'\r\n width={isXSDown?'100%':'600px'}\r\n minHeight='80px'\r\n maxLength={300}\r\n defaultVal={step4Data.tokenlookupschedule}\r\n isRequire={true}\r\n onValueChange={(val) => {\r\n handelInputChange('tokenlookupschedule', val)\r\n }}\r\n />\r\n\r\n <div className=\"btn_group\">\r\n <Button type='white' value='Last Step' width={isXSDown?'100%':'164px'} onClick={() => {\r\n setCurStep(3)\r\n }} />\r\n <Button type='black' style={{ marginTop: 20}} value='Next Step' width={isXSDown?'100%':'164px'} disabled={!isNext} onClick={() => {\r\n setCurStep(5)\r\n console.log(step4Data)\r\n }} />\r\n </div>\r\n </Step4Styled>\r\n )\r\n}\r\n","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\ApplySale\\Step3.jsx",["538"],"import React, { useEffect, useState } from 'react'\r\nimport { Step3Styled } from './styled'\r\nimport { TextInput, Button } from '../components/Table'\r\nimport {useIsSMDown} from '../../utils/themeHooks';\r\nconst requireList = ['teambio']\r\n\r\nexport default function Step3({ setCurStep, setTitle, step3Data, setStep3Data }) {\r\n const [isNext, setIsNext] = useState(false)\r\n const isXSDown = useIsSMDown();\r\n useEffect(() => {\r\n setTitle({\r\n title: 'Team',\r\n crumbsList: [{\r\n name: 'Apply Certified Sales'\r\n }, {\r\n name: 'General information',\r\n onClick: () => { return setCurStep(1) }\r\n }, {\r\n name: 'Details',\r\n onClick: () => { return setCurStep(2) }\r\n }, {\r\n name: 'Team',\r\n active: true\r\n }]\r\n })\r\n }, [])\r\n\r\n useEffect(() => {\r\n const arr = requireList.filter(item => {\r\n return !step3Data[item]\r\n })\r\n if (arr.length === 0) {\r\n setIsNext(true)\r\n } else {\r\n setIsNext(false)\r\n }\r\n }, [step3Data])\r\n\r\n const handelInputChange = (key, data) => {\r\n const obj = { ...step3Data }\r\n if (!data.isError) {\r\n obj[key] = data.value\r\n } else {\r\n obj[key] = null\r\n }\r\n setStep3Data(obj)\r\n }\r\n\r\n return (\r\n <Step3Styled>\r\n <TextInput\r\n label='Team'\r\n placeholder='Enter short bio about your team'\r\n width={isXSDown?'100%':'600px'}\r\n minHeight='140px'\r\n marginTop='0px'\r\n maxLength={500}\r\n isRequire={true}\r\n defaultVal={step3Data.teambio}\r\n onValueChange={(val) => {\r\n handelInputChange('teambio', val)\r\n }}\r\n />\r\n\r\n <div className=\"btn_group\">\r\n <Button type='white' value='Last Step' width={isXSDown?'100%':'164px'} onClick={() => {\r\n setCurStep(2)\r\n }} />\r\n <Button type='black' style={{ marginTop: 20}} value='Next Step' width={isXSDown?'100%':'164px'} disabled={!isNext} onClick={() => {\r\n setCurStep(4)\r\n }} />\r\n </div>\r\n </Step3Styled>\r\n )\r\n}\r\n","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\ApplySale\\Step2.jsx",["539"],"import React, { useEffect, useState } from 'react'\r\nimport { Step2Styled } from './styled'\r\nimport { TextInput, Button } from '../components/Table'\r\nimport {useIsSMDown} from '../../utils/themeHooks';\r\n\r\nconst requireList = ['prosummary', 'techhighlight']\r\n\r\nexport default function Step2({ setCurStep, setTitle, step2Data, setStep2Data }) {\r\n\r\n\r\n const [isNext, setIsNext] = useState(false)\r\n const isXSDown = useIsSMDown();\r\n const wrapperToUpperCase = (str) => {\r\n return String(str).toUpperCase()\r\n }\r\n\r\n useEffect(() => {\r\n setTitle({\r\n title: 'Details',\r\n crumbsList: [{\r\n name: 'Apply Certified Sales'\r\n }, {\r\n name: 'General information',\r\n onClick: () => { return setCurStep(1) }\r\n }, {\r\n name: 'Details',\r\n active: true\r\n }]\r\n })\r\n }, [])\r\n\r\n useEffect(() => {\r\n const arr = requireList.filter(item => {\r\n return !step2Data[item]\r\n })\r\n if (arr.length === 0) {\r\n setIsNext(true)\r\n } else {\r\n setIsNext(false)\r\n }\r\n }, [step2Data])\r\n\r\n const handelInputChange = (key, data) => {\r\n const obj = { ...step2Data }\r\n if (!data.isError) {\r\n obj[key] = data.value\r\n } else {\r\n obj[key] = null\r\n }\r\n setStep2Data(obj)\r\n }\r\n\r\n return (\r\n <Step2Styled>\r\n <TextInput\r\n label='Project Summary'\r\n placeholder='Enter your project Summary (Limit to 100 characters)'\r\n width={isXSDown?'100%':'600px'}\r\n marginTop='0px'\r\n defaultVal={step2Data.prosummary}\r\n isRequire={true}\r\n maxLength={100}\r\n onValueChange={(val) => {\r\n handelInputChange('prosummary', val)\r\n }}\r\n />\r\n\r\n <TextInput\r\n label='Technical highlight'\r\n placeholder='Enter your project Technical highlight(Limit to 500 characters)'\r\n width={isXSDown?'100%':'600px'}\r\n maxLength={500}\r\n defaultVal={step2Data.techhighlight}\r\n isRequire={true}\r\n onValueChange={(val) => {\r\n handelInputChange('techhighlight', val)\r\n }}\r\n />\r\n\r\n <TextInput\r\n label='Architecture'\r\n placeholder='Enter your architecture'\r\n width={isXSDown?'100%':'600px'}\r\n defaultVal={step2Data.architecture}\r\n isRequire={false}\r\n maxLength={500}\r\n name='architecture'\r\n onValueChange={(val) => {\r\n console.log(val)\r\n handelInputChange('architecture', val)\r\n }}\r\n />\r\n\r\n <ul className='add_append'>\r\n {/* 添加附件 */}\r\n <li>{wrapperToUpperCase('Add attachments')}</li>\r\n </ul>\r\n\r\n <div className=\"btn_group\">\r\n <Button type='white' value='Last Step' width={isXSDown?'100%':'164px'} onClick={() => {\r\n setCurStep(1)\r\n }} />\r\n <Button type='black' style={{ marginTop: 20}} value='Next Step' width={isXSDown?'100%':'164px'} disabled={!isNext} onClick={() => {\r\n setCurStep(3)\r\n }} />\r\n </div>\r\n </Step2Styled>\r\n )\r\n}\r\n","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\ApplySale\\Step1.jsx",["540","541","542","543","544","545","546","547","548","549","550","551","552"],"import React, { useEffect, useState } from 'react'\r\nimport { useHistory } from 'react-router-dom'\r\nimport { Step1Styled } from './styled'\r\nimport { TextInput, Button } from '../components/Table'\r\nimport {useIsSMDown} from '../../utils/themeHooks';\r\nconst SocialConfig = ['Twitter', 'Medium', 'Telegram', 'Facebook']\r\nconst requireList = ['proname', 'prowebsite', 'protheme', 'whitepaperlink', 'githublink']\r\n\r\n\r\nexport default function Step1({ setCurStep, setTitle, step1Data, setStep1Data }) {\r\n const history = useHistory()\r\n const [socialLink, setSocialLink] = useState([])\r\n const [isNext, setIsNext] = useState(false)\r\n const isXSDown = useIsSMDown();\r\n const wrapperToUpperCase = (str) => {\r\n return String(str).toUpperCase()\r\n }\r\n\r\n useEffect(() => {\r\n setTitle({\r\n title: 'General information',\r\n crumbsList: [{\r\n name: 'Apply Certified Sales'\r\n }, {\r\n name: 'General information',\r\n active: true\r\n }]\r\n })\r\n }, [])\r\n\r\n useEffect(() => {\r\n // console.log(step1Data)\r\n const arr = requireList.filter(item => {\r\n return !step1Data[item]\r\n })\r\n if (arr.length === 0) {\r\n setIsNext(true)\r\n } else {\r\n setIsNext(false)\r\n }\r\n }, [step1Data])\r\n\r\n const handelClickAdd = (item) => {\r\n const list = [...socialLink]\r\n if (!list.includes(item)) {\r\n list.push(item)\r\n } else {\r\n const index = socialLink.indexOf(item)\r\n list.splice(index, 1)\r\n }\r\n setSocialLink(list)\r\n }\r\n\r\n const handelInputChange = (key, data) => {\r\n const obj = { ...step1Data }\r\n if (!data.isError) {\r\n obj[key] = data.value\r\n } else {\r\n obj[key] = null\r\n }\r\n setStep1Data(obj)\r\n }\r\n\r\n return (\r\n <Step1Styled>\r\n <p className='tip'><span>Please note.</span> The submission fee to apply certified sales is 30 Auction tokens</p>\r\n\r\n <TextInput\r\n label='Project name'\r\n placeholder='Enter your project name'\r\n defaultVal={step1Data.proname}\r\n isRequire={true}\r\n width={isXSDown?'100%':'600px'}\r\n onValueChange={(val) => {\r\n handelInputChange('proname', val)\r\n }}\r\n maxLength={20}\r\n />\r\n\r\n <TextInput\r\n label='Project website'\r\n placeholder='Enter your project website'\r\n defaultVal={step1Data.prowebsite}\r\n isRequire={true}\r\n width={isXSDown?'100%':'600px'}\r\n onValueChange={(val) => {\r\n handelInputChange('prowebsite', val)\r\n }}\r\n maxLength={100}\r\n REG_rule={{\r\n reg: /http(s)?:\\/\\/[\\w.]+[\\w\\/]*[\\w.]*\\??[\\w=&\\+\\%]*/,\r\n msg: 'Please enter a valid website address'\r\n }}\r\n />\r\n\r\n <TextInput\r\n label='Theme'\r\n placeholder='For Example: Defi , Public Chain'\r\n defaultVal={step1Data.protheme}\r\n isRequire={true}\r\n width={isXSDown?'100%':'600px'}\r\n onValueChange={(val) => {\r\n handelInputChange('protheme', val)\r\n }}\r\n />\r\n\r\n <TextInput\r\n label='Whitepaper link'\r\n placeholder=' Enter your whitepaper link'\r\n defaultVal={step1Data.whitepaperlink}\r\n isRequire={true}\r\n width={isXSDown?'100%':'600px'}\r\n REG_rule={{\r\n reg: /http(s)?:\\/\\/[\\w.]+[\\w\\/]*[\\w.]*\\??[\\w=&\\+\\%]*/,\r\n msg: 'Please enter a standard Whitepaper link'\r\n }}\r\n maxLength={100}\r\n onValueChange={(val) => {\r\n handelInputChange('whitepaperlink', val)\r\n }}\r\n />\r\n\r\n <TextInput\r\n label='Github link'\r\n placeholder='Paste github link'\r\n defaultVal={step1Data.githublink}\r\n isRequire={true}\r\n width={isXSDown?'100%':'600px'}\r\n maxLength={100}\r\n REG_rule={{\r\n reg: /http(s)?:\\/\\/[\\w.]+[\\w\\/]*[\\w.]*\\??[\\w=&\\+\\%]*/,\r\n msg: 'Please enter a standard GitHub address'\r\n }}\r\n\r\n onValueChange={(val) => {\r\n handelInputChange('githublink', val)\r\n }}\r\n />\r\n\r\n\r\n {socialLink.map((item, index) => {\r\n return <TextInput\r\n key={index}\r\n label={`${item} link`}\r\n placeholder={`Paste ${item} link`}\r\n defaultVal={step1Data[item]}\r\n width={isXSDown?'100%':'600px'}\r\n isRequire={false}\r\n maxLength={100}\r\n REG_rule={{\r\n reg: /http(s)?:\\/\\/[\\w.]+[\\w\\/]*[\\w.]*\\??[\\w=&\\+\\%]*/,\r\n msg: 'Please enter a standard web address'\r\n }}\r\n onValueChange={(val) => {\r\n console.log(val)\r\n const name = String(item).toLowerCase()\r\n handelInputChange(name, val)\r\n }}\r\n />\r\n })}\r\n\r\n\r\n <ul className='add_append'>\r\n {SocialConfig.map((item, index) => {\r\n return <li\r\n className={socialLink.includes(item) ? 'soc_active' : ''}\r\n key={index}\r\n onClick={() => {\r\n handelClickAdd(item)\r\n }}\r\n >{wrapperToUpperCase(`Add ${item}`)}</li>\r\n })}\r\n </ul>\r\n\r\n <div className=\"btn_group\">\r\n <Button type='white' value='Cancel' width={isXSDown?'100%':'164px'} onClick={() => {\r\n history.goBack(-1)\r\n }} />\r\n <Button style={{ marginTop: 20}} type='black' value='Next Step' width={isXSDown?'100%':'164px'} disabled={!isNext} onClick={() => {\r\n setCurStep(2)\r\n }} />\r\n </div>\r\n </Step1Styled>\r\n )\r\n}\r\n","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\components\\Table\\index.jsx",[],"C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\components\\common\\TXModal.js",["553","554"],"import Modal, {ModalContent, ModalTitle} from \"./Modal\";\r\nimport Lottie from \"react-lottie\";\r\nimport {FormStatus} from \"./Form\";\r\nimport icon_success from \"../../assets/icons/icon-success.svg\";\r\nimport icon_error from \"../../assets/icons/icon-error.svg\";\r\nimport {Button} from \"./Button\";\r\nimport React from \"react\";\r\nimport bounce_loading from \"../../assets/bounce-loading.json\";\r\n\r\nexport const confirmStatus = {status: 1, title: 'Bounce requests wallet interaction', content: 'Please open your wallet and confirm in the transaction activity to proceed your order'}\r\nexport const pendingStatus = {status: 2, title: 'Bounce waiting for transaction settlement', content: 'Bounce is engaging with blockchain transaction, please wait patiently for on-chain transaction settlement'}\r\nexport const claimSuccessStatus = {status: 3, title: 'Settlement', content: 'Thanks for using Bounce Finance to create your auction. Your last auction is settled and you can create another one.'}\r\nexport const voteSuccessStatus = {status: 3, title: 'Congratulations!', content: 'You have successfully participated in this prediction. Please come back to check results when the prediction pool is closed'}\r\nexport const successStatus = {status: 3, title: 'Congratulations!', content: 'You have successfully participated in this auction. To proceed to next step, please read more instructions on auction in the bounce documentation'}\r\nexport const successVotedStatus = {status: 3, title: 'Congratulations!', content: 'You have successfully voted for your favorite project. Please come back to claim tokens when voting process ends'}\r\nexport const successVoteClaimedStatus = {status: 3, title: 'Congratulations!', content: 'You have successfully claimed back your voted tokens'}\r\n\r\nexport const errorStatus = {status: -1, title: 'Transaction failed on Bounce', content: 'Oops! Your transaction is failed for on-chain approval and settlement. Please initiate another transaction'}\r\nexport const cancelStatus = {status: -2, title: 'Transaction canceled on Bounce', content: 'Sorry! Your transaction is canceled. Please try again'}\r\nexport const initStatus = {status: 0, title: '', content: ''}\r\n\r\n\r\nconst defaultOptions = {\r\n loop: true,\r\n autoplay: true,\r\n animationData: bounce_loading,\r\n rendererSettings: {\r\n preserveAspectRatio: 'xMidYMid slice'\r\n }\r\n};\r\n\r\nexport const TxModal = ({modalStatus, onDismiss}) =>{\r\n\r\n const {status, title, content} = modalStatus\r\n return (\r\n <Modal isOpen={status !== 0} onDismiss={() => {\r\n onDismiss()\r\n }}>\r\n <ModalTitle style={{textAlign: 'center'}}>{title}</ModalTitle>\r\n\r\n {(status === 1 || status === 2) &&\r\n <Lottie width={200} height={200} options={defaultOptions}/>}\r\n\r\n {(status === 3 ) &&\r\n <FormStatus ><img src={icon_success}/></FormStatus>}\r\n\r\n {(status === -1 || status === -2) &&\r\n <FormStatus><img src={icon_error}/></FormStatus>}\r\n\r\n <ModalContent style={{width: 300, textAlign: 'center'}}>{content}</ModalContent>\r\n {(status === 1 || status === 2) && <Button width={'320px'} black>Awaiting...</Button>}\r\n {status === 3 && <Button width={'320px'} black onClick={()=>{\r\n window.location.reload()\r\n }}>Close</Button>}\r\n {status === -1 && <Button onClick={()=>{onDismiss()}} width={'320px'} black>Try again</Button>}\r\n </Modal>\r\n )\r\n}\r\n","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\ApplySale\\styled.js",[],"C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\config\\utils\\END_FUN.js",[],"C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\config\\utils\\BOT_FUN.js",[],"C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\components\\Table\\Select.jsx",["555","556"],"import React, { useState, useEffect } from 'react'\r\nimport { SelectStyled } from './styled'\r\nimport icon_down from '../../../assets/icons/down.svg'\r\n\r\nexport const Select = ({ isRequire, label, width, options = [], onChange, defaultVal }) => {\r\n const [isPull, setIsPull] = useState(false)\r\n const [selOption, setSelOption] = useState(0)\r\n\r\n useEffect(() => {\r\n if (selOption === null) return\r\n if (options.length === 0) return\r\n onChange && onChange(options[selOption])\r\n }, [selOption])\r\n\r\n useEffect(() => {\r\n if (options.length === 0 && !defaultVal && selOption) return\r\n\r\n // console.log(options,defaultVal )\r\n options.forEach((item, index) => {\r\n if (defaultVal && ((defaultVal.name !== undefined && item.name === defaultVal.name) || (defaultVal.value !== undefined && item.value === defaultVal.value))) {\r\n return setSelOption(index)\r\n }\r\n })\r\n }, [defaultVal, options])\r\n\r\n return (\r\n <SelectStyled\r\n width={width}\r\n >\r\n {label && <p>{label}\r\n {isRequire && <span>*</span>}\r\n </p>}\r\n\r\n <div className='sel_wrapper'>\r\n <div className=\"input\" onClick={() => {\r\n setIsPull(!isPull)\r\n }}>\r\n <span>{options[selOption] ? options[selOption].name : ''}</span>\r\n <img className={isPull ? 'up' : 'down'} src={icon_down} alt=\"\" />\r\n </div>\r\n {isPull && <ul className='options'>\r\n {options.map((item, index) => {\r\n return <li\r\n key={index}\r\n className={index === selOption ? 'active' : ''}\r\n onClick={() => {\r\n setSelOption(index)\r\n setIsPull(false)\r\n }}>\r\n {item.name}\r\n </li>\r\n })}\r\n </ul>}\r\n </div>\r\n </SelectStyled>\r\n )\r\n}\r\n","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\components\\Table\\Text.jsx",[],"C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\components\\Table\\Upload.jsx",[],"C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\components\\Table\\Button.jsx",[],"C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\components\\Table\\Check.jsx",["557"],"import React, { useState, useEffect } from 'react'\r\nimport { RadioStyled } from './styled'\r\nimport icon_radio from '../../../assets/images/radio.svg'\r\nimport icon_radio_sel from '../../../assets/images/radio_sel.svg'\r\n\r\nexport const Radio = ({ label, width, onChange, options = [], defaultIndex = 0 }) => {\r\n const [curSel, setCurSel] = useState(defaultIndex)\r\n\r\n useEffect(() => {\r\n onChange && onChange(options[curSel])\r\n }, [curSel])\r\n\r\n return (\r\n <RadioStyled width={width}>\r\n {label && <p>{label}</p>}\r\n\r\n <ul>\r\n {options.map((item, index) => {\r\n return <li\r\n key={index}\r\n onClick={() => {\r\n setCurSel(index)\r\n }}>\r\n <img src={curSel === index ? icon_radio_sel : icon_radio} alt=\"\" />\r\n <span>{item.name}</span>\r\n {item.append && curSel === index && item.append}\r\n </li>\r\n })}\r\n </ul>\r\n </RadioStyled>\r\n )\r\n}\r\n","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\components\\Table\\Input.jsx",["558","559","560","561","562","563","564"],"import React, { useEffect, useState } from 'react'\r\nimport { InputStyled, AmountStyled, TimeInputStyled } from './styled'\r\nimport { useIsSMDown } from '../../../hooks/themeHooks';\r\n\r\nexport const TextInput = ({ unit, upperCase, name, isNumber, isName, REG_rule, maxLength, disabled, defaultVal, placeholder, width, minHeight, marginTop, label, onChange, onValChange, onValueChange, isRequire = false, bottom }) => {\r\n const [val, setVal] = useState('')\r\n const [isError, setIsError] = useState(false)\r\n const [errMsg, setErrMsg] = useState('')\r\n const [sHeight, setSHeight] = useState('48px')\r\n const isSMDown = useIsSMDown();\r\n useEffect(() => {\r\n if (!defaultVal) return\r\n setVal(defaultVal)\r\n }, [defaultVal])\r\n\r\n useEffect(() => {\r\n if (String(val).trim() === '' && !isError) return\r\n onValueChange && onValueChange({\r\n name: name,\r\n value: val,\r\n isError: isError,\r\n errMsg: errMsg,\r\n isRequire: isRequire ? isRequire : false\r\n })\r\n\r\n\r\n if (isRequire && val === '') {\r\n onValChange && onValChange(null)\r\n } else {\r\n onValChange && onValChange(val)\r\n }\r\n\r\n }, [val, isError])\r\n\r\n const regMatch = (val) => {\r\n if (REG_rule) {\r\n const reg = new RegExp(REG_rule.reg)\r\n if (!reg.test(val)) {\r\n setErrMsg(REG_rule.msg)\r\n setIsError(true)\r\n } else {\r\n setErrMsg('')\r\n setIsError(false)\r\n }\r\n\r\n } else {\r\n setErrMsg('')\r\n setIsError(false)\r\n }\r\n\r\n\r\n }\r\n\r\n const wrapperName = (str) => {\r\n let reg = /[0-9]+/g;\r\n let str1 = str.replace(reg, \"\");\r\n // if (str1 === '') return ''\r\n let arr = str1.toLowerCase().split(\" \");\r\n for (var i = 0; i < arr.length; i++) {\r\n console.log('wrapperName',arr )\r\n // if (arr[i][0] !== ' '){\r\n arr[i] = arr[i][0].toUpperCase() + arr[i].substring(1, arr[i].length);\r\n // }\r\n }\r\n return arr.join(\" \");\r\n }\r\n\r\n const wrapperNumber = (str) => {\r\n let reg = /[a-zA-Z]+/g;\r\n let str1 = str.replace(reg, \"\");\r\n return str1\r\n }\r\n\r\n const wrapperUpperCase = (str) => {\r\n let reg = /[a-zA-Z]+/g;\r\n let str1 = str.replace(reg, (v) => {\r\n if (v === ' ') return\r\n return v.toUpperCase()\r\n });\r\n return str1\r\n }\r\n\r\n\r\n return (\r\n <InputStyled\r\n width={width}\r\n height={sHeight}\r\n marginTop={marginTop}\r\n >\r\n {label && <p>\r\n {label}\r\n {isRequire && <span className='require'>*</span>}\r\n </p>}\r\n\r\n <div className=\"input_area\">\r\n <textarea\r\n name={name}\r\n style={{ resize: 'none', height: sHeight, minHeight: minHeight, marginBottom: bottom }}\r\n className={`${val !== '' ? 'isComplete' : ''} ${isError ? 'Error' : ''}`}\r\n value={val}\r\n // height\r\n placeholder={placeholder}\r\n disabled={disabled}\r\n maxLength={maxLength || 30}\r\n onChange={(e) => {\r\n const height = e.target.scrollHeight\r\n if ((height - 1) + 'px' !== sHeight) {\r\n console.log((height - 1) + 'px')\r\n setSHeight((height - 1) + 'px')\r\n }\r\n\r\n let val = e.target.value\r\n // if (isName) {\r\n // // val = String(val).trim()\r\n // val = wrapperName(val)\r\n // }\r\n\r\n if (isNumber) {\r\n val = String(val).trim()\r\n val = wrapperNumber(val)\r\n }\r\n\r\n if (upperCase) {\r\n val = wrapperUpperCase(val)\r\n }\r\n regMatch(val)\r\n setVal(val)\r\n onChange && onChange(e)\r\n }}\r\n onBlur={(e) => {\r\n let val = e.target.value\r\n if (isRequire && String(e.target.value).trim() === '') {\r\n setIsError(true)\r\n setErrMsg('Please fill in this field')\r\n } else if (!isError) {\r\n setIsError(false)\r\n setErrMsg('')\r\n }\r\n }}\r\n ></textarea>\r\n\r\n {unit && <p className='unit'>{unit}</p>}\r\n </div>\r\n {isError && <p className=\"error_msg\">{errMsg}</p>}\r\n </InputStyled>\r\n )\r\n}\r\n\r\nexport const TimeInput = ({ label, width, marginTop, onChange, defaultVal }) => {\r\n const [days, setDays] = useState('')\r\n const [hours, setHours] = useState('')\r\n const [minutes, setMinutes] = useState('')\r\n const [isError, setIsError] = useState(false)\r\n\r\n useEffect(() => {\r\n if (days === '' && hours === '' && minutes === '') return\r\n const err = getSeconds(days, hours, minutes) < 60 * 5 ? true : false\r\n\r\n setIsError(err)\r\n\r\n const obj = {\r\n days: days === '' ? 0 : days,\r\n hours: hours === '' ? 0 : hours,\r\n minutes: minutes === '' ? 0 : minutes,\r\n seconds: getSeconds(days, hours, minutes),\r\n timestamp: getSeconds(days, hours, minutes) * 1000,\r\n isRequire: true,\r\n isError: err,\r\n value: String(getSeconds(days, hours, minutes))\r\n }\r\n\r\n\r\n onChange && onChange(obj)\r\n }, [days, hours, minutes])\r\n\r\n useEffect(() => {\r\n if (!defaultVal) return\r\n console.log(defaultVal)\r\n const day = parseInt(defaultVal / (24 * 60 * 60))\r\n const hour = parseInt((defaultVal / (60 * 60))) % 24\r\n const minute = parseInt(defaultVal / 60) % 60\r\n\r\n day && setDays(day)\r\n hour && setHours(hour)\r\n minute && setMinutes(minute)\r\n\r\n }, [])\r\n\r\n const getSeconds = (days = 0, hours = 0, minutes = 0) => {\r\n const s1 = days * 24 * 60 * 60\r\n const s2 = hours * 60 * 60\r\n const s3 = minutes * 60\r\n\r\n return s1 + s2 + s3\r\n }\r\n\r\n return <TimeInputStyled\r\n width={width}\r\n marginTop={marginTop}\r\n >\r\n {label && <p>\r\n {label}\r\n {<span className='require'>*</span>}\r\n </p>}\r\n\r\n <div className=\"input_box\">\r\n <input type=\"number\" name='Days' placeholder='Days' value={days} onChange={(e) => {\r\n let val = String(e.target.value).trim()\r\n val = parseFloat(val).toString()\r\n if (val !== 'NaN') {\r\n if (val > 6) {\r\n val = 6\r\n } else if (val < 1) {\r\n val = 0\r\n }\r\n setDays(val)\r\n } else {\r\n setDays(0)\r\n }\r\n }} />\r\n <input type=\"number\" name='Hours' placeholder='Hours' value={hours} onChange={(e) => {\r\n let val = String(e.target.value).trim()\r\n val = parseFloat(val).toString()\r\n if (val !== 'NaN') {\r\n if (val > 23) {\r\n val = 23\r\n } else if (val < 1) {\r\n val = 0\r\n }\r\n setHours(val)\r\n } else {\r\n setHours(0)\r\n }\r\n }} />\r\n <input type=\"number\" name='Minutes' placeholder='Minutes' value={minutes} onChange={(e) => {\r\n let val = String(e.target.value).trim()\r\n val = parseFloat(val).toString()\r\n if (val !== 'NaN') {\r\n if (val > 58) {\r\n val = 59\r\n } else if (val < 1) {\r\n val = 0\r\n }\r\n setMinutes(val)\r\n } else {\r\n setMinutes(0)\r\n }\r\n }} />\r\n </div>\r\n\r\n {isError && <p className=\"error_msg\">5 minutes minimum input</p>}\r\n </TimeInputStyled>\r\n}\r\n\r\nexport const AmountInput = ({ placeholder, width, defaultVal, onChange, maxValue }) => {\r\n const [inputVal, setInputVal] = useState(defaultVal || '')\r\n const [isError, setIsError] = useState(false)\r\n const [errMsg, setErrmsg] = useState('')\r\n\r\n useEffect(() => {\r\n onChange && onChange({\r\n isRequire: true,\r\n isError: isError,\r\n value: inputVal\r\n })\r\n }, [inputVal])\r\n\r\n return <AmountStyled\r\n width={width || '100px'}\r\n >\r\n <input\r\n type=\"number\"\r\n value={inputVal}\r\n className={isError ? 'error' : ''}\r\n placeholder={placeholder}\r\n onChange={(e) => {\r\n let val = e.target.value\r\n if (maxValue && parseFloat(val) > maxValue) {\r\n val = maxValue\r\n }\r\n setInputVal(val)\r\n }}\r\n\r\n onBlur={(e) => {\r\n const val = e.target.value\r\n if (String(val).trim() === '') {\r\n setIsError(true)\r\n setErrmsg('Please Enter')\r\n }\r\n }}\r\n />\r\n\r\n {isError && <p className='errMsg'>{errMsg}</p>}\r\n </AmountStyled>\r\n}","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\components\\Table\\Form.jsx",["565"],"import React, { useEffect } from 'react'\r\nimport { FormStyled } from './styled'\r\n\r\nexport const Form = ({ title, width, children, marginTop }) => {\r\n return (\r\n <FormStyled width={width} marginTop={marginTop}>\r\n {title && <h5>{title}</h5>}\r\n\r\n <div className=\"children\">\r\n {children}\r\n </div>\r\n </FormStyled>\r\n )\r\n}\r\n\r\n\r\n","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\components\\Table\\styled.js",[],"C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\ProjectList\\styled.js",[],"C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\CertifiedSales\\LearnMore\\styled.js",[],"C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\CertifiedSales\\Card.jsx",["566","567","568","569","570"],"import React, { useEffect, useState } from 'react'\r\nimport { useHistory } from 'react-router-dom'\r\nimport { CardStyled } from './styled'\r\nimport { TextInput } from '../components/Table'\r\nimport { Button } from '../components/Table'\r\nimport CardHeader from './CardHeader'\r\nimport Progress from './Progress'\r\nimport { Passage } from '../components/Exhibition'\r\nimport { getContract, useActiveWeb3React } from \"../../web3\";\r\nimport {\r\n TxModal,\r\n initStatus,\r\n errorStatus,\r\n successStatus,\r\n confirmStatus,\r\n pendingStatus,\r\n cancelStatus, successVotedStatus, successVoteClaimedStatus\r\n} from \"../../components/common/TXModal\";\r\nimport { AUCTION, BOT, BOUNCE_PRO_VOTING } from \"../../web3/address\";\r\nimport bounceERC20 from '../../web3/abi/bounceERC20.json'\r\nimport BounceProVoting from '../../web3/abi/BounceProVoting.json'\r\nimport { numToWei,weiToNum } from \"../../utils/numberTransform\";\r\nimport { ModalLayout } from \"../components/Modal/styled\";\r\nimport Support from \"../components/Modal/Support\";\r\nimport BigNumber from \"bignumber.js\";\r\nimport { getPoolLeftTime } from \"../../utils/time\";\r\nimport { useTokenBalance } from \"../../hooks/useBalance\";\r\nimport { useStatus } from \"./hooks\";\r\nimport API_HOST, { HOST } from \"../../config/request_api\";\r\nimport { useIsSMDown } from '../../utils/themeHooks';\r\n\r\nexport default function Card({ status, poolId = 0, progress, claimFun, isVote, pool }) {\r\n // console.log('P_console', pool)\r\n const [isSupport, setIsSupport] = useState(false)\r\n const [supporting, setSupporting] = useState(false)\r\n const { balance } = useTokenBalance()\r\n const [bidStatus, setBidStatus] = useState(initStatus)\r\n // const { dispatch } = useContext(myContext)\r\n const history = useHistory()\r\n const { account, library, chainId, active } = useActiveWeb3React()\r\n const [value, setValue] = useState()\r\n const isXSDown = useIsSMDown();\r\n const { myVotes, myVotesClaimed } = useStatus(pool.id)\r\n // console.log('myVotesClaimed--->', myVotesClaimed)\r\n const [left, setLeft] = useState({\r\n days: 0,\r\n hours: 0,\r\n minutes: 0,\r\n seconds: 0\r\n })\r\n\r\n let timer\r\n useEffect(() => {\r\n console.log('pool left', isVote, pool.status, pool.openAt)\r\n if (pool) {\r\n timer = setInterval(() => {\r\n const left = getPoolLeftTime(!isVote && status === 'Upcoming' ? pool.openAt : pool.closeAt)\r\n setLeft(left)\r\n }, 1000)\r\n return () => {\r\n clearInterval(timer)\r\n }\r\n }\r\n }, [pool])\r\n\r\n\r\n const onVote = async () => {\r\n setSupporting(false)\r\n const tokenContract = getContract(library, bounceERC20.abi, AUCTION(chainId))\r\n const bounceContract = getContract(library, BounceProVoting.abi, BOUNCE_PRO_VOTING(chainId))\r\n const weiAmount = numToWei(value);\r\n\r\n setBidStatus(confirmStatus);\r\n try {\r\n await tokenContract.methods.approve(\r\n BOUNCE_PRO_VOTING(chainId),\r\n weiAmount,\r\n )\r\n .send({ from: account });\r\n bounceContract.methods.vote(pool.id, weiAmount)\r\n .send({ from: account })\r\n .on('transactionHash', hash => {\r\n setBidStatus(pendingStatus)\r\n })\r\n .on('receipt', (_, receipt) => {\r\n console.log('bid fixed swap receipt:', receipt)\r\n setBidStatus(successVotedStatus)\r\n })\r\n .on('error', (err, receipt) => {\r\n setBidStatus(errorStatus)\r\n })\r\n } catch (e) {\r\n console.log('bid---->', e)\r\n if (e.code === 4001) {\r\n setBidStatus(cancelStatus)\r\n } else {\r\n setBidStatus(errorStatus)\r\n }\r\n }\r\n\r\n }\r\n\r\n const onCliam = async () => {\r\n setSupporting(false)\r\n const bounceContract = getContract(library, BounceProVoting.abi, BOUNCE_PRO_VOTING(chainId))\r\n setBidStatus(confirmStatus);\r\n try {\r\n bounceContract.methods.claim(pool.id)\r\n .send({ from: account })\r\n .on('transactionHash', hash => {\r\n setBidStatus(pendingStatus)\r\n })\r\n .on('receipt', (_, receipt) => {\r\n console.log('bid fixed swap receipt:', receipt)\r\n setBidStatus(successVoteClaimedStatus)\r\n })\r\n .on('error', (err, receipt) => {\r\n setBidStatus(errorStatus)\r\n })\r\n } catch (e) {\r\n console.log('bid---->', e)\r\n if (e.code === 4001) {\r\n setBidStatus(cancelStatus)\r\n } else {\r\n setBidStatus(errorStatus)\r\n }\r\n }\r\n\r\n }\r\n\r\n\r\n const renderStatus = (status) => {\r\n switch (status) {\r\n case 'Active':\r\n return !isVote && <span className='Active'>Active Sales</span>\r\n\r\n case 'Upcoming':\r\n return <span className='Upcoming'>Upcoming Sales</span>\r\n\r\n case 'Past':\r\n return <span className='Past'>Past Sales</span>\r\n default:\r\n return <></>\r\n }\r\n }\r\n\r\n const renderButton = (status) => {\r\n switch (status) {\r\n case 'Active':\r\n return <>\r\n {isVote && (\r\n <>\r\n <Button type='white' value='Learn More' width={isXSDown ? \"100%\" : \"168px\"} onClick={() => {\r\n // window.localStorage.setItem('ca')\r\n history.push(`/learn-more/${pool.id}`)\r\n }} />\r\n <Button type='black' value='Support' width={isXSDown ? \"100%\" : \"168px\"} onClick={() => {\r\n setIsSupport(true)\r\n }} />\r\n </>\r\n )}\r\n\r\n {!isVote && (\r\n <>\r\n <Button type='white' value='Learn More' width={isXSDown ? \"100%\" : \"168px\"} onClick={() => {\r\n history.push(`/learn-more/${pool.id}`)\r\n }} />\r\n <Button type='black' value='Join Auction' width={isXSDown ? \"100%\" : \"168px\"} onClick={() => {\r\n setIsSupport(true)\r\n }} />\r\n </>\r\n )}\r\n\r\n </>\r\n\r\n case 'Upcoming':\r\n return <>\r\n <Button type='white' value='Learn More' width={isXSDown ? \"100%\" : \"168px\"} onClick={() => {\r\n\r\n history.push(`/learn-more/${pool.id}`)\r\n }} />\r\n </>\r\n\r\n case 'Past':\r\n return <>\r\n <Button type='black' value='Visit Project' width={isXSDown ? \"100%\" : \"168px\"} onClick={() => {\r\n history.push(`/certified-sales/${pool.id}`)\r\n }} />\r\n </>\r\n\r\n case 'proList-Active':\r\n return <>\r\n <Button type='white' value='Learn More' width={isXSDown ? \"100%\" : \"168px\"} onClick={() => {\r\n history.push(`/learn-more/${pool.id}`)\r\n }} />\r\n <Button type='black' value='Support' width={isXSDown ? \"100%\" : \"168px\"} onClick={() => {\r\n window.localStorage.setItem('crumbs_index', JSON.stringify({\r\n name: 'Voting Board',\r\n route: '/project-voting-board/active'\r\n }))\r\n setIsSupport(true)\r\n }} />\r\n </>\r\n\r\n case 'Success':\r\n case 'Failed':\r\n return <>\r\n <Button type='white' value='Visit Project' width={isXSDown ? \"100%\" : \"168px\"} onClick={() => {\r\n window.localStorage.setItem('crumbs_index', JSON.stringify({\r\n name: 'Voting Board',\r\n route: '/project-voting-board/close'\r\n }))\r\n history.push(`/learn-more/${pool.id}`)\r\n }} />\r\n {new BigNumber(myVotes).isGreaterThan('0') && !myVotesClaimed && <Button type='black' value='Claim support tokens back' width='240px' onClick={() => {\r\n // history.push(`/certified-sales/${pool.id}`)\r\n onCliam()\r\n }} />}\r\n </>\r\n\r\n default:\r\n return <></>\r\n }\r\n }\r\n\r\n return (\r\n <CardStyled>\r\n <div className=\"status\">\r\n {renderStatus(pool.status)}\r\n {/* <span>Active Sales</span> */}\r\n </div>\r\n <div className=\"main\">\r\n {pool.proInfo && <CardHeader title={pool && pool.proInfo && pool.proInfo.proname} logo={pool.proInfo.prologourl.startsWith('https://')? pool.proInfo.prologourl :HOST + '/' + pool.proInfo.prologourl} socialLink={[\r\n { name: 'facebook', link: pool.proInfo.fackbook },\r\n { name: 'telegram', link: pool.proInfo.telegram },\r\n { name: 'twitter', link: pool.proInfo.twitter },\r\n { name: 'github', link: pool.proInfo.githublink },\r\n { name: 'medium', link: pool.proInfo.medium }\r\n ]} />}\r\n\r\n <div className=\"middle\">\r\n <div className=\"left\">\r\n {isVote && myVotes && new BigNumber(myVotes).isGreaterThan('0') && <span className='vote'>You Voted</span>}\r\n <Passage\r\n title='Project details'\r\n desc={pool.proInfo.prosummary} />\r\n\r\n <a href={pool.proInfo.prowebsite}>{pool.proInfo.prowebsite}</a>\r\n\r\n <Passage\r\n title='Time Left'\r\n desc={status === 'proList-Close' ?\r\n `${0} d : ${0} h : ${0} m : ${0} s` :\r\n `${left.days} d : ${left.hours} h : ${left.minutes} m : ${left.seconds} s`} />\r\n\r\n {parseInt(pool.closeAt) < 1614336400 ? (progress && <Progress\r\n width={isXSDown ? '100%' : '480px'}\r\n status={pool.status}\r\n plan={new BigNumber(weiToNum(pool.totalVotes)).dividedBy('300')}\r\n value={`${weiToNum(pool.totalVotes)} BOT`}\r\n total={progress.total}\r\n />) : (progress && <Progress\r\n width={isXSDown ? '100%' : '480px'}\r\n status={pool.status}\r\n plan={new BigNumber(weiToNum(pool.totalVotes)).dividedBy('30000')}\r\n value={`${weiToNum(pool.totalVotes)} Auction`}\r\n total={progress.total}\r\n />)}\r\n\r\n\r\n {isSupport && status !== 'proList-Close' && <div className='support'>\r\n <TextInput onValChange={(value) => {\r\n // console.log('value', value)\r\n setValue(value)\r\n }} placeholder={`Enter your vote amount (${weiToNum(balance)} Auction)`} width='100%' bottom={'10px'} />\r\n <Button disabled={new BigNumber(numToWei(value)).isGreaterThan(balance)} type='black'\r\n value={new BigNumber(numToWei(value)).isGreaterThan(balance) ? `Insufficient Auction` : 'Support'}\r\n width={isXSDown ? \"100%\" : \"180px\"} onClick={() => {\r\n setSupporting(true)\r\n }} />\r\n <Button type='white' value='Back' width={isXSDown ? \"100%\" : \"180px\"} onClick={() => {\r\n setIsSupport(false)\r\n }} />\r\n </div>}\r\n </div>\r\n\r\n <div className=\"right\">\r\n <Passage\r\n title='Auction Type'\r\n desc={pool.proInfo.auctiontype} />\r\n\r\n <Passage\r\n title='Participant'\r\n desc={`\r\n ${(pool.botHolder && !pool.proInfo.ifwhitelist) ? 'AUCTION holder' : ''}\r\n ${(!pool.botHolder && pool.proInfo.ifwhitelist) ? 'Whitelisting' : ''}\r\n ${(pool.botHolder && pool.proInfo.ifwhitelist) ? 'AUCTION holder , Whitelisting' : ''}\r\n ${(!pool.botHolder && !pool.proInfo.ifwhitelist) ? 'Public' : ''}\r\n `\r\n } />\r\n\r\n <Passage\r\n title='Requirement'\r\n desc={(pool.proInfo.ifkyc === 0 && pool.proInfo.ifwhitelist === 0) ? 'None' : `${pool.proInfo.ifkyc === 1 ? 'KYC' : ''}`} />\r\n </div>\r\n </div>\r\n\r\n {!isSupport && <div className=\"bottom\">\r\n {renderButton(pool.status)}\r\n </div>}\r\n </div>\r\n\r\n <TxModal modalStatus={bidStatus} onDismiss={() => {\r\n setBidStatus(initStatus)\r\n }} />\r\n\r\n {supporting && (\r\n <ModalLayout className='layout' onClick={(e) => {\r\n e.stopPropagation()\r\n }}>\r\n <Support onConfirm={onVote} cancel={() => setSupporting(false)} amount={value} />\r\n </ModalLayout>\r\n )}\r\n </CardStyled>\r\n )\r\n}\r\n","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\CertifiedSales\\LearnMore\\InfoBox.jsx",[],"C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\components\\Modal\\Support.jsx",[],"C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\CertifiedSales\\Progress.jsx",[],"C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\CertifiedSales\\CardHeader.jsx",["571"],"import React from 'react'\r\nimport { CardHeaderStyled } from './styled'\r\n\r\nimport facebook from '../../assets/icons/facebook.svg'\r\nimport telegram from '../../assets/icons/telegram.svg'\r\nimport twitter from '../../assets/icons/twitter.svg'\r\nimport github from '../../assets/icons/github.svg'\r\nimport medium from '../../assets/icons/medium.svg'\r\nimport {useIsSMDown} from '../../utils/themeHooks';\r\n\r\nconst iconMap = {\r\n facebook, telegram, twitter, github, medium\r\n}\r\n\r\nexport default function CardHeader({ title = 'Untitled', socialLink = [], logo }) {\r\n const isXSDown = useIsSMDown();\r\n // console.log(logo)\r\n // console.log(logo)\r\n return (\r\n <CardHeaderStyled>\r\n <div className=\"title\">\r\n <img src={logo} className='head_img'></img>\r\n <h2>{title}</h2>\r\n </div>\r\n {!isXSDown && \r\n <ul>\r\n {socialLink.filter(item => { return (item.link && item.link !== '') }).map((item, index) => {\r\n return <li key={index}>\r\n <a href={item.link} key={index}>\r\n <img src={iconMap[item.name]} alt=\"\" />\r\n </a>\r\n </li>\r\n })}\r\n </ul>\r\n }\r\n </CardHeaderStyled>\r\n )\r\n}\r\n","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\components\\Exhibition\\Crumbs.jsx",[],"C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\components\\Exhibition\\index.jsx",[],"C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\Home\\styled.js",[],"C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\utils\\time.js",[],"C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\CertifiedSales\\styled.js",[],"C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\components\\Exhibition\\styled.js",[],"C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\Kyc\\styled.js",[],"C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\PersonalInfo\\styled.js",[],"C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\Kyc\\Step3.jsx",["572","573","574","575","576"],"import React, { useState, useEffect, useContext } from 'react'\r\nimport { useHistory } from 'react-router-dom'\r\nimport { TextInput, Form, Button, Upload } from '../components/Table'\r\nimport axios from 'axios'\r\nimport { useWeb3React } from '@web3-react/core'\r\nimport API_HOST from '../../config/request_api'\r\nimport { myContext } from '../../redux'\r\nimport { BOUNCE_PRO } from \"../../web3/address\";\r\nimport icon_plaint from '../../assets/images/plaint.svg'\r\nimport useAxios from '../../hooks/useAxios'\r\nimport { getContract } from \"../../web3\";\r\nimport BouncePro from \"../../web3/abi/BouncePro.json\";\r\nimport {\r\n cancelStatus,\r\n confirmStatus,\r\n errorStatus,\r\n initStatus,\r\n pendingStatus,\r\n successVotedStatus,\r\n TxModal\r\n} from \"../../components/common/TXModal\";\r\nimport { useIsSMDown } from '../../utils/themeHooks';\r\n\r\nexport default function Step3({ curStep, setCurStep, ReqData, setReqData }) {\r\n const { sign_Axios } = useAxios()\r\n const history = useHistory()\r\n const { dispatch } = useContext(myContext)\r\n const { active, account, library, chainId } = useWeb3React()\r\n const [data, setData] = useState({})\r\n const [isNext, setIsNext] = useState(false)\r\n const [bidStatus, setBidStatus] = useState(initStatus)\r\n\r\n const isXSDown = useIsSMDown();\r\n useEffect(() => {\r\n console.log(data, isNext)\r\n const requiredList = ['idcardno', 'idcardfronturl', 'idcardbackurl']\r\n const data_2 = requiredList.filter(item => {\r\n if (!data[item]) {\r\n return item\r\n }\r\n })\r\n\r\n if (data_2.length === 0) {\r\n setReqData(data)\r\n return setIsNext(true)\r\n } else {\r\n return setIsNext(false)\r\n }\r\n }, [data])\r\n\r\n const handelValChange = (key, val, required = false) => {\r\n const data_2 = data\r\n if (required && val === '') {\r\n data_2[key] = null\r\n } else {\r\n data_2[key] = val || ''\r\n }\r\n setData({ ...ReqData, ...data_2 })\r\n }\r\n\r\n\r\n const handelSubmit = async () => {\r\n\r\n // accountaddress: \"0x2d3fff58da3346dce601f6db8eec57906cdb17be\"\r\n // bounceid: 14560289\r\n // emailaddr: \"\"\r\n // id: 291\r\n // ifincontract: 0\r\n // signaturestr: \"0x88a0f3de78661d47e281c6f3c0670d24a2b74588d6bd69be5c187b847336182467a7df36c76c612006524a42887cc31f1537ad6dcc4367fb711ca712f4e775ab1b\"\r\n // status: 1\r\n // username: \"Eqw\"\r\n\r\n\r\n\r\n ReqData.bounceid = 0\r\n\r\n ReqData.accountaddress = account\r\n ReqData.status = 1\r\n // const web3 = new Web3(library.provider);\r\n // const sign = await web3.eth.personal.sign('Welcome to Bounce!', account)\r\n // console.log('sign', sign)\r\n sign_Axios.post(API_HOST.sign_addKYC, ReqData).then(res => {\r\n if (res.status === 200 && res.data.code === 1) {\r\n const signaturestr = res.data.data.signaturestr\r\n\r\n const BouncePro_CT = getContract(library, BouncePro.abi, BOUNCE_PRO(chainId))\r\n setBidStatus(confirmStatus);\r\n try {\r\n BouncePro_CT.methods.registerKyc(signaturestr).send({ from: account })\r\n .on('transactionHash', hash => {\r\n setBidStatus(pendingStatus)\r\n })\r\n .on('receipt', async (_, receipt) => {\r\n console.log('bid fixed swap receipt:', receipt)\r\n // setBidStatus(successVotedStatus)\r\n const params_2 = {\r\n ...res.data.data,\r\n ifincontract: 1\r\n }\r\n const res_2 = await sign_Axios.post(API_HOST.sign_KYC, params_2)\r\n if (res_2.status === 200 && res_2.data.code === 1) {\r\n dispatch({\r\n type: 'MODAL',\r\n value: {\r\n name: 'CONFIRM',\r\n title: 'Congratulations!',\r\n deputy: 'You have successfully passed the KYC and you name is blue marked in your account',\r\n confirm: {\r\n text: 'Confirm',\r\n callback: () => {\r\n dispatch({\r\n type: 'MODAL',\r\n value: null\r\n })\r\n window.location.href = '/'\r\n // window.location.reload()\r\n }\r\n }\r\n }\r\n })\r\n } else {\r\n dispatch({\r\n type: 'MODAL',\r\n value: {\r\n name: 'CONFIRM',\r\n title: 'ERROR MESSAGE',\r\n deputy: res_2.data.msg,\r\n confirm: {\r\n text: 'Confirm',\r\n callback: () => {\r\n dispatch({\r\n type: 'MODAL',\r\n value: null\r\n })\r\n window.location.href = '/'\r\n // window.location.reload()\r\n }\r\n }\r\n }\r\n })\r\n }\r\n\r\n })\r\n .on('error', (err, receipt) => {\r\n setBidStatus(errorStatus)\r\n })\r\n } catch (error) {\r\n if (error.code === 4001) {\r\n setBidStatus(cancelStatus)\r\n } else {\r\n setBidStatus(errorStatus)\r\n }\r\n }\r\n }else if(res.status === 200 && res.data.code !== -1){\r\n dispatch({\r\n type: 'MODAL',\r\n value: {\r\n name: 'CONFIRM',\r\n title: 'Warning!',\r\n deputy: `code: ${res.data.code} msg: ${res.data.msg}`,\r\n confirm: {\r\n text: 'Confirm',\r\n callback: () => {\r\n dispatch({\r\n type: 'MODAL',\r\n value: null\r\n })\r\n window.location.href = '/'\r\n // window.location.reload()\r\n }\r\n }\r\n }\r\n })\r\n }\r\n }).catch(err => {\r\n console.log(err)\r\n })\r\n }\r\n\r\n return (\r\n <>\r\n <Form title={'ID confirmation'} marginTop='24px'>\r\n <div className=\"tip\" style={{\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n marginTop: 8\r\n }}>\r\n <img src={icon_plaint} alt=\"\" />\r\n <p style={{\r\n fontSize: 12,\r\n marginLeft: 6\r\n }}>This information is used to identity verification only, and will be kept secure by Bounce</p>\r\n </div>\r\n\r\n <TextInput\r\n label='Passport Number'\r\n placeholder='Enter your passport number'\r\n isRequire={true}\r\n onValueChange={(data) => {\r\n handelValChange('idcardno', data.value)\r\n console.log(data)\r\n }} />\r\n <Upload\r\n title='Passport photo'\r\n name='idcardfronturl'\r\n desc='Please upload passport photo of page with ID number '\r\n successCallBack={(path) => {\r\n handelValChange('idcardfronturl', path || null)\r\n }} />\r\n <Upload\r\n title='Selfie'\r\n name='idcardbackurl'\r\n desc='Please upload a photo of yourself to match with passport '\r\n successCallBack={(path) => {\r\n handelValChange('idcardbackurl', path || null)\r\n }} />\r\n <div className=\"btn_group\">\r\n <Button type='white' value='Back' width={isXSDown ? '100%' : '164px'} onClick={() => {\r\n setCurStep(curStep - 1)\r\n }} />\r\n <Button type='black' style={{ marginTop: 20 }} value='Verify' width={isXSDown ? '100%' : '164px'} disabled={!isNext || !active} onClick={handelSubmit} />\r\n </div>\r\n </Form>\r\n <TxModal modalStatus={bidStatus} onDismiss={() => {\r\n setBidStatus(initStatus)\r\n }} />\r\n </>\r\n )\r\n}\r\n","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\Kyc\\Step2.jsx",["577"],"import React, { useState, useEffect } from 'react'\r\nimport { TextInput, Form, Button, Select } from '../components/Table'\r\nimport country from '../../config/country.json'\r\nimport {useIsSMDown} from '../../utils/themeHooks';\r\n\r\nexport default function Step2({ curStep, setCurStep, ReqData, setReqData }) {\r\n\r\n const [isNext, setIsNext] = useState(false)\r\n const isXSDown = useIsSMDown();\r\n const requiredList = ['1_residentialaddr', '2_countryother']\r\n const requiredList_json = requiredList\r\n .sort((a1, a2) => {\r\n return parseInt(a1) - parseInt(a2)\r\n }).toString()\r\n const [checkList, setCheckList] = useState([])\r\n\r\n useEffect(() => {\r\n const checkList_json = checkList.sort((a1, a2) => {\r\n return parseInt(a1) - parseInt(a2)\r\n }).toString()\r\n\r\n console.log(checkList_json, requiredList_json)\r\n\r\n if (checkList_json === requiredList_json) {\r\n setIsNext(true)\r\n } else {\r\n setIsNext(false)\r\n }\r\n }, [checkList])\r\n\r\n const handelValChange = (key, val) => {\r\n const data = { ...ReqData }\r\n data[key] = val\r\n setReqData(data)\r\n }\r\n\r\n const checkValue = (data) => {\r\n if (!data) return\r\n if (data.isRequire) {\r\n const arrList = [...checkList]\r\n if (!data.isError && data.value !== '') {\r\n if (!arrList.includes(data.name)) {\r\n arrList.push(data.name)\r\n }\r\n } else {\r\n if (arrList.includes(data.name)) {\r\n const index = arrList.indexOf(data.name)\r\n arrList.splice(index, 1)\r\n }\r\n }\r\n setCheckList(arrList)\r\n }\r\n }\r\n\r\n return (\r\n <Form title={'Residental Address'}>\r\n {/* <TextInput label='Country / Region' onValChange={(val) => {\r\n handelValChange('country', val)\r\n }} /> */}\r\n <Select\r\n label='Country / Region'\r\n width={isXSDown?'100%':'600px'}\r\n options={country}\r\n isRequire={true}\r\n // defaultVal={{\r\n // name: 'Andorra'\r\n // }}\r\n onChange={(val) => {\r\n handelValChange('country', val.name)\r\n }}\r\n\r\n />\r\n\r\n\r\n <TextInput\r\n label='Address'\r\n placeholder='Enter your Address'\r\n name='1_residentialaddr'\r\n defaultVal={ReqData && ReqData.residentialaddr}\r\n onValueChange={(data) => {\r\n checkValue(data)\r\n handelValChange('residentialaddr', data.value)\r\n }}\r\n isRequire={true}\r\n // REG_rule={[{\r\n // reg: /[\\w!#$%&'*+/=?^_`{|}~-]+(?:\\.[\\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\\w](?:[\\w-]*[\\w])?\\.)+[\\w](?:[\\w-]*[\\w])?/,\r\n // msg: 'The residential address is incorrect'\r\n // }]}\r\n />\r\n <TextInput\r\n label='Postal Code'\r\n placeholder='Enter your Postal Code'\r\n width={isXSDown?'100%':'294px'}\r\n name='idtype'\r\n defaultVal={ReqData && ReqData.idtype}\r\n onValueChange={(data) => {\r\n checkValue(data)\r\n handelValChange('idtype', data.value)\r\n }}\r\n />\r\n <TextInput\r\n label='City'\r\n placeholder='Enter your city'\r\n width={isXSDown?'100%':'294px'}\r\n isRequire={true}\r\n name='2_countryother'\r\n defaultVal={ReqData && ReqData.countryother}\r\n onValueChange={(data) => {\r\n checkValue(data)\r\n handelValChange('countryother', data.value)\r\n }}\r\n />\r\n\r\n <div className=\"btn_group\">\r\n <Button type='white' value='Back' width={isXSDown?'100%':'164px'} onClick={() => {\r\n setCurStep(curStep - 1)\r\n }} />\r\n <Button type='black' value='Next Step' style={{ marginTop: 20}} width={isXSDown?'100%':'164px'} disabled={!isNext} onClick={() => {\r\n setCurStep(curStep + 1)\r\n }} />\r\n </div>\r\n </Form>\r\n )\r\n}\r\n","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\Kyc\\Step1.jsx",["578","579","580"],"import React, { useState, useEffect } from 'react'\r\nimport { useHistory } from 'react-router-dom'\r\nimport { TextInput, Form, Button } from '../components/Table'\r\nimport {useIsSMDown} from '../../utils/themeHooks';\r\n\r\nexport default function Step1({ curStep, setCurStep, ReqData, setReqData }) {\r\n const history = useHistory()\r\n const [isNext, setIsNext] = useState(false)\r\n const isXSDown = useIsSMDown();\r\n const requiredList = ['1_username', '3_lastname', '4_birthday']\r\n const requiredList_json = requiredList\r\n .sort((a1, a2) => {\r\n return parseInt(a1) - parseInt(a2)\r\n }).toString()\r\n const [checkList, setCheckList] = useState([])\r\n\r\n\r\n useEffect(() => {\r\n const checkList_json = checkList.sort((a1, a2) => {\r\n return parseInt(a1) - parseInt(a2)\r\n }).toString()\r\n\r\n if (checkList_json === requiredList_json) {\r\n setIsNext(true)\r\n } else {\r\n setIsNext(false)\r\n }\r\n }, [checkList])\r\n\r\n const handelValChange = (key, val) => {\r\n const data = { ...ReqData }\r\n data[key] = val\r\n setReqData(data)\r\n }\r\n\r\n const checkValue = (data) => {\r\n if (!data) return\r\n if (data.isRequire) {\r\n const arrList = [...checkList]\r\n if (!data.isError && data.value !== '') {\r\n if (!arrList.includes(data.name)) {\r\n arrList.push(data.name)\r\n }\r\n } else {\r\n if (arrList.includes(data.name)) {\r\n const index = arrList.indexOf(data.name)\r\n arrList.splice(index, 1)\r\n }\r\n }\r\n setCheckList(arrList)\r\n }\r\n }\r\n\r\n\r\n return (\r\n <Form title={'Basic Info'}>\r\n <TextInput\r\n label='First Name'\r\n width={isXSDown?'100%':'294px'}\r\n placeholder='Enter first name'\r\n name='1_username'\r\n defaultVal={ReqData && ReqData.username}\r\n onValueChange={(data) => {\r\n checkValue(data)\r\n handelValChange('username', data.value)\r\n }}\r\n isRequire={true}\r\n isName={true}\r\n />\r\n <TextInput\r\n label='Middle Name (if applicable)'\r\n width={isXSDown?'100%':'294px'}\r\n placeholder='Enter middle name'\r\n name='2_middlename'\r\n defaultVal={ReqData && ReqData.middlename}\r\n onValueChange={(data) => {\r\n checkValue(data)\r\n handelValChange('middlename', data.value)\r\n }}\r\n isName={true}\r\n />\r\n <TextInput\r\n label='Last Name'\r\n placeholder='Enter last name'\r\n name='3_lastname'\r\n defaultVal={ReqData && ReqData.lastname}\r\n onValueChange={(data) => {\r\n checkValue(data)\r\n handelValChange('lastname', data.value)\r\n }}\r\n isRequire={true}\r\n isName={true}\r\n />\r\n\r\n\r\n <TextInput\r\n label='Date of Birth'\r\n placeholder='2021-1-1'\r\n name='4_birthday'\r\n isRequire={true}\r\n defaultVal={ReqData && ReqData.birthday}\r\n onValueChange={(data) => {\r\n checkValue(data)\r\n handelValChange('birthday', data.value)\r\n }}\r\n REG_rule={{\r\n reg: /^((19[2-9]\\d{1})|(20((0[0-2])|(1[0-8]))))\\-((0?[1-9])|(1[0-2]))\\-((0?[1-9])|([1-2][0-9])|30|31)$/,\r\n msg: 'Incorrect birth date format (yyyy-mm-dd) Or under the age of 18'\r\n }}\r\n />\r\n\r\n <div className=\"btn_group\">\r\n <Button type='white' value='Cancel' width={isXSDown?'100%':'164px'} onClick={() => {\r\n history.goBack(-1)\r\n }} />\r\n <Button type='black' value='Next Step' style={{ marginTop: 20}} width={isXSDown?'100%':'164px'} disabled={!isNext} onClick={() => {\r\n setCurStep(curStep + 1)\r\n }} />\r\n </div>\r\n </Form>\r\n )\r\n}","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\components\\common\\DetailCover.js",[],"C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\components\\Modal\\KYC_TIP.jsx",["581"],"import React from 'react'\r\nimport { Kyc_Tip_Styled } from './styled'\r\nimport cancel_img from '../../../assets/images/cancel.svg'\r\nimport { Button } from '../../components/Table'\r\n\r\nexport default function KYC_TIP ({ cancel, confirm }) {\r\n return (\r\n <Kyc_Tip_Styled>\r\n <div className=\"top\">\r\n <h1 className=\"title\">Warning!</h1>\r\n <img src={cancel_img} alt=\"\" onClick={cancel} />\r\n </div>\r\n <div className=\"main\">\r\n <h5><span>Please note.</span>The sale is only open to non-U.S. persons and entities.\r\n All registrants must meet eligibility requirements to participate.</h5>\r\n\r\n <p className='min_tip'>The sale is not and will not be offered or sold, directly or indirectly, to any person who is a resident, organized, or located in any country or territory subject to OFAC comprehensive sanctions programs from time to time, including Cuba, Crimea region of Ukrain, Democratic people’s Republic of Korea, Iran, Syria, any person found on the OFAC specially designated nationals, blocked persons list, any other consolidated prohibited persons list as determined by any applicable governmental authority.</p>\r\n\r\n </div>\r\n <div className=\"bottom\">\r\n <Button type='white' value='Not Now' width='124px' onClick={cancel} />\r\n <Button type='black' value='Confirm' width='124px' onClick={confirm && confirm.callback} />\r\n </div>\r\n </Kyc_Tip_Styled>\r\n )\r\n}\r\n","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\CertifiedSales\\SaleCard.jsx",["582","583"],"import React, { useEffect, useState } from 'react'\r\nimport { useHistory } from 'react-router-dom'\r\nimport { CardStyled } from './styled'\r\nimport { Button } from '../components/Table'\r\nimport CardHeader from './CardHeader'\r\nimport { Passage } from '../components/Exhibition'\r\nimport {\r\n TxModal,\r\n initStatus,\r\n} from \"../../components/common/TXModal\";\r\nimport { getPoolLeftTime } from \"../../utils/time\";\r\nimport { HOST } from \"../../config/request_api\";\r\nimport InfoBox from './LearnMore/InfoBox'\r\nimport BigNumber from \"bignumber.js\";\r\nimport { useIsSMDown } from '../../utils/themeHooks';\r\nimport { useActiveWeb3React } from \"../../web3\";\r\n\r\nexport default function SalesCard ({ status, isVote, pool = {} }) {\r\n const [bidStatus, setBidStatus] = useState(initStatus)\r\n const { chainId } = useActiveWeb3React()\r\n // const { dispatch } = useContext(myContext)\r\n const history = useHistory()\r\n const [isShowInfoBox, setIsShowInfoBox] = useState(false)\r\n const isXSDown = useIsSMDown();\r\n // console.log('myVotesClaimed--->', myVotesClaimed)\r\n const [left, setLeft] = useState({\r\n days: 0,\r\n hours: 0,\r\n minutes: 0,\r\n seconds: 0\r\n })\r\n\r\n let timer\r\n useEffect(() => {\r\n // console.log('pool left', pool)\r\n if (pool) {\r\n timer = setInterval(() => {\r\n const left = getPoolLeftTime(!isVote && status === 'Upcoming' ? pool.openAt : pool.closeAt)\r\n setLeft(left)\r\n }, 1000)\r\n return () => {\r\n clearInterval(timer)\r\n }\r\n }\r\n }, [pool])\r\n\r\n\r\n return (\r\n <CardStyled>\r\n <div className=\"main\">\r\n {pool.proInfo && pool.proInfo &&\r\n <CardHeader title={pool && pool.proInfo && pool.proInfo && pool.proInfo && pool.proInfo.proname}\r\n logo={pool.proInfo &&pool.proInfo.prologourl&& pool.proInfo.prologourl.startsWith('https://') ? pool.proInfo.prologourl : HOST + '/' + pool.proInfo.prologourl}\r\n socialLink={[\r\n { name: 'facebook', link: pool.proInfo && pool.proInfo.fackbook },\r\n { name: 'telegram', link: pool.proInfo && pool.proInfo.telegram },\r\n { name: 'twitter', link: pool.proInfo && pool.proInfo.twitter },\r\n { name: 'github', link: pool.proInfo && pool.proInfo.githublink },\r\n { name: 'medium', link: pool.proInfo && pool.proInfo.medium }\r\n ]} />}\r\n\r\n <div className=\"middle\">\r\n <div className=\"left\">\r\n {pool.status === 'Failed' && pool.joined && <span className='vote'>You participated</span>}\r\n <Passage\r\n title='Project details'\r\n desc={pool.proInfo && pool.proInfo.prosummary} />\r\n\r\n <a href={pool.proInfo && pool.proInfo.prowebsite}>{pool.proInfo && pool.proInfo.prowebsite}</a>\r\n\r\n {pool.status === 'Active' && (\r\n <Passage\r\n title={'Time left'}\r\n desc={`${left.days}d : ${left.hours}h : ${left.minutes}m : ${left.seconds}s`} />\r\n )}\r\n\r\n {pool.status === 'Upcoming' && !pool.notReady && (\r\n <Passage\r\n title={'Auction will start in'}\r\n desc={`${left.days}d : ${left.hours}h : ${left.minutes}m : ${left.seconds}s`} />\r\n )}\r\n\r\n {pool.status === 'Upcoming' && pool.notReady && (\r\n <Passage\r\n title={'Auction will start in'}\r\n desc={`${pool.time}`} />\r\n )}\r\n\r\n {/* {pool.status === 'Upcoming' && (\r\n <Passage\r\n title={'date'}\r\n desc={`Feb 5th 2021`} />\r\n )} */}\r\n\r\n\r\n <div className=\"active_btn\">\r\n <Button type='white' value='Learn More' width={isXSDown ? '100%' : '180px'} onClick={() => {\r\n setIsShowInfoBox(!isShowInfoBox)\r\n }} />\r\n\r\n {pool.status === 'Active' && (\r\n // {pool.status === 'Upcoming' && (\r\n <Button disabled={pool.enableKycList && !pool.inKYC} type='black'\r\n value={pool.chainId !== chainId ?\r\n (pool.chainId === 56 ? 'Switch to BSC' : pool.chainId === 128 ? 'Switch to HECO' : 'Switch to ETH') :\r\n (pool.enableKycList && !pool.inKYC ? 'KYC is missing' : 'Join Auction')\r\n }\r\n width={isXSDown ? '100%' : '180px'}\r\n onClick={() => {\r\n if (pool.type === 'FIXED_SWAP') {\r\n if (pool.chainId === 56) {\r\n history.push(`/bsc/fixed-swap/${pool.id}`)\r\n } else if (pool.chainId === 128) {\r\n history.push(`/heco/fixed-swap/${pool.id}`)\r\n } else {\r\n history.push(`/fixed-swap/${pool.id}`)\r\n }\r\n } else if (pool.type === 'LOTTERY_NFT') {\r\n if (pool.chainId === 56) {\r\n history.push(`/bsc/lottery-nft/${pool.id}`)\r\n } else {\r\n history.push(`/lottery-nft/${pool.id}`)\r\n }\r\n }\r\n }} />\r\n )}\r\n\r\n {pool.status === 'Failed' && (\r\n <Button type='black' value='Show Result' width={isXSDown ? '100%' : '180px'} onClick={() => {\r\n if (pool.type === 'FIXED_SWAP') {\r\n if (pool.chainId === 56) {\r\n history.push(`/bsc/fixed-swap/${pool.id}`)\r\n } else {\r\n history.push(`/fixed-swap/${pool.id}`)\r\n }\r\n } else if (pool.type === 'LOTTERY_NFT') {\r\n if (pool.chainId === 56) {\r\n history.push(`/bsc/lottery-nft/${pool.id}`)\r\n } else {\r\n history.push(`/lottery-nft/${pool.id}`)\r\n }\r\n }\r\n }} />\r\n )}\r\n </div>\r\n </div>\r\n\r\n <div className=\"right\">\r\n <Passage\r\n color={pool.chainId === 56 ? '#f0b90e' : ''}\r\n title='Auction Type'\r\n desc={pool.proInfo && pool.proInfo.auctiontype}\r\n />\r\n\r\n <Passage\r\n title='Participant'\r\n desc={`\r\n ${(pool.botHolder && !pool.enableWhiteList) ? 'AUCTION holder' : ''}\r\n ${(!pool.botHolder && pool.enableWhiteList) ? 'Whitelisting' : ''}\r\n ${(pool.botHolder && pool.enableWhiteList) ? 'AUCTION holder , Whitelisting' : ''}\r\n ${(!pool.botHolder && !pool.enableWhiteList) ? 'Public' : ''}\r\n `\r\n }\r\n // whiteLink={pool.whiteLink}\r\n />\r\n\r\n <Passage\r\n title='KYC required'\r\n desc={`${(pool.enableKycList) ? 'Yes' : 'No'}`} />\r\n </div>\r\n </div>\r\n\r\n\r\n {isShowInfoBox && pool.proInfo && <InfoBox proInfo={pool.proInfo} />}\r\n\r\n </div>\r\n\r\n <TxModal modalStatus={bidStatus} onDismiss={() => {\r\n setBidStatus(initStatus)\r\n }} />\r\n\r\n </CardStyled>\r\n )\r\n}\r\n","C:\\Users\\Administrator\\Desktop\\Code\\Bounce\\Bounce_Certified\\bounce-kyc\\src\\pages\\components\\Exhibition\\Passage.jsx",["584"],"import React from 'react'\r\nimport { PassageStyled } from './styled'\r\n\r\nexport default function Passage ({ title, desc, whiteLink, width, marginTop, children, color }) {\r\n return (\r\n <PassageStyled width={width} marginTop={marginTop}>\r\n <p className=\"title\">{title}</p>\r\n <p className=\"desc\" style={{ color: color }}>{desc}\r\n {whiteLink && <a href={whiteLink} target='_blank' style={{color: 'blue'}}>( Win Whitelist )</a>}\r\n </p>\r\n {children}\r\n </PassageStyled>\r\n )\r\n}\r\n",{"ruleId":"585","replacedBy":"586"},{"ruleId":"587","replacedBy":"588"},{"ruleId":"589","severity":1,"message":"590","line":2,"column":10,"nodeType":"591","messageId":"592","endLine":2,"endColumn":23},{"ruleId":"589","severity":1,"message":"593","line":48,"column":13,"nodeType":"591","messageId":"592","endLine":48,"endColumn":18},{"ruleId":"594","severity":1,"message":"595","line":57,"column":8,"nodeType":"596","endLine":57,"endColumn":10,"suggestions":"597"},{"ruleId":"594","severity":1,"message":"598","line":66,"column":8,"nodeType":"596","endLine":66,"endColumn":29,"suggestions":"599"},{"ruleId":"594","severity":1,"message":"600","line":74,"column":8,"nodeType":"596","endLine":74,"endColumn":17,"suggestions":"601"},{"ruleId":"589","severity":1,"message":"602","line":25,"column":9,"nodeType":"591","messageId":"592","endLine":25,"endColumn":16},{"ruleId":"589","severity":1,"message":"603","line":25,"column":18,"nodeType":"591","messageId":"592","endLine":25,"endColumn":29},{"ruleId":"589","severity":1,"message":"604","line":25,"column":31,"nodeType":"591","messageId":"592","endLine":25,"endColumn":37},{"ruleId":"589","severity":1,"message":"605","line":25,"column":39,"nodeType":"591","messageId":"592","endLine":25,"endColumn":47},{"ruleId":"589","severity":1,"message":"606","line":27,"column":18,"nodeType":"591","messageId":"592","endLine":27,"endColumn":28},{"ruleId":"589","severity":1,"message":"607","line":28,"column":22,"nodeType":"591","messageId":"592","endLine":28,"endColumn":39},{"ruleId":"589","severity":1,"message":"608","line":29,"column":8,"nodeType":"591","messageId":"592","endLine":29,"endColumn":25},{"ruleId":"589","severity":1,"message":"593","line":60,"column":11,"nodeType":"591","messageId":"592","endLine":60,"endColumn":16},{"ruleId":"589","severity":1,"message":"609","line":64,"column":42,"nodeType":"591","messageId":"592","endLine":64,"endColumn":48},{"ruleId":"589","severity":1,"message":"610","line":67,"column":10,"nodeType":"591","messageId":"592","endLine":67,"endColumn":17},{"ruleId":"594","severity":1,"message":"611","line":124,"column":6,"nodeType":"596","endLine":124,"endColumn":15,"suggestions":"612"},{"ruleId":"594","severity":1,"message":"613","line":156,"column":13,"nodeType":"614","endLine":168,"endColumn":15},{"ruleId":"589","severity":1,"message":"615","line":1,"column":17,"nodeType":"591","messageId":"592","endLine":1,"endColumn":27},{"ruleId":"589","severity":1,"message":"616","line":1,"column":29,"nodeType":"591","messageId":"592","endLine":1,"endColumn":38},{"ruleId":"589","severity":1,"message":"617","line":64,"column":9,"nodeType":"591","messageId":"592","endLine":64,"endColumn":15},{"ruleId":"589","severity":1,"message":"618","line":19,"column":42,"nodeType":"591","messageId":"592","endLine":19,"endColumn":54},{"ruleId":"589","severity":1,"message":"619","line":60,"column":11,"nodeType":"591","messageId":"592","endLine":60,"endColumn":18},{"ruleId":"589","severity":1,"message":"593","line":68,"column":11,"nodeType":"591","messageId":"592","endLine":68,"endColumn":16},{"ruleId":"589","severity":1,"message":"620","line":75,"column":51,"nodeType":"591","messageId":"592","endLine":75,"endColumn":64},{"ruleId":"594","severity":1,"message":"611","line":149,"column":6,"nodeType":"596","endLine":149,"endColumn":15,"suggestions":"621"},{"ruleId":"594","severity":1,"message":"622","line":166,"column":6,"nodeType":"596","endLine":166,"endColumn":35,"suggestions":"623"},{"ruleId":"594","severity":1,"message":"624","line":174,"column":6,"nodeType":"596","endLine":174,"endColumn":27,"suggestions":"625"},{"ruleId":"594","severity":1,"message":"613","line":178,"column":13,"nodeType":"614","endLine":189,"endColumn":15},{"ruleId":"589","severity":1,"message":"626","line":198,"column":5,"nodeType":"591","messageId":"592","endLine":198,"endColumn":15},{"ruleId":"594","severity":1,"message":"627","line":198,"column":18,"nodeType":"614","endLine":213,"endColumn":15},{"ruleId":"628","severity":1,"message":"629","line":458,"column":38,"nodeType":"630","messageId":"631","endLine":458,"endColumn":40},{"ruleId":"632","severity":1,"message":"633","line":525,"column":17,"nodeType":"634","endLine":525,"endColumn":31},{"ruleId":"632","severity":1,"message":"633","line":532,"column":21,"nodeType":"634","endLine":532,"endColumn":35},{"ruleId":"635","severity":1,"message":"636","line":554,"column":51,"nodeType":"634","endLine":557,"endColumn":43},{"ruleId":"589","severity":1,"message":"637","line":6,"column":10,"nodeType":"591","messageId":"592","endLine":6,"endColumn":35},{"ruleId":"589","severity":1,"message":"593","line":15,"column":11,"nodeType":"591","messageId":"592","endLine":15,"endColumn":16},{"ruleId":"589","severity":1,"message":"638","line":32,"column":18,"nodeType":"591","messageId":"592","endLine":32,"endColumn":27},{"ruleId":"628","severity":1,"message":"629","line":192,"column":73,"nodeType":"630","messageId":"631","endLine":192,"endColumn":75},{"ruleId":"594","severity":1,"message":"639","line":218,"column":6,"nodeType":"596","endLine":218,"endColumn":23,"suggestions":"640"},{"ruleId":"594","severity":1,"message":"641","line":226,"column":6,"nodeType":"596","endLine":226,"endColumn":23,"suggestions":"642"},{"ruleId":"594","severity":1,"message":"643","line":235,"column":6,"nodeType":"596","endLine":235,"endColumn":32,"suggestions":"644"},{"ruleId":"594","severity":1,"message":"645","line":93,"column":6,"nodeType":"596","endLine":93,"endColumn":30,"suggestions":"646"},{"ruleId":"594","severity":1,"message":"647","line":122,"column":6,"nodeType":"596","endLine":122,"endColumn":23,"suggestions":"648"},{"ruleId":"589","severity":1,"message":"649","line":4,"column":18,"nodeType":"591","messageId":"592","endLine":4,"endColumn":21},{"ruleId":"594","severity":1,"message":"650","line":29,"column":6,"nodeType":"596","endLine":29,"endColumn":41,"suggestions":"651"},{"ruleId":"594","severity":1,"message":"652","line":38,"column":8,"nodeType":"596","endLine":38,"endColumn":14,"suggestions":"653"},{"ruleId":"635","severity":1,"message":"636","line":53,"column":26,"nodeType":"634","endLine":53,"endColumn":51},{"ruleId":"635","severity":1,"message":"636","line":56,"column":25,"nodeType":"634","endLine":56,"endColumn":48},{"ruleId":"594","severity":1,"message":"654","line":31,"column":8,"nodeType":"596","endLine":31,"endColumn":17,"suggestions":"655"},{"ruleId":"589","severity":1,"message":"656","line":8,"column":8,"nodeType":"591","messageId":"592","endLine":8,"endColumn":15},{"ruleId":"589","severity":1,"message":"657","line":45,"column":25,"nodeType":"591","messageId":"592","endLine":45,"endColumn":39},{"ruleId":"589","severity":1,"message":"593","line":51,"column":13,"nodeType":"591","messageId":"592","endLine":51,"endColumn":18},{"ruleId":"594","severity":1,"message":"658","line":58,"column":15,"nodeType":"659","endLine":64,"endColumn":6},{"ruleId":"594","severity":1,"message":"660","line":64,"column":8,"nodeType":"596","endLine":64,"endColumn":25,"suggestions":"661"},{"ruleId":"589","severity":1,"message":"649","line":27,"column":19,"nodeType":"591","messageId":"592","endLine":27,"endColumn":22},{"ruleId":"589","severity":1,"message":"662","line":42,"column":38,"nodeType":"591","messageId":"592","endLine":42,"endColumn":44},{"ruleId":"589","severity":1,"message":"593","line":21,"column":11,"nodeType":"591","messageId":"592","endLine":21,"endColumn":16},{"ruleId":"589","severity":1,"message":"663","line":21,"column":18,"nodeType":"591","messageId":"592","endLine":21,"endColumn":26},{"ruleId":"589","severity":1,"message":"664","line":12,"column":8,"nodeType":"591","messageId":"592","endLine":12,"endColumn":13},{"ruleId":"589","severity":1,"message":"665","line":22,"column":5,"nodeType":"591","messageId":"592","endLine":22,"endColumn":18},{"ruleId":"589","severity":1,"message":"649","line":26,"column":18,"nodeType":"591","messageId":"592","endLine":26,"endColumn":21},{"ruleId":"594","severity":1,"message":"666","line":53,"column":8,"nodeType":"596","endLine":53,"endColumn":10,"suggestions":"667"},{"ruleId":"594","severity":1,"message":"668","line":59,"column":8,"nodeType":"596","endLine":59,"endColumn":25,"suggestions":"669"},{"ruleId":"628","severity":1,"message":"629","line":222,"column":29,"nodeType":"630","messageId":"631","endLine":222,"endColumn":31},{"ruleId":"670","severity":1,"message":"671","line":50,"column":55,"nodeType":"659","messageId":"672","endLine":83,"endColumn":12},{"ruleId":"594","severity":1,"message":"673","line":96,"column":6,"nodeType":"596","endLine":96,"endColumn":14,"suggestions":"674"},{"ruleId":"589","severity":1,"message":"675","line":102,"column":28,"nodeType":"591","messageId":"592","endLine":102,"endColumn":35},{"ruleId":"670","severity":1,"message":"676","line":182,"column":55,"nodeType":"659","messageId":"672","endLine":232,"endColumn":12},{"ruleId":"670","severity":1,"message":"671","line":247,"column":59,"nodeType":"659","messageId":"672","endLine":279,"endColumn":12},{"ruleId":"594","severity":1,"message":"658","line":288,"column":13,"nodeType":"659","endLine":297,"endColumn":4},{"ruleId":"594","severity":1,"message":"673","line":297,"column":6,"nodeType":"596","endLine":297,"endColumn":14,"suggestions":"677"},{"ruleId":"594","severity":1,"message":"678","line":352,"column":6,"nodeType":"596","endLine":352,"endColumn":14,"suggestions":"679"},{"ruleId":"594","severity":1,"message":"673","line":392,"column":6,"nodeType":"596","endLine":392,"endColumn":14,"suggestions":"680"},{"ruleId":"589","severity":1,"message":"675","line":400,"column":28,"nodeType":"591","messageId":"592","endLine":400,"endColumn":35},{"ruleId":"594","severity":1,"message":"650","line":411,"column":6,"nodeType":"596","endLine":411,"endColumn":23,"suggestions":"681"},{"ruleId":"589","severity":1,"message":"682","line":3,"column":8,"nodeType":"591","messageId":"592","endLine":3,"endColumn":19},{"ruleId":"589","severity":1,"message":"683","line":4,"column":9,"nodeType":"591","messageId":"592","endLine":4,"endColumn":21},{"ruleId":"589","severity":1,"message":"593","line":18,"column":13,"nodeType":"591","messageId":"592","endLine":18,"endColumn":18},{"ruleId":"589","severity":1,"message":"684","line":31,"column":20,"nodeType":"591","messageId":"592","endLine":31,"endColumn":29},{"ruleId":"589","severity":1,"message":"685","line":52,"column":11,"nodeType":"591","messageId":"592","endLine":52,"endColumn":24},{"ruleId":"594","severity":1,"message":"686","line":73,"column":8,"nodeType":"596","endLine":73,"endColumn":19,"suggestions":"687"},{"ruleId":"594","severity":1,"message":"688","line":235,"column":8,"nodeType":"596","endLine":235,"endColumn":34,"suggestions":"689"},{"ruleId":"589","severity":1,"message":"616","line":1,"column":29,"nodeType":"591","messageId":"592","endLine":1,"endColumn":38},{"ruleId":"589","severity":1,"message":"593","line":16,"column":13,"nodeType":"591","messageId":"592","endLine":16,"endColumn":18},{"ruleId":"589","severity":1,"message":"690","line":17,"column":21,"nodeType":"591","messageId":"592","endLine":17,"endColumn":28},{"ruleId":"589","severity":1,"message":"593","line":39,"column":11,"nodeType":"591","messageId":"592","endLine":39,"endColumn":16},{"ruleId":"594","severity":1,"message":"658","line":107,"column":13,"nodeType":"659","endLine":114,"endColumn":4},{"ruleId":"594","severity":1,"message":"660","line":114,"column":6,"nodeType":"596","endLine":114,"endColumn":23,"suggestions":"691"},{"ruleId":"692","severity":1,"message":"693","line":178,"column":9,"nodeType":"694","messageId":"695","endLine":178,"endColumn":14},{"ruleId":"635","severity":1,"message":"636","line":291,"column":15,"nodeType":"634","endLine":292,"endColumn":17},{"ruleId":"594","severity":1,"message":"696","line":35,"column":8,"nodeType":"596","endLine":35,"endColumn":10,"suggestions":"697"},{"ruleId":"594","severity":1,"message":"696","line":32,"column":8,"nodeType":"596","endLine":32,"endColumn":10,"suggestions":"698"},{"ruleId":"594","severity":1,"message":"696","line":29,"column":8,"nodeType":"596","endLine":29,"endColumn":10,"suggestions":"699"},{"ruleId":"594","severity":1,"message":"696","line":26,"column":8,"nodeType":"596","endLine":26,"endColumn":10,"suggestions":"700"},{"ruleId":"594","severity":1,"message":"696","line":30,"column":8,"nodeType":"596","endLine":30,"endColumn":10,"suggestions":"701"},{"ruleId":"594","severity":1,"message":"702","line":29,"column":8,"nodeType":"596","endLine":29,"endColumn":10,"suggestions":"703"},{"ruleId":"704","severity":1,"message":"705","line":91,"column":49,"nodeType":"706","messageId":"707","endLine":91,"endColumn":50,"suggestions":"708"},{"ruleId":"704","severity":1,"message":"709","line":91,"column":67,"nodeType":"706","messageId":"707","endLine":91,"endColumn":68,"suggestions":"710"},{"ruleId":"704","severity":1,"message":"711","line":91,"column":69,"nodeType":"706","messageId":"707","endLine":91,"endColumn":70,"suggestions":"712"},{"ruleId":"704","severity":1,"message":"705","line":114,"column":49,"nodeType":"706","messageId":"707","endLine":114,"endColumn":50,"suggestions":"713"},{"ruleId":"704","severity":1,"message":"709","line":114,"column":67,"nodeType":"706","messageId":"707","endLine":114,"endColumn":68,"suggestions":"714"},{"ruleId":"704","severity":1,"message":"711","line":114,"column":69,"nodeType":"706","messageId":"707","endLine":114,"endColumn":70,"suggestions":"715"},{"ruleId":"704","severity":1,"message":"705","line":131,"column":49,"nodeType":"706","messageId":"707","endLine":131,"endColumn":50,"suggestions":"716"},{"ruleId":"704","severity":1,"message":"709","line":131,"column":67,"nodeType":"706","messageId":"707","endLine":131,"endColumn":68,"suggestions":"717"},{"ruleId":"704","severity":1,"message":"711","line":131,"column":69,"nodeType":"706","messageId":"707","endLine":131,"endColumn":70,"suggestions":"718"},{"ruleId":"704","severity":1,"message":"705","line":151,"column":53,"nodeType":"706","messageId":"707","endLine":151,"endColumn":54,"suggestions":"719"},{"ruleId":"704","severity":1,"message":"709","line":151,"column":71,"nodeType":"706","messageId":"707","endLine":151,"endColumn":72,"suggestions":"720"},{"ruleId":"704","severity":1,"message":"711","line":151,"column":73,"nodeType":"706","messageId":"707","endLine":151,"endColumn":74,"suggestions":"721"},{"ruleId":"635","severity":1,"message":"636","line":45,"column":26,"nodeType":"634","endLine":45,"endColumn":51},{"ruleId":"635","severity":1,"message":"636","line":48,"column":25,"nodeType":"634","endLine":48,"endColumn":48},{"ruleId":"594","severity":1,"message":"722","line":13,"column":8,"nodeType":"596","endLine":13,"endColumn":19,"suggestions":"723"},{"ruleId":"594","severity":1,"message":"724","line":24,"column":8,"nodeType":"596","endLine":24,"endColumn":29,"suggestions":"725"},{"ruleId":"594","severity":1,"message":"722","line":11,"column":8,"nodeType":"596","endLine":11,"endColumn":16,"suggestions":"726"},{"ruleId":"589","severity":1,"message":"727","line":10,"column":11,"nodeType":"591","messageId":"592","endLine":10,"endColumn":19},{"ruleId":"594","severity":1,"message":"728","line":33,"column":8,"nodeType":"596","endLine":33,"endColumn":22,"suggestions":"729"},{"ruleId":"589","severity":1,"message":"730","line":54,"column":11,"nodeType":"591","messageId":"592","endLine":54,"endColumn":22},{"ruleId":"589","severity":1,"message":"731","line":131,"column":29,"nodeType":"591","messageId":"592","endLine":131,"endColumn":32},{"ruleId":"594","severity":1,"message":"732","line":174,"column":8,"nodeType":"596","endLine":174,"endColumn":30,"suggestions":"733"},{"ruleId":"594","severity":1,"message":"734","line":187,"column":8,"nodeType":"596","endLine":187,"endColumn":10,"suggestions":"735"},{"ruleId":"594","severity":1,"message":"736","line":266,"column":8,"nodeType":"596","endLine":266,"endColumn":18,"suggestions":"737"},{"ruleId":"589","severity":1,"message":"616","line":1,"column":17,"nodeType":"591","messageId":"592","endLine":1,"endColumn":26},{"ruleId":"589","severity":1,"message":"665","line":14,"column":5,"nodeType":"591","messageId":"592","endLine":14,"endColumn":18},{"ruleId":"589","severity":1,"message":"649","line":19,"column":19,"nodeType":"591","messageId":"592","endLine":19,"endColumn":22},{"ruleId":"589","severity":1,"message":"738","line":29,"column":8,"nodeType":"591","messageId":"592","endLine":29,"endColumn":16},{"ruleId":"589","severity":1,"message":"662","line":40,"column":40,"nodeType":"591","messageId":"592","endLine":40,"endColumn":46},{"ruleId":"594","severity":1,"message":"613","line":56,"column":21,"nodeType":"614","endLine":59,"endColumn":21},{"ruleId":"635","severity":1,"message":"636","line":22,"column":17,"nodeType":"634","endLine":22,"endColumn":54},{"ruleId":"589","severity":1,"message":"664","line":4,"column":8,"nodeType":"591","messageId":"592","endLine":4,"endColumn":13},{"ruleId":"589","severity":1,"message":"739","line":19,"column":5,"nodeType":"591","messageId":"592","endLine":19,"endColumn":23},{"ruleId":"589","severity":1,"message":"740","line":26,"column":11,"nodeType":"591","messageId":"592","endLine":26,"endColumn":18},{"ruleId":"741","severity":1,"message":"742","line":37,"column":49,"nodeType":"659","messageId":"743","endLine":37,"endColumn":51},{"ruleId":"594","severity":1,"message":"744","line":49,"column":8,"nodeType":"596","endLine":49,"endColumn":14,"suggestions":"745"},{"ruleId":"594","severity":1,"message":"746","line":29,"column":8,"nodeType":"596","endLine":29,"endColumn":19,"suggestions":"747"},{"ruleId":"594","severity":1,"message":"746","line":28,"column":8,"nodeType":"596","endLine":28,"endColumn":19,"suggestions":"748"},{"ruleId":"704","severity":1,"message":"749","line":107,"column":68,"nodeType":"706","messageId":"707","endLine":107,"endColumn":69,"suggestions":"750"},{"ruleId":"704","severity":1,"message":"749","line":107,"column":90,"nodeType":"706","messageId":"707","endLine":107,"endColumn":91,"suggestions":"751"},{"ruleId":"632","severity":1,"message":"752","line":8,"column":9,"nodeType":"634","endLine":8,"endColumn":25},{"ruleId":"589","severity":1,"message":"753","line":14,"column":8,"nodeType":"591","messageId":"592","endLine":14,"endColumn":17},{"ruleId":"594","severity":1,"message":"613","line":37,"column":15,"nodeType":"614","endLine":40,"endColumn":15},{"ruleId":"754","severity":1,"message":"755","line":9,"column":31,"nodeType":"634","endLine":9,"endColumn":91},"no-native-reassign",["756"],"no-negated-in-lhs",["757"],"no-unused-vars","'WalletConnect' is defined but never used.","Identifier","unusedVar","'state' is assigned a value but never used.","react-hooks/exhaustive-deps","React Hook useEffect has a missing dependency: 'activate'. Either include it or remove the dependency array.","ArrayExpression",["758"],"React Hook useEffect has a missing dependency: 'connector'. Either include it or remove the dependency array.",["759"],"React Hook useEffect has missing dependencies: 'active', 'dispatch', and 'library'. Either include them or remove the dependency array.",["760"],"'fromWei' is defined but never used.","'getProgress' is defined but never used.","'weiDiv' is defined but never used.","'weiToNum' is defined but never used.","'BOUNCE_PRO' is defined but never used.","'useActivePlatform' is defined but never used.","'LotteryERC1155ABI' is defined but never used.","'symbol' is assigned a value but never used.","'disable' is assigned a value but never used.","React Hook useEffect has missing dependencies: 'dispatch' and 'history'. Either include them or remove the dependency array.",["761"],"Assignments to the 'timer' variable from inside React Hook useEffect will be lost after each render. To preserve the value over time, store it in a useRef Hook and keep the mutable value in the '.current' property. Otherwise, you can move this variable directly inside useEffect.","CallExpression","'useContext' is defined but never used.","'useEffect' is defined but never used.","'onSign' is assigned a value but never used.","'useTokenList' is defined but never used.","'balance' is assigned a value but never used.","'fromBidAmount' is assigned a value but never used.",["762"],"React Hook useEffect has missing dependencies: 'AuctionAmount.balance' and 'errors'. Either include them or remove the dependency array. You can also do a functional update 'setErrors(e => ...)' if you only need 'errors' in the 'setErrors' call.",["763"],"React Hook useEffect has a missing dependency: 'errors'. Either include it or remove the dependency array. You can also do a functional update 'setErrors(e => ...)' if you only need 'errors' in the 'setErrors' call.",["764"],"'claimTimer' is assigned a value but never used.","Assignments to the 'claimTimer' variable from inside React Hook useEffect will be lost after each render. To preserve the value over time, store it in a useRef Hook and keep the mutable value in the '.current' property. Otherwise, you can move this variable directly inside useEffect.","eqeqeq","Expected '===' and instead saw '=='.","BinaryExpression","unexpected","react/jsx-pascal-case","Imported JSX component topInfo must be in PascalCase or SCREAMING_SNAKE_CASE","JSXOpeningElement","jsx-a11y/alt-text","img elements must have an alt prop, either with meaningful text, or an empty string for decorative images.","'HANDLE_SHOW_CONNECT_MODAL' is defined but never used.","'setSymbol' is assigned a value but never used.","React Hook useEffect has missing dependencies: 'dispatch' and 'getLotteryNFTDetail'. Either include them or remove the dependency array.",["765"],"React Hook useEffect has a missing dependency: 'queryAccount'. Either include it or remove the dependency array.",["766"],"React Hook useEffect has a missing dependency: 'queryNFT'. Either include it or remove the dependency array.",["767"],"React Hook useEffect has missing dependencies: 'ethBalance' and 'library'. Either include them or remove the dependency array.",["768"],"React Hook useEffect has missing dependencies: 'address', 'chainId', and 'library'. Either include them or remove the dependency array.",["769"],"'BOT' is defined but never used.","React Hook useEffect has a missing dependency: 'library'. Either include it or remove the dependency array.",["770"],"React Hook useEffect has a missing dependency: 'calcuTime'. Either include it or remove the dependency array.",["771"],"React Hook useEffect has missing dependencies: 'active' and 'dispatch'. Either include them or remove the dependency array.",["772"],"'lattice' is defined but never used.","'setStepIsHover' is assigned a value but never used.","Effect callbacks are synchronous to prevent race conditions. Put the async function inside:\n\nuseEffect(() => {\n async function fetchData() {\n // You can await here\n const response = await MyAPI.getData(someId);\n // ...\n }\n fetchData();\n}, [someId]); // Or [] if effect doesn't need props or state\n\nLearn more about data fetching with Hooks: https://reactjs.org/link/hooks-data-fetching","ArrowFunctionExpression","React Hook useEffect has missing dependencies: 'chainId' and 'library'. Either include them or remove the dependency array.",["773"],"'active' is assigned a value but never used.","'dispatch' is assigned a value but never used.","'axios' is defined but never used.","'successStatus' is defined but never used.","React Hook useEffect has a missing dependency: 'dispatch'. Either include it or remove the dependency array.",["774"],"React Hook useEffect has a missing dependency: 'checkKYC'. Either include it or remove the dependency array.",["775"],"no-loop-func","Function declared in a loop contains unsafe references to variable(s) 'pools', 'pools', 'pools'.","unsafeRefs","React Hook useEffect has a missing dependency: 'fetchList'. Either include it or remove the dependency array.",["776"],"'chainId' is assigned a value but never used.","Function declared in a loop contains unsafe references to variable(s) 'pools', 'pools', 'pools', 'pools'.",["777"],"React Hook useEffect has a missing dependency: 'fetchStatus'. Either include it or remove the dependency array.",["778"],["779"],["780"],"'numberToHex' is assigned a value but never used.","'Web3Provider' is defined but never used.","'setIsMine' is assigned a value but never used.","'checkMyFSPool' is assigned a value but never used.","React Hook useEffect has a missing dependency: 'queryTokenBalance'. Either include it or remove the dependency array.",["781"],"React Hook useEffect has missing dependencies: 'dispatch' and 'getFSPoolDetail'. Either include them or remove the dependency array.",["782"],"'account' is assigned a value but never used.",["783"],"no-unreachable","Unreachable code.","BreakStatement","unreachableCode","React Hook useEffect has missing dependencies: 'setCurStep' and 'setTitle'. Either include them or remove the dependency array. If 'setTitle' changes too often, find the parent component that defines it and wrap that definition in useCallback.",["784"],["785"],["786"],["787"],["788"],"React Hook useEffect has a missing dependency: 'setTitle'. Either include it or remove the dependency array. If 'setTitle' changes too often, find the parent component that defines it and wrap that definition in useCallback.",["789"],"no-useless-escape","Unnecessary escape character: \\/.","Literal","unnecessaryEscape",["790","791"],"Unnecessary escape character: \\+.",["792","793"],"Unnecessary escape character: \\%.",["794","795"],["796","797"],["798","799"],["800","801"],["802","803"],["804","805"],["806","807"],["808","809"],["810","811"],["812","813"],"React Hook useEffect has missing dependencies: 'onChange' and 'options'. Either include them or remove the dependency array. If 'onChange' changes too often, find the parent component that defines it and wrap that definition in useCallback.",["814"],"React Hook useEffect has a missing dependency: 'selOption'. Either include it or remove the dependency array.",["815"],["816"],"'isSMDown' is assigned a value but never used.","React Hook useEffect has missing dependencies: 'errMsg', 'isRequire', 'name', 'onValChange', and 'onValueChange'. Either include them or remove the dependency array. If 'onValueChange' changes too often, find the parent component that defines it and wrap that definition in useCallback.",["817"],"'wrapperName' is assigned a value but never used.","'val' is assigned a value but never used.","React Hook useEffect has a missing dependency: 'onChange'. Either include it or remove the dependency array. If 'onChange' changes too often, find the parent component that defines it and wrap that definition in useCallback.",["818"],"React Hook useEffect has a missing dependency: 'defaultVal'. Either include it or remove the dependency array.",["819"],"React Hook useEffect has missing dependencies: 'isError' and 'onChange'. Either include them or remove the dependency array. If 'onChange' changes too often, find the parent component that defines it and wrap that definition in useCallback.",["820"],"'API_HOST' is defined but never used.","'successVotedStatus' is defined but never used.","'history' is assigned a value but never used.","array-callback-return","Array.prototype.filter() expects a value to be returned at the end of arrow function.","expectedAtEnd","React Hook useEffect has missing dependencies: 'isNext' and 'setReqData'. Either include them or remove the dependency array. If 'setReqData' changes too often, find the parent component that defines it and wrap that definition in useCallback.",["821"],"React Hook useEffect has a missing dependency: 'requiredList_json'. Either include it or remove the dependency array.",["822"],["823"],"Unnecessary escape character: \\-.",["824","825"],["826","827"],"Imported JSX component Kyc_Tip_Styled must be in PascalCase or SCREAMING_SNAKE_CASE","'BigNumber' is defined but never used.","react/jsx-no-target-blank","Using target=\"_blank\" without rel=\"noreferrer\" is a security risk: see https://html.spec.whatwg.org/multipage/links.html#link-type-noopener","no-global-assign","no-unsafe-negation",{"desc":"828","fix":"829"},{"desc":"830","fix":"831"},{"desc":"832","fix":"833"},{"desc":"834","fix":"835"},{"desc":"834","fix":"836"},{"desc":"837","fix":"838"},{"desc":"839","fix":"840"},{"desc":"841","fix":"842"},{"desc":"843","fix":"844"},{"desc":"845","fix":"846"},{"desc":"847","fix":"848"},{"desc":"849","fix":"850"},{"desc":"851","fix":"852"},{"desc":"853","fix":"854"},{"desc":"855","fix":"856"},{"desc":"857","fix":"858"},{"desc":"859","fix":"860"},{"desc":"861","fix":"862"},{"desc":"863","fix":"864"},{"desc":"863","fix":"865"},{"desc":"866","fix":"867"},{"desc":"863","fix":"868"},{"desc":"869","fix":"870"},{"desc":"871","fix":"872"},{"desc":"873","fix":"874"},{"desc":"857","fix":"875"},{"desc":"876","fix":"877"},{"desc":"876","fix":"878"},{"desc":"876","fix":"879"},{"desc":"876","fix":"880"},{"desc":"876","fix":"881"},{"desc":"882","fix":"883"},{"messageId":"884","fix":"885","desc":"886"},{"messageId":"887","fix":"888","desc":"889"},{"messageId":"884","fix":"890","desc":"886"},{"messageId":"887","fix":"891","desc":"889"},{"messageId":"884","fix":"892","desc":"886"},{"messageId":"887","fix":"893","desc":"889"},{"messageId":"884","fix":"894","desc":"886"},{"messageId":"887","fix":"895","desc":"889"},{"messageId":"884","fix":"896","desc":"886"},{"messageId":"887","fix":"897","desc":"889"},{"messageId":"884","fix":"898","desc":"886"},{"messageId":"887","fix":"899","desc":"889"},{"messageId":"884","fix":"900","desc":"886"},{"messageId":"887","fix":"901","desc":"889"},{"messageId":"884","fix":"902","desc":"886"},{"messageId":"887","fix":"903","desc":"889"},{"messageId":"884","fix":"904","desc":"886"},{"messageId":"887","fix":"905","desc":"889"},{"messageId":"884","fix":"906","desc":"886"},{"messageId":"887","fix":"907","desc":"889"},{"messageId":"884","fix":"908","desc":"886"},{"messageId":"887","fix":"909","desc":"889"},{"messageId":"884","fix":"910","desc":"886"},{"messageId":"887","fix":"911","desc":"889"},{"desc":"912","fix":"913"},{"desc":"914","fix":"915"},{"desc":"916","fix":"917"},{"desc":"918","fix":"919"},{"desc":"920","fix":"921"},{"desc":"922","fix":"923"},{"desc":"924","fix":"925"},{"desc":"926","fix":"927"},{"desc":"928","fix":"929"},{"desc":"928","fix":"930"},{"messageId":"884","fix":"931","desc":"886"},{"messageId":"887","fix":"932","desc":"889"},{"messageId":"884","fix":"933","desc":"886"},{"messageId":"887","fix":"934","desc":"889"},"Update the dependencies array to be: [activate]",{"range":"935","text":"936"},"Update the dependencies array to be: [activatingConnector, connector]",{"range":"937","text":"938"},"Update the dependencies array to be: [account, active, dispatch, library]",{"range":"939","text":"940"},"Update the dependencies array to be: [chainId, dispatch, history]",{"range":"941","text":"942"},{"range":"943","text":"942"},"Update the dependencies array to be: [onlyBOT, bidAmount, account, AuctionAmount.balance, errors]",{"range":"944","text":"945"},"Update the dependencies array to be: [biddenAmount, errors, limit]",{"range":"946","text":"947"},"Update the dependencies array to be: [active, account, getLotteryNFTDetail, dispatch]",{"range":"948","text":"949"},"Update the dependencies array to be: [active, account, queryAccount]",{"range":"950","text":"951"},"Update the dependencies array to be: [active, tokenId, address, queryNFT]",{"range":"952","text":"953"},"Update the dependencies array to be: [active, token, account, library, ethBalance]",{"range":"954","text":"955"},"Update the dependencies array to be: [active, account, library, address, chainId]",{"range":"956","text":"957"},"Update the dependencies array to be: [active, account, chainId, address, library]",{"range":"958","text":"959"},"Update the dependencies array to be: [calcuTime, time]",{"range":"960","text":"961"},"Update the dependencies array to be: [ReqData, active, dispatch]",{"range":"962","text":"963"},"Update the dependencies array to be: [account, active, chainId, library]",{"range":"964","text":"965"},"Update the dependencies array to be: [dispatch]",{"range":"966","text":"967"},"Update the dependencies array to be: [account, active, checkKYC]",{"range":"968","text":"969"},"Update the dependencies array to be: [active, fetchList]",{"range":"970","text":"971"},{"range":"972","text":"971"},"Update the dependencies array to be: [active, fetchStatus]",{"range":"973","text":"974"},{"range":"975","text":"971"},"Update the dependencies array to be: [active, account, library]",{"range":"976","text":"977"},"Update the dependencies array to be: [queryTokenBalance, toAddress]",{"range":"978","text":"979"},"Update the dependencies array to be: [active, chainId, account, getFSPoolDetail, dispatch]",{"range":"980","text":"981"},{"range":"982","text":"965"},"Update the dependencies array to be: [setCurStep, setTitle]",{"range":"983","text":"984"},{"range":"985","text":"984"},{"range":"986","text":"984"},{"range":"987","text":"984"},{"range":"988","text":"984"},"Update the dependencies array to be: [setTitle]",{"range":"989","text":"990"},"removeEscape",{"range":"991","text":"992"},"Remove the `\\`. This maintains the current functionality.","escapeBackslash",{"range":"993","text":"994"},"Replace the `\\` with `\\\\` to include the actual backslash character.",{"range":"995","text":"992"},{"range":"996","text":"994"},{"range":"997","text":"992"},{"range":"998","text":"994"},{"range":"999","text":"992"},{"range":"1000","text":"994"},{"range":"1001","text":"992"},{"range":"1002","text":"994"},{"range":"1003","text":"992"},{"range":"1004","text":"994"},{"range":"1005","text":"992"},{"range":"1006","text":"994"},{"range":"1007","text":"992"},{"range":"1008","text":"994"},{"range":"1009","text":"992"},{"range":"1010","text":"994"},{"range":"1011","text":"992"},{"range":"1012","text":"994"},{"range":"1013","text":"992"},{"range":"1014","text":"994"},{"range":"1015","text":"992"},{"range":"1016","text":"994"},"Update the dependencies array to be: [onChange, options, selOption]",{"range":"1017","text":"1018"},"Update the dependencies array to be: [defaultVal, options, selOption]",{"range":"1019","text":"1020"},"Update the dependencies array to be: [curSel, onChange, options]",{"range":"1021","text":"1022"},"Update the dependencies array to be: [val, isError, onValueChange, name, errMsg, isRequire, onValChange]",{"range":"1023","text":"1024"},"Update the dependencies array to be: [days, hours, minutes, onChange]",{"range":"1025","text":"1026"},"Update the dependencies array to be: [defaultVal]",{"range":"1027","text":"1028"},"Update the dependencies array to be: [inputVal, isError, onChange]",{"range":"1029","text":"1030"},"Update the dependencies array to be: [data, isNext, setReqData]",{"range":"1031","text":"1032"},"Update the dependencies array to be: [checkList, requiredList_json]",{"range":"1033","text":"1034"},{"range":"1035","text":"1034"},{"range":"1036","text":"992"},{"range":"1037","text":"994"},{"range":"1038","text":"992"},{"range":"1039","text":"994"},[1805,1807],"[activate]",[2112,2133],"[activatingConnector, connector]",[2343,2352],"[account, active, dispatch, library]",[4262,4271],"[chainId, dispatch, history]",[5178,5187],[5847,5876],"[onlyBOT, bidAmount, account, AuctionAmount.balance, errors]",[6169,6190],"[biddenAmount, errors, limit]",[7121,7138],"[active, account, getLotteryNFTDetail, dispatch]",[7322,7339],"[active, account, queryAccount]",[7532,7558],"[active, tokenId, address, queryNFT]",[2940,2964],"[active, token, account, library, ethBalance]",[3661,3678],"[active, account, library, address, chainId]",[924,959],"[active, account, chainId, address, library]",[1095,1101],"[calcuTime, time]",[924,933],"[ReqData, active, dispatch]",[2807,2824],"[account, active, chainId, library]",[2142,2144],"[dispatch]",[2249,2266],"[account, active, checkKYC]",[3426,3434],"[active, fetchList]",[11746,11754],[13255,13263],"[active, fetchStatus]",[14491,14499],[15036,15053],"[active, account, library]",[2999,3010],"[queryTokenBalance, toAddress]",[9302,9328],"[active, chainId, account, getFSPoolDetail, dispatch]",[4161,4178],[1290,1292],"[setCurStep, setTitle]",[1277,1279],[1132,1134],[897,899],[914,916],[1054,1056],"[setTitle]",[2975,2976],"",[2975,2975],"\\",[2993,2994],[2993,2993],[2995,2996],[2995,2995],[3833,3834],[3833,3833],[3851,3852],[3851,3851],[3853,3854],[3853,3853],[4479,4480],[4479,4479],[4497,4498],[4497,4497],[4499,4500],[4499,4499],[5217,5218],[5217,5217],[5235,5236],[5235,5235],[5237,5238],[5237,5237],[509,520],"[onChange, options, selOption]",[959,980],"[defaultVal, options, selOption]",[443,451],"[curSel, onChange, options]",[1224,1238],"[val, isError, onValueChange, name, errMsg, isRequire, onValChange]",[5938,5960],"[days, hours, minutes, onChange]",[6340,6342],"[defaultVal]",[8981,8991],"[inputVal, isError, onChange]",[1753,1759],"[data, isNext, setReqData]",[1021,1032],"[checkList, requiredList_json]",[990,1001],[3696,3697],[3696,3696],[3718,3719],[3718,3718]]