{"version":3,"sources":["Components/PundiLarge.webp","Components/uniswap.jpg","Components/bitcoin.jpg","Components/ethereum.jpg","Components/Navbar.jsx","Components/CalculatorModal.jsx","Components/Loading.jsx","Components/EventModal.jsx","Components/CapModal.jsx","Components/ChartModal.jsx","Components/CryptoCard.jsx","Components/List.jsx","Components/SideDrawer.jsx","Components/ConverterModal.jsx","Components/StatusDrawer.jsx","Components/Backdrop.jsx","Components/TopCap.jsx","Components/GaugeModal.jsx","Components/TradeCard.jsx","Components/speech/Speech.js","App.js","serviceWorker.js","index.js","Components/Pundi.png"],"names":["module","exports","Navbar","className","Component","numeral","require","CalculatorModal","props","context","amountChange","event","amount","target","value","setState","console","log","percentChange","percent","changeUSD","currency","currencyType","state","summaryModalShow","hide","onHide","loading","slice","this","_isMounted","coinPrice","format","coinName","profitType","parseInt","Modal","size","height","aria-labelledby","centered","Header","closeButton","Title","id","Body","onChange","key","type","min","title","autoComplete","onClick","Loading","cryptocurrencies","EventModal","getNews","x","CoinId","filter","coin","name","ID","request","undefined","method","url","qs","max","coins","headers","Accept","error","response","body","Error","JSON","parse","news","bind","setTimeout","logo","getLogo","fetch","then","res","json","data","image","small","catch","style","textAlign","class","src","map","index","fullname","href","source","en","date_event","proof","CapModal","marketCap","coinChart","getMarketCap","prevProps","prevState","y","usd_market_cap","alt","website","toUpperCase","ChartModal","getSlug","slug","width","scrolling","marginwidth","marginheight","frameborder","border","AverageDev","prevAverageDev","movingAverage","prevMovingAverage","footer","button","m","CryptoCard","add","Open","Close","Time","High","Low","typical","numDays","standardDev","Deviation","UpperBand","LowerBand","BBwidth","prevDeviation","prevUpperBand","prevLowerBand","prevBBWidth","price","prevPrice","modalOpen","eventOpen","capOpen","chartOpen","chart","charts","current","twitter","getWebSocket","getPrice","time","locked","message","percentage","green","findIndex","push","blue","PRICE","FROMSYMBOL","currentPrice","apiKey","Data","i","open","close","high","low","total","prevTotal","f","length","u","totalPrevDev","z","Math","sqrt","totalDev","n","red","logoLarge","large","links","homepage","twitter_screen_name","chartDisplay","window","scrollTo","chartDisplay_USD","coinSlug","prevTrade","bothCharts","hex","document","getElementById","titleElement","scrollIntoView","behavior","speakPrice","findPrice","speak","priceChange","Pundi","PundiLarge","link","cryptocard","change","num","component","transition","fontSize","cursor","transitionProperty","frameStyle","perc","color","fontColor","duration","formatValue","round","show","trade","List","accept","accepted","reject","rejected","list","SideDrawer","clear","drawerClasses","lists","clearLists","ConverterModal","StatusDrawer","Showlist","converterOpen","redOpen","greenOpen","blueOpen","setNumber","newsOpen","signRed","signGreen","signBlue","customText","changeSet","sort","a","b","backdrop","click","TopCap","changeCount","count","top","GaugeModal","symbol","interval","TechnicalAnalysis","THEMES","ONE_HOUR","INTERVALS","ONE_WEEK","ONE_MINUTE","colorTheme","DARK","autosize","TradeCard","assetChange","asset","entryChange","entry","targetChange","stoploss","fee","profit","summary","hours","minutes","seconds","milliseconds","timer","startTimer","start","currentGold","tradePrice","tradeDetailRequest","requestSummary","summaryRequest","listenEntry","assetTrade","listenAmount","filled","listenTarget","MESSAGE","sell","onSpent","targetPercent","stopLoss","floor","toString","padStart","startTime","Date","now","setInterval","run","diff","remaining","tradeDuration","msToTime","clearTimeout","expired","onTrade","details","speakTradeDetails","oblivion","removeTrade","recognition","SpeechRecognition","webkitSpeechRecognition","chosenAsset","presyo","priceText","findAsset","textMessage","UK","ccStreamer","WebSocket","api","Streamer","App","prevCurrency","CurrencyType","set","prevCoin","Coin","changeTime","TimeFrame","addCoin","added","enterTrade","htmlFinder","streamer","currentTrade","onopen","Request","send","stringify","onmessage","evt","Remove","prev","drawerToggleClickHandler","sideDrawerOpen","statusDrawerOpen","statusToggleClickHandler","backdropClickHandler","clearList","nextSet","setRangeFrom","setRangeTo","remove","newCharts","e","removeUSD","USD_Chart","removeAll","newTrade","removeScanTrade","listenScan","changeKey","changeApi","changeScanColor","scanColor","changeTarget","changeReset","reset","resetHistory","changeTradeDuration","status_updates","findingCoin","find","findCoin","listenUSD","SpeechSynthesisUtterance","text","lang","rate","pitch","voice","speechSynthesis","drawerOpen","speakStatus","drawerClose","listenTime","affirmative","showTop","closeTop","removingChart","listenSet","activeScan","compeleteScan","sold","closeTrade","historicalTrade","capital","detail","spent","currentworth","currentloss","direction","comment","replaceAll","speakRemoveUSD","checker","currentLength","removeAsset","topOpen","gaugeCoin","studies","ETH_Sentiment","BTC_Sentiment","Defi_Cap","marketData","gaugeModalOpen","findCommand","openCommand","priceCommand","chosenTrade","executedTrade","removeSoldChart","sets","subRequest","subRemove","largetxsVar","defi_market_cap","querySelector","goldDigger","scanSignal","includes","sorts","coinCharts","usd","toLowerCase","cancel","sorry","trades","location","reload","keyword","dash","tagalogChart","tagalogPrice","populate","onresult","command","results","transcript","unlock","sinongGreen","sinongBlue","r","speakTrade","tr","motoko","abort","clearMind","bigBang","onend","BTC_greed","ETH_greed","BTC_score","ETH_score","sentiment","Backdrop","localeCompare","option","bitcoin","ethereum","uniswap","history","defaultValue","disabled","theme","Themes","locale","hide_side_toolbar","withdateranges","hide_legend","show_popup_button","popup_width","popup_height","toolbar_bg","position","project","description","getSentiment","Promise","resolve","voices","getVoices","addEventListener","Boolean","hostname","match","ReactDOM","render","StrictMode","navigator","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.da6cf8ad.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/PundiLarge.9962ec4f.webp\";","module.exports = __webpack_public_path__ + \"static/media/uniswap.ebbce682.jpg\";","module.exports = \"data:image/jpeg;base64,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\"","module.exports = \"data:image/jpeg;base64,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\"","import React, { Component } from 'react';\n\nclass Navbar extends Component {\n render() {\n // \n return (\n
\n \n Welcome To Trading Booth\n \n
\n \n );\n }\n}\n\nexport default Navbar;","import React, {Component} from 'react';\nimport {Modal} from 'react-bootstrap';\nvar numeral = require('numeral');\n\n \nclass CalculatorModal extends Component {\n \ncomponentDidMount(){\n this._isMounted = true;\n \n }\n \ncomponentWillUnmount(){\n this._isMounted = false;\n}\n\nconstructor(props,context){\n super(props)\n this.state = {\n\n summaryModalShow: false,\n hide:this.props.onHide,\n loading:true,\n amount:0,\n percent:0,\n currencyType:this.props.currency.slice(0,3),\n \n \n }\n\n }\n\n //amountChange\n amountChange = (event) => {\t\t\n let amount = event.target.value;\n this.setState({\n amount: amount\n },()=>console.log());\n \n}\n\n //amountChange\n percentChange = (event) => {\t\t\n let percent = event.target.value;\n this.setState({\n percent: percent\n },()=>console.log());\n \n}\n\n changeUSD = (event) =>{\n let currency = event.target.value;\n this.setState({currencyType:currency},()=>console.log())\n \n }\n \n \n \n\n render(){\n \n let currencyType =
{this.state.amount} {this.props.currency.slice(0,3)} = {numeral(this.state.amount / this.props.coinPrice).format('0,0.00000000')} {this.props.coinName}
\n let profitType =
{this.state.amount} {this.state.currencyType} + {this.state.percent}% = {(parseInt(this.state.amount) + (this.state.amount*(this.state.percent / 100)))} {this.state.currencyType}: {numeral(this.state.amount*(this.state.percent / 100)).format('0,0.00')} {this.state.currencyType} Profit
\n\n if(this.state.currencyType == this.props.coinName){\n currencyType =
{this.state.amount} {this.props.coinName} = {numeral(this.state.amount * this.props.coinPrice).format('0,0.0000')} {this.props.currency.slice(0,3)}
\n }\n\n if(this.state.currencyType == this.props.coinName){\n profitType =
{this.state.amount} {this.state.currencyType} + {this.state.percent}% = {(parseInt(this.state.amount) + (this.state.amount*(this.state.percent / 100)))} {this.state.currencyType}: {numeral(this.state.amount*(this.state.percent / 100)).format('0,0.00')} {this.state.currencyType} Profit
\n }\n \n \n return( \n \n \n \n \n \n
Calculator
\n
\n
\n \n \n
1 {this.props.coinName} = {this.props.coinPrice} {this.props.currency.slice(0,3)}
\n {currencyType}\n {profitType}\n\n
\n\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
\n \n\t\t\t\t\t
\n\t\t\t\t\t\n \n
\n\t\t\t\t\tAmount to calculate\t\n\t\t
\n
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t% Profit\n\t\t\t\t\t
\n\t\t\t\t\t\n \n
\n\t\t\t\t\tCalculate Profit %\t\n\t\t
\n\t\t
\n \n \n
\n \n \n\n \n )\n }\n\n}\n\nexport default CalculatorModal;","import React from 'react';\n\nfunction Loading() {\n\treturn (\n\t\t
🚑 We are loading data...
\n\t);\n}\n\nexport default Loading;","import React, {Component} from 'react';\nimport {Modal} from 'react-bootstrap';\nimport Loading from './Loading';\nimport CoinId from './CoinId.json';\nvar numeral = require('numeral');\nvar cryptocurrencies = require('cryptocurrencies');\n\n \nclass EventModal extends Component {\n \ncomponentDidMount(){\n this._isMounted = true;\n this.getLogo();\n this.getNews(); \n \n }\n \ncomponentWillUnmount(){\n this._isMounted = false;\n}\n\nasync getLogo(){\n //let x = cryptocurrencies[this.props.coinName]\n //let x = CoinId.filter(coin => coin.name === this.props.coinName)\n let ID = CoinId.filter(coin => coin.name === this.props.coinName)\n let x = ID[0].ID\n\n if(x !== undefined)\n fetch('https://api.coingecko.com/api/v3/coins/'+x+'?tickers=false&market_data=false&community_data=false&developer_data=false&sparkline=false')\n .then(res => res.json())\n .then((data) => {\n if (this._isMounted && data !== undefined){\n this.setState({logo: data.image.small })}\n })\n .catch(console.log)\n}\n\n\ngetNews = ()=>{\n\n let ID = CoinId.filter(coin => coin.name === this.props.coinName)\n let x = ID[0].ID\n \n var request = require(\"request\"); \n if(x !== undefined){\n var options = { method: 'GET',\n url: 'https://cors-anywhere.herokuapp.com/https://developers.coinmarketcal.com/v1/events',\n\n //url: 'https://thingproxy.freeboard.io/fetch/https://developers.coinmarketcal.com/v1/events',\n qs: { max: '10', coins: x},\n headers: \n { Accept: 'application/json',\n 'Accept-Encoding': 'deflate, gzip',\n 'x-api-key': 'xjR9ooNffv1X72pJdilty4PdJnlAhTY5LAewxuY4' } };\n \n request(options, function (error, response, body) {\n if (error) throw new Error(error);\n \n if(JSON.parse(body).body !== undefined){\n this.setState({news:JSON.parse(body).body,loading:false})\n }\n }.bind(this));\n } \n setTimeout(()=>this.setState({loading:false}),1000)\n\n}\n\n\nconstructor(props,context){\n super(props)\n this.state = {\n\n summaryModalShow: false,\n hide:this.props.onHide,\n loading:true,\n news:null,\n logo:[],\n \n \n }\n\n }\n\n\n\n render(){\n let m = cryptocurrencies[this.props.coinName]\n let news = ''\n if(this.state.loading){\n news =
\n \n

\n \n
\n }\n if(this.state.news !== null && !this.state.loading){\n \n news = this.state.news.map((news,index)=>(\n
\n
\n \n
\n {news.coins[0].fullname}\n
\n \n {news.title.en}\n \n
\n {news.date_event.slice(0,10)}\n \n
\n ))}\n \n else if(this.state.news == null && !this.state.loading){\n news =
\n \n
No Upcoming News\n
\n }\n \n return( \n \n \n \n \n \n
News for the Next 7 Days
\n
\n
\n \n \n {news}\n \n \n \n \n\n \n )\n }\n\n}\n\nexport default EventModal;","import React, {Component} from 'react';\nimport {Modal} from 'react-bootstrap';\nimport CoinId from './CoinId.json';\n\n\nvar cryptocurrencies = require('cryptocurrencies');\nvar numeral = require('numeral');\n\nclass CapModal extends Component {\n \ncomponentDidMount(){\n this._isMounted = true;\n this.getMarketCap();\n \n }\n\ncomponentDidUpdate(prevProps, prevState) {\n \n if(prevProps.coinName!==this.props.coinName){\n\n this.getMarketCap();\n }\n}\n\nasync getMarketCap(){\n /* this.setState({loading:true});\n let y = await cryptocurrencies[this.props.coinName]*/\n let ID = CoinId.filter(coin => coin.name === this.props.coinName)\n let y = ID[0].ID\n //fetch('https://api.coingecko.com/api/v3/simple/price?ids='+y.replace(/\\s+/g, '-').toLowerCase()+'&vs_currencies=usd&include_market_cap=true&include_24hr_change=ture&include_last_updated_at=ture')\n\n if(y !== undefined){\n fetch('https://api.coingecko.com/api/v3/simple/price?ids='+y+'&vs_currencies=usd&include_market_cap=true&include_24hr_change=ture&include_last_updated_at=ture')\n .then(res => res.json())\n .then((data) => {\n if (this._isMounted && data[y]!== undefined){\n this.setState({marketCap: data[y].usd_market_cap,loading:false},()=>console.log())}\n })\n .catch( setTimeout(()=>this.setState({loading:false}),500))}\n else{\n setTimeout(()=>this.setState({loading:false}),500) \n };\n }\n\n \ncomponentWillUnmount(){\n this._isMounted = false;\n}\n\n\nconstructor(props,context){\n super(props)\n this.state = {\n\n hide:this.props.onHide,\n loading:true,\n marketCap:null,\n coinChart:[],\n \n }\n\n }\n \n render(){\n\n let news = ''\n if(this.state.loading){\n news =
\n \n

\n \n
\n }\n if(this.state.marketCap !== undefined && !this.state.loading && this.props.name !== undefined){\n news = \n
\n
\n \n \n \n
\n \n
\n \n {this.props.name.toUpperCase()}\n \n
\n Market Cap: ${numeral(this.state.marketCap).format('0,0.00')}\n
\n }\n \n else if(!this.state.loading){\n news =
\n
\n \n
\n {this.props.name}\n
\n \n \n \n
\n Market Cap: Unknown\n
\n }\n \n return( \n \n \n \n \n \n
Market Cap
\n
\n
\n \n \n\n {news}\n \n \n \n \n\n \n )\n }\n\n}\n\nexport default CapModal;","import React, {Component} from 'react';\nimport {Modal} from 'react-bootstrap';\n\nimport CoinId from './CoinId.json';\n\n\nclass ChartModal extends Component {\n \ncomponentDidMount(){\n this._isMounted = true;\n\n this.getSlug();\n \n }\n\ncomponentDidUpdate(prevProps, prevState) {\n \n if(prevProps.coinName!==this.props.coinName){\n\n this.getSlug();\n }\n}\n\nchangeUSD=(event)=>{\n let currency = event.target.value;\n\t\tthis.setState({\n\t\t\tcurrency:currency\n },()=>this.getSlug())\n}\n\n\ngetSlug(){\n let ID = CoinId.filter(coin => coin.name === this.props.coinName)\n this.setState({coinChart:ID[0].slug},()=>console.log())\n}\n\n \ncomponentWillUnmount(){\n this._isMounted = false;\n}\n\n\nconstructor(props,context){\n super(props)\n this.state = {\n\n loading:true,\n coinChart:[],\n currency:1505\n \n }\n\n }\n \n render(){\n\n // let chart=this.showChart()\n \n return( \n \n \n \n \n \n
Price Chart
\n
\n
\n \n \n
\n \n
\n
\n\n \n
\n \n \n\n \n )\n }\n\n}\n\nexport default ChartModal;","import React, { Component } from 'react';\nimport AnimatedNumber from 'react-animated-number';\nimport CalculatorModal from './CalculatorModal';\nimport EventModal from './EventModal';\nimport CapModal from './CapModal';\nimport ChartModal from './ChartModal';\nimport Pundi from './Pundi.png';\nimport PundiLarge from './PundiLarge.webp';\nimport CoinId from './CoinId.json';\nimport TechnicalAnalysis,{ THEMES, INTERVALS} from 'react-tradingview-technical-analysis';\n\n\n\n\n//var apiKey = \"c0de896bb4dc62341cd2590ab7cd8a3231e7614493cd395852d41c7cdd9f293d\";\nlet AverageDev = 0;\nlet prevAverageDev = 0;\nlet movingAverage = 0;\nlet prevMovingAverage = 0;\nvar numeral = require('numeral');\nvar cryptocurrencies = require('cryptocurrencies');\nlet footer = '';\nlet button='';\n\nlet m = '';\nlet locked = false;\n\nclass CryptoCard extends Component {\n constructor(props) {\n super(props);\n\t\tthis.state = {\n loading: false,\t\n \t\n Open:[],\n Close:[],\n Time:[],\n High:[],\n Low:[],\n typical:[],\n movingAverage:0,\n prevMovingAverage:0,\n\n numDays:20,\n standardDev:2,\n \n Deviation:[],\n UpperBand:null,\n LowerBand:null,\n BBwidth:0,\n\n prevDeviation:[],\n prevUpperBand:null,\n prevLowerBand:null,\n prevBBWidth:null,\n //isCoin:false,\n\n price:0,\n prevPrice:null,\n modalOpen:false,\n eventOpen:false,\n capOpen:false,\n chartOpen:false,\n logo:null,\n website:null,\n marketCap:null,\n chart:false,\n charts:false,\n current:1505,\n coinChart:null,\n twitter:null,\n };\n this.add=this.add.bind(this);\n }\n componentDidMount() {\n this._isMounted = true;\n this.getLogo();\n // this.getMarketCap();\n \n this.getWebSocket();\n this.getPrice();\n }\n\n componentDidUpdate(prevProps, prevState) {\n if(prevProps.currency!==this.props.currency){\n this.setState({\n chart:false,\n price:0\n },()=>this.getWebSocket());\n\n this.getPrice(); \n }\n\n if(prevProps.time!==this.props.time){\n \n \n this.getPrice();\n }\n\n\n if(prevProps.locked!==this.props.locked){\n locked = this.props.locked\n \n \n }\n\n\n if(prevProps.coin!==this.props.coin){\n this.setState({\n price:0\n },()=>this.getLogo());\n \n \n this.getWebSocket();\n // this.getMarketCap();\n this.getPrice();\n \n }\n\n if(prevProps.message!==this.props.message){\n \n let percentage = 5/100*this.state.UpperBand\n this.getWebSocket();\n if(this.props.time === 'histoday'){\n if(this.state.price !== 0 && percentage !== 0 && this.state.UpperBand !== null && percentage == 5/100*this.state.UpperBand && this.state.price > this.state.UpperBand - percentage && this.state.price > this.state.movingAverage && (this.state.BBwidth - this.state.prevBBWidth ) * 100 > 0.7 && this.state.BBwidth *100 > 1 && this.state.BBwidth *100 < 25 && !this.props.locked){\n //Previous Value=> 10,15//\n this.props.green.findIndex(x =>x[0] !== undefined && x[0] == this.props.coin +'-'+ this.props.currency) === -1 && this.props.green.push([this.props.coin +'-'+ this.props.currency,numeral((this.state.BBwidth - this.state.prevBBWidth) * 100).format('0,0.00'),this.props.coin +'_'+ this.props.currency,numeral(this.state.BBwidth * 100).format('0,0.00'),(this.props.coin + '~' + this.props.currency),this.props.coin,this.props.currency,1115,this.state.twitter]);\n\n }\n else if( this.state.price !== 0 && percentage !== 0 && this.state.UpperBand !== null && percentage == 5/100*this.state.UpperBand && this.state.price > this.state.UpperBand - percentage && this.state.price > this.state.movingAverage && (this.state.BBwidth - this.state.prevBBWidth ) * 100 > 0.7 && this.state.BBwidth *100 > 25 && this.state.BBwidth *100 < 40 && !this.props.locked){\n //Previous Value=> 10,15//\n this.props.blue.findIndex(y =>y[0] !== undefined && y[0] == this.props.coin +'-'+ this.props.currency) === -1 && this.props.blue.push([this.props.coin +'-'+ this.props.currency,numeral((this.state.BBwidth - this.state.prevBBWidth) * 100).format('0,0.00'),this.props.coin +'_'+ this.props.currency,numeral(this.state.BBwidth * 100).format('0,0.00'),(this.props.coin + '~' + this.props.currency),this.props.coin,this.props.currency,1115,this.state.twitter]);\n\n \n }\n }\n else{\n if(this.state.price !== 0 && percentage !== 0 && this.state.UpperBand !== null && percentage == 5/100*this.state.UpperBand && this.state.price > this.state.UpperBand - percentage && this.state.price > this.state.movingAverage && (this.state.BBwidth - this.state.prevBBWidth ) * 100 > 0.2 && this.state.BBwidth *100 < 15 && !this.props.locked){\n //Previous Value=> 10,15//\n this.props.green.findIndex(x =>x[0] !== undefined && x[0] == this.props.coin +'-'+ this.props.currency) === -1 && this.props.green.push([this.props.coin +'-'+ this.props.currency,numeral((this.state.BBwidth - this.state.prevBBWidth) * 100).format('0,0.00'),this.props.coin +'_'+ this.props.currency,numeral(this.state.BBwidth * 100).format('0,0.00'),(this.props.coin + '~' + this.props.currency),this.props.coin,this.props.currency,1115,this.state.twitter]);\n \n }\n else if( this.state.price !== 0 && percentage !== 0 && this.state.UpperBand !== null && percentage == 5/100*this.state.UpperBand && this.state.price > this.state.UpperBand - percentage && this.state.price > this.state.movingAverage && (this.state.BBwidth - this.state.prevBBWidth ) * 100 > 0.2 && this.state.BBwidth *100 > 10 && this.state.BBwidth *100 < 30 && !this.props.locked){\n //Previous Value=> 10,15//\n this.props.blue.findIndex(y =>y[0] !== undefined && y[0] == this.props.coin +'-'+ this.props.currency) === -1 && this.props.blue.push([this.props.coin +'-'+ this.props.currency,numeral((this.state.BBwidth - this.state.prevBBWidth) * 100).format('0,0.00'),this.props.coin +'_'+ this.props.currency,numeral(this.state.BBwidth * 100).format('0,0.00'),(this.props.coin + '~' + this.props.currency),this.props.coin,this.props.currency,1115,this.state.twitter]);\n \n }\n \n\n }\n }\n }\n\n \n\n componentWillUnmount() {\n\t\tthis._isMounted = false;\n\t}\n \n \n getWebSocket(){\n \n let message = this.props.message\n let percentage = 5/100*this.state.UpperBand\n if(message.PRICE !== undefined && message.FROMSYMBOL === this.props.coin){\n this.setState({prevPrice:this.state.price,price:message.PRICE},()=>console.log())\n\n }\n \n }\n\n getStatus(){\n \n }\n\n async getPrice(){\n this.setState({Open:[],\n Close:[],\n High:[],\n Low:[],\n\n typical:[],\n Deviation:[],\n UpperBand:null,\n LowerBand:[],\n BBwidth:null,\n\n prevDeviation:[],\n prevUpperBand:[],\n prevLowerBand:[],\n prevBBWidth:null,\n currentPrice:null,\n \n\n },()=>console.log()) \n\n \n \n let url = 'https://min-api.cryptocompare.com/data/v2/'+this.props.time+'?fsym='+ this.props.coin +'&tsym=' +this.props.currency+'&limit=20&api_key='+this.props.apiKey\n //let url = 'https://min-api.cryptocompare.com/data/v2/histoday?fsym=BTC&tsym=USD&limit=20&api_key=156c5da04db8726ab5fd90a2a789e4fe78cf40307f8ac2038ae9c17532ae0624'\n\t\tfetch(url)\n\t\t\t .then(res => res.json())\n\t\t\t .then((data) => {\n\t\t\t\tif (this._isMounted){\n\n let x = data.Data.Data\n \n for(var i = 0; i < 21; i++){\n this.setState({Open:[...this.state.Open,x[i].open],\n Close:[...this.state.Close,x[i].close],\n High:[...this.state.High,x[i].high],\n Low:[...this.state.Low,x[i].low],\n \n\n typical:[...this.state.typical,(x[i].high + x[i].low + x[i].close) / 3],\n }) \n \n }\n var total = 0;\n var prevTotal = 0;\n //\n for(var f = 0; f < this.state.Close.length; f++) {\n total += this.state.Close[f];\n }\n this.setState({movingAverage:total/this.state.Close.length},()=>console.log())\n\n movingAverage = total / this.state.Close.length;\n\n for(var y = 0; y < this.state.Close.length-1; y++) {\n prevTotal += this.state.Close[y];\n }\n this.setState({prevMovingAverage:prevTotal/(this.state.Close.length-1)},()=>console.log())\n \n prevMovingAverage = prevTotal / (this.state.Close.length-1);\n //\n \n for(var m = 0; m < this.state.Close.length; m++) {\n this.setState({Deviation:[...this.state.Deviation,(this.state.Close[m] - movingAverage) * (this.state.Close[m] - movingAverage)]},()=>console.log())\n } \n\n for(var u = 0; u < this.state.Close.length-1; u++) {\n this.setState({prevDeviation:[...this.state.prevDeviation,(this.state.Close[u] - prevMovingAverage) * (this.state.Close[u] - prevMovingAverage)]},()=>console.log())\n } \n }\n\n let totalPrevDev = 0;\n for(var z = 0; z < this.state.prevDeviation.length; z++) {\n totalPrevDev += this.state.prevDeviation[z];\n }\n prevAverageDev = Math.sqrt(totalPrevDev / this.state.prevDeviation.length);\n this.setState({prevUpperBand:prevMovingAverage + (2 * prevAverageDev),\n prevLowerBand:prevMovingAverage - (2 * prevAverageDev),\n },()=>this.setState({prevBBWidth:(this.state.prevUpperBand - this.state.prevLowerBand) / this.state.prevMovingAverage},()=>console.log()\n ))\n\n \n let totalDev = 0;\n for(var n = 0; n < this.state.Deviation.length; n++) {\n totalDev += this.state.Deviation[n];\n }\n AverageDev = Math.sqrt(totalDev / this.state.Deviation.length);\n this.setState({UpperBand:movingAverage + (2 * AverageDev),\n LowerBand:movingAverage - (2 * AverageDev),\n },()=>this.setState({BBwidth:(this.state.UpperBand - this.state.LowerBand) / this.state.movingAverage},()=>console.log()\n ))\n \n if(this.props.time === 'histoday'){\n if( this.state.BBwidth !== null && this.state.BBwidth *100 < 15 && this.state.BBwidth < this.state.prevBBWidth && !this.props.locked){\n this.props.red.findIndex(x =>x[0] !== undefined && x[0] == this.props.coin +'-'+ this.props.currency) === -1 && this.props.red.push([this.props.coin +'-'+ this.props.currency,numeral((this.state.BBwidth - this.state.prevBBWidth) * 100).format('0,0.00'),this.props.coin +'_'+ this.props.currency,numeral(this.state.BBwidth * 100).format('0,0.00'),(this.props.coin + '~' + this.props.currency),this.props.coin,this.props.currency,1115,this.state.twitter]);\n }\n \n }\n else {\n if(this.state.BBwidth !== null && this.state.BBwidth *100 < 5 && this.state.BBwidth < this.state.prevBBWidth && !this.props.locked){\n this.props.red.findIndex(x =>x[0] !== undefined && x[0] == this.props.coin +'-'+ this.props.currency) === -1 && this.props.red.push([this.props.coin +'-'+ this.props.currency,numeral((this.state.BBwidth - this.state.prevBBWidth) * 100).format('0,0.00'),this.props.coin +'_'+ this.props.currency,numeral(this.state.BBwidth * 100).format('0,0.00'),(this.props.coin + '~' + this.props.currency),this.props.coin,this.props.currency,1115,this.state.twitter]);\n }\n \n } \n \n \n \n }) \n .catch(console.log)\n \n \n }\n\n async getLogo(){\n\n \n\n\n // var cryptocurrencies = require('cryptocurrencies');\n // let x = await cryptocurrencies[this.props.coin]\n // if(x === undefined){\n let ID = CoinId.filter(coin => coin.name === this.props.coin)\n let x = ID[0].ID\n // }\n if(x !== undefined)\n fetch('https://api.coingecko.com/api/v3/coins/'+x+'?localization=false&tickers=false&market_data=false&community_data=false&developer_data=false&sparkline=false')\n .then(res => res.json())\n .then((data) => {\n if (this._isMounted && data !== undefined){\n // console.log(\"datass\",data)\n this.setState({logo: data.image.small,logoLarge: data.image.large,website: data.links.homepage[0], twitter: data.links.twitter_screen_name},()=>(console.log()))}\n })\n .catch(console.log)\n \n }\n\n /*async getMarketCap(){\n let y = await cryptocurrencies[this.props.coin]\n if(y !== undefined)\n fetch('https://api.coingecko.com/api/v3/simple/price?ids='+y.replace(/\\s+/g, '-').toLowerCase()+'&vs_currencies=usd&include_market_cap=true&include_24hr_change=ture&include_last_updated_at=ture')\n .then(res => res.json())\n .then((data) => {\n if (this._isMounted && data[y.replace(/\\s+/g, '-').toLowerCase()].usd_market_cap !== undefined){\n this.setState({marketCap: data[y.replace(/\\s+/g, '-').toLowerCase()].usd_market_cap},()=>console.log())}\n })\n .catch(console.log)\n }*/\n \n\n add=(coin,currency)=>{\n this.props.add(coin,currency) \n }\n\n\n round(value){\n if (value){\n if(this.props.currency === 'USDT' ){\n return numeral(this.state.price).format('0,0.000');\n }\n else{\n return numeral(this.state.price).format('0,0.00000000');\n }\n }\n return 0;\n }\n\n \n chart(){\n let ID = CoinId.filter(coin => coin.name === this.props.coin)\n this.setState({coinChart:ID[0].slug},()=>console.log())\n if(this.props.currency === 'USDT'){\n this.setState({current:1505},()=>this.props.chartDisplay.push([this.state.coinChart,this.state.current,(this.props.coin + this.props.currency),false,this.props.coin]))\n }\n else if(this.props.currency === 'BTC'){\n this.setState({current:859},()=>this.props.chartDisplay.push([this.state.coinChart,this.state.current,(this.props.coin + this.props.currency),false,this.props.coin]))\n }\n else if(this.props.currency === 'ETH'){\n this.setState({current:145},()=>this.props.chartDisplay.push([this.state.coinChart,this.state.current,(this.props.coin + this.props.currency),false,this.props.coin]))\n }\n\n \n this.setState((prevState)=>{\n return {chart:!prevState.chart}\n })\n window.scrollTo(0,640); \n \n }\n\n bothCharts(){\n let ID = CoinId.filter(coin => coin.name === this.props.coin)\n this.setState({coinChart:ID[0].slug},()=>console.log())\n \n this.props.chartDisplay_USD.push([this.state.coinChart,'USDT',(this.props.coin + 'USDT'),false,this.props.coin]); \n \n this.setState((prevState)=>{\n return {chart:!prevState.chart}\n })\n // window.scrollTo(0,640); \n \n }\n\n trade(){\n let ID = CoinId.filter(coin => coin.name === this.props.coin);\n let coinSlug = ID[0].slug;\n \n\n this.props.prevTrade((this.props.coin + '~' + this.props.currency),this.props.coin,this.props.currency,coinSlug,this.state.twitter)\n this.bothCharts()\n //this.props.trade.push([(this.props.coin + '~' + this.props.currency),this.props.coin,this.props.currency,coinSlug])\n //this.props.enterTrade()\n //this.scroll((this.props.coin + '~' + this.props.currency))\n }\n\n scroll(hex){\n hex = document.getElementById(hex);\n //let name = this.props.coin + '~' + this.props.currency;\n let titleElement = document.getElementById(hex).value;\n let sting = hex.value\n console.log(\"string\",titleElement)\n titleElement.scrollIntoView({ behavior: 'smooth' })\n }\n\n \n speak(coin, price){\n let ID = CoinId.filter(coins => coins.name === coin)\n let x = ID[0].ID\n\n if(m !== price){\n this.props.speakPrice(x,price)\n m = price\n }\n }\n\n \n render() {\n if(this.props.findPrice !== null && this.props.findPrice === this.props.coin){\n this.speak(this.props.coin,this.state.price)\n }\n let priceChange =
0.00%
; \n \n if(numeral(((this.state.price - this.state.Close[19]) / this.state.Close[19]) * 100).format('0,0.00') > 0.00){\n priceChange =
{'+' + numeral(((this.state.price - this.state.Close[19]) / this.state.Close[19]) * 100).format('0,0.00')+'%'}
\n }\n else if(numeral(((this.state.price - this.state.Close[19]) / this.state.Close[19]) * 100).format('0,0.00') < 0.00){\n \n priceChange =
{numeral(((this.state.price - this.state.Close[19]) / this.state.Close[19]) * 100).format('0,0.00')+'%'}
\n }\n let percentage = 0;\n let logo = Pundi;\n let logoLarge = PundiLarge;\n if(this.state.logo !== null){\n logo = this.state.logo;\n logoLarge = this.state.logoLarge;\n }\n else{\n logo = Pundi;\n logoLarge = PundiLarge;\n }\n let modalClose = () => this.setState({modalOpen:false})\n let modalOpen = () => this.setState({modalOpen:true})\n let eventClose = () => this.setState({eventOpen:false})\n let eventOpen = () => this.setState({eventOpen:true})\n let capClose = () => this.setState({capOpen:false})\n let capOpen = () => this.setState({capOpen:true})\n let chartClose = () => this.setState({chartOpen:false})\n let chartOpen = () => this.setState({chartOpen:true})\n\n let link = 'https://www.binance.com/en/trade/'+ this.props.coin +'_'+this.props.currency\n footer = '';\n button='';\n let cryptocard='cryptocard';\n let change='';\n let num=
Price: this.setState({ modalOpen:true})} style={{\n transition: '0.1s ease-out',\n fontSize: 17,\n cursor:'pointer',\n transitionProperty:\n 'background-color, color, opacity'\n }}frameStyle={perc => (\n perc === 100 ? {} : {color: fontColor}\n )}\n duration={1500}\n formatValue={n=>this.round(n)}>Price: {this.state.price} {this.props.currency.slice(0,3)} {priceChange}
;\n percentage = 5/100*this.state.UpperBand\n \n\n let fontColor = 'rgb(245, 237, 237)';\n if(this.state.prevPrice < this.state.price){\n fontColor = 'rgb(98, 175, 34)';\n }\n else if(this.state.prevPrice > this.state.price){\n fontColor = 'rgba(230, 26, 60)';\n }\n else{\n fontColor = 'rgb(154, 236, 87)';\n }\n \n if(this.props.time === 'histoday'){\n if(this.state.BBwidth *100 < 15 && this.state.BBwidth < this.state.prevBBWidth){\n \n footer=\"footer1\"\n button = ; \n cryptocard=\"winner\" \n \n }\n else{\n footer=\"footer2\"\n }\n \n \n if(percentage !== 0 && this.state.UpperBand !== null && percentage == 5/100*this.state.UpperBand && this.state.price > this.state.UpperBand - percentage && this.state.price > this.state.movingAverage && (this.state.BBwidth - this.state.prevBBWidth ) * 100 > 0.7 && this.state.BBwidth *100 > 1 && this.state.BBwidth *100 < 25){\n //Previous Value=> 10,15//\n button = ; \n footer=\"footer3\";\n cryptocard=\"super\";\n\n }\n else if( percentage !== 0 && this.state.UpperBand !== null && percentage == 5/100*this.state.UpperBand && this.state.price > this.state.UpperBand - percentage && this.state.price > this.state.movingAverage && (this.state.BBwidth - this.state.prevBBWidth ) * 100 > 0.7 && this.state.BBwidth *100 > 25 && this.state.BBwidth *100 < 40){\n //Previous Value=> 10,15//\n button = ; \n \n }\n\n }\n else{\n if(this.state.BBwidth *100 < 5 && this.state.BBwidth < this.state.prevBBWidth){\n \n footer=\"footer1\"\n button = ;\n //if(this.state.BBwidth < this.state.prevBBWidth){\n cryptocard=\"winner\"\n //} \n }else{\n footer=\"footer2\"\n }\n\n if(this.state.price > this.state.UpperBand - percentage && this.state.price > this.state.movingAverage && (this.state.BBwidth - this.state.prevBBWidth ) * 100 > 0.2 && this.state.BBwidth *100 < 15){\n //Previous Value=> 0.3,3//\n button = ; \n footer=\"footer3\";\n cryptocard=\"super\";\n }\n else if(this.state.price > this.state.UpperBand - percentage && this.state.price > this.state.movingAverage && (this.state.BBwidth - this.state.prevBBWidth ) * 100 > 0.2 && this.state.BBwidth *100 > 10 && this.state.BBwidth *100 < 30){\n //Previous Value=> 10,15//\n button = ; \n \n }\n }\n\n\n if(this.state.BBwidth > this.state.prevBBWidth){\n change =< div className=\"changeUp\" title={'+'+numeral((this.state.BBwidth - this.state.prevBBWidth) * 100).format('0,0.00')+'%'}>\n } else{\n change =
\n }\n\n //
\n let body = ''\n \n body =
\n \n\n
\n {this.state.modalOpen&&}\n \n \n
\n \n {change}\n\n \n \n \n \n \n {button}\n \n
\n \n
\n this.setState({ capOpen:true})}>\n {this.state.capOpen&&}\n
\n\n
\n this.setState({ chartOpen:true})}>\n {this.state.chartOpen&&}\n
\n \n {this.props.coin}-{this.props.currency.slice(0,3)}\n \n \n
\n
this.setState({ eventOpen:true})} title=\"See Upcoming News\">
\n {this.state.eventOpen&&}\n\n \n \n \n\n {num} \n \n \n
this.chart()}>Previous Width: {numeral(this.state.prevBBWidth * 100).format('0,0.00')}%
\n
this.trade()}>Width: {numeral(this.state.BBwidth * 100).format('0,0.00')}%
\n \n \n
\n \n /*{this.state.chart &&
this.chart()}>\n \n\n
\n \n
} */\n \n return (\n \n
\n\n\n\n {body}\n \n \n \n \n
\n \n );\n }\n}\n\nexport default CryptoCard;","import React, { Component } from 'react';\n\nclass List extends Component {\n constructor(props) {\n super(props);\n this.state = {\n accepted:true,\n rejected:true\n \n }\n }\n\n accept=()=>{\n this.setState({accepted:false},()=>console.log())\n }\n\n reject=()=>{\n this.setState({rejected:false},()=>console.log())\n }\n\n render() {\n return (\n
\n
  • {this.props.list} {this.state.accepted &&} {this.state.rejected &&}
  • \n
    \n );\n }\n}\n\nexport default List;","import React, {Component} from 'react';\nimport List from './List';\n\nclass SideDrawer extends Component {\n constructor(props) {\n super(props);\n this.state = {\n accepted:true,\n rejected:true\n\n }\n }\n\n clearLists(){\n this.props.clear()\n }\n\n hide=()=>{\n this.props.hide()\n }\n \n render(){\n // {this.state.accepted &&} {this.state.rejected &&}\n let drawerClasses = 'side-drawer';\n if(this.props.show){\n drawerClasses='side-drawer open';\n }\n \n return(\n \n);\n }\n}\nexport default SideDrawer;","import React, {Component} from 'react';\nimport {Modal} from 'react-bootstrap';\n\nclass ConverterModal extends Component {\n \ncomponentDidMount(){\n this._isMounted = true;\n\n \n }\n \ncomponentWillUnmount(){\n this._isMounted = false;\n}\n\n\nconstructor(props,context){\n super(props)\n this.state = {\n\n loading:true,\n \n }\n\n }\n \n render(){\n\n // let chart=this.showChart()\n \n return( \n \n \n \n \n \n
    Currency Converter
    \n
    \n
    \n \n \n \n
    \n \n \n
    \n \n \n\n \n )\n }\n\n}\n\nexport default ConverterModal;","import React, {Component} from 'react';\nimport List from './List';\nimport ConverterModal from './ConverterModal';\n\nclass StatusDrawer extends Component {\n constructor(props) {\n super(props);\n this.state = {\n accepted:true,\n rejected:true,\n current:this.props.red,\n converterOpen:false,\n\n redOpen:true,\n greenOpen:true,\n blueOpen:true,\n\n }\n }\n\n clearLists(){\n this.props.clear()\n }\n\n hide=()=>{\n this.props.hide()\n }\n \n green(){\n this.setState((prevState)=>{\n return {greenOpen:!prevState.greenOpen}\n })\n }\n\n red(){\n this.setState((prevState)=>{\n return {redOpen:!prevState.redOpen}\n })\n\n }\n\n blue(){\n this.setState((prevState)=>{\n return {blueOpen:!prevState.blueOpen}\n })\n }\n\n componentDidMount(prevState) {\n // this.red(prevState)\n \n }\n \n componentDidUpdate(prevProps, prevState) {\n if(prevProps.red!==this.props.red || prevProps.green!==this.props.green || prevProps.blue!==this.props.blue ){\n }\n\n if(prevProps.setNumber!==this.props.setNumber){\n }\n }\n\n newsOpen(){\n this.props.newsOpen()\n }\n\n\n Showlist=()=>{\n this.props.list()\n }\n render(){\n\n let converterModalClose = () => this.setState({converterOpen:false})\n let converterModalOpen = () => this.setState({converterOpen:true})\n\n let warning = ''\n let signRed= ;\n let signGreen= ;\n let signBlue= ;\n let toggle = \n\n\n if(!this.state.redOpen){\n signRed = \n toggle = \n }\n\n if(!this.state.greenOpen){\n signGreen = \n }\n\n if(!this.state.blueOpen){\n signBlue = \n }\n \n let drawerClasses = 'status-drawer';\n if(this.props.show){\n drawerClasses='status-drawer open'; \n \n }\n let customText = \"\"\n if(!this.props.news){\n customText = \"See News\"\n }\n else{\n customText = \"See Market\" \n }\n \n\n \n \n return(\n \n);\n }\n}\nexport default StatusDrawer;","import React from 'react';\n\nconst backdrop = props =>(\n
    \n);\n\nexport default backdrop;","import React, {Component} from 'react';\nimport {Modal} from 'react-bootstrap';\n\nimport CoinId from './CoinId.json';\n\n\nclass TopCap extends Component {\n \ncomponentDidMount(){\n this._isMounted = true;\n\n //this.getSlug();\n \n }\n\ncomponentDidUpdate(prevProps, prevState) {\n \n //if(prevProps.coinName!==this.props.coinName){\n\n //this.getSlug();\n //}\n}\n\n\n \ncomponentWillUnmount(){\n this._isMounted = false;\n}\n\n\nconstructor(props,context){\n super(props)\n this.state = {\n loading:true,\n top:10\n \n }\n\n }\n\n changeCount=(event)=>{\n let count = event.target.value;\n this.setState({\n top:count\n },()=>console.log())\n }\n \n render(){\n\n // let chart=this.showChart()\n \n return( \n \n \n \n \n \n
    Top Market Cap
    \n
    \n
    \n \n \n\n
    \n \n
    \n \n
    \n
    \n \n
    \n \n \n\n \n )\n }\n\n}\n\nexport default TopCap;","import React, {Component} from 'react';\nimport {Modal} from 'react-bootstrap';\nimport TechnicalAnalysis,{ THEMES, INTERVALS} from 'react-tradingview-technical-analysis';\n\nclass GaugeModal extends Component {\n \ncomponentDidMount(){\n this._isMounted = true;\n\n \n }\n \ncomponentWillUnmount(){\n this._isMounted = false;\n}\n\n\nconstructor(props,context){\n super(props)\n this.state = {\n\n loading:true,\n \n }\n\n }\n \n render(){\n\n // let chart=this.showChart()\n let body= ''\n if(this._isMounted){\n body = \n }\n \n return( \n \n \n \n \n \n
    Gauge
    \n
    \n
    \n \n \n
    \n \n {body}\n
    \n \n \n
    \n \n \n\n \n )\n }\n\n}\nexport default GaugeModal;","import React, { Component } from 'react';\nimport AnimatedNumber from 'react-animated-number';\nimport Pundi from './Pundi.png';\nimport CoinId from './CoinId.json';\nimport CapModal from './CapModal';\nimport EventModal from './EventModal';\n\n\nvar numeral = require('numeral');\nvar cryptocurrencies = require('cryptocurrencies');\n\n\nclass TradeCard extends Component {\n constructor(props) {\n super(props);\n\t\tthis.state = {\n loading: false,\t\n capOpen:false,\n eventOpen:false,\n\n price:0,\n prevPrice:null,\n logoLarge:null,\n website:null,\n twitter:null,\n\n entry:0,\n target:0,\n asset:0,\n stoploss:0,\n fee:0,\n \n profit:0,\n percent:0,\n request:false,\n summary:false,\n\n\n\n //timer\n time: {\n hours: 0,\n minutes: 0,\n seconds: 0,\n milliseconds: 0,\n },\n duration: 10 * 60 * 1000,\n timer: null\n \n \n };\n this.startTimer = this.start.bind(this);\n // this.add=this.add.bind(this);\n }\n componentDidMount() {\n this._isMounted = true;\n // if(this.props.coin +'-'+ this.props.currency === this.props.currentGold){\n //console.log('dsd', this.props.coin +'-'+ this.props.currency ,this.props.currentGold,this.props.tradePrice)\n // }\n this.getLogo();\n\n if(this.props.trade[1] +'-' + this.props.trade[2] === this.props.currentGold){\n this.startTimer()\n\n }\n //this.getWebSocket();\n\n }\n\n componentDidUpdate(prevProps, prevState) {\n\n if(prevProps.tradePrice!==this.props.tradePrice){\n \n this.getWebSocket();\n \n }\n\n \n\n \n if(prevProps.trade[0]!==this.props.trade[0]){\n this.setState({\n price:0\n },()=> this.getWebSocket());\n this.getLogo();\n \n \n }\n\n \n if(this.props.tradeDetailRequest){\n this.request(this.state,this.props.trade[1],this.props.trade[2],(((this.state.price - this.state.entry)/this.state.entry)*100))\n \n \n }\n\n \n if(this.props.requestSummary){\n this.summaryRequest(this.state,this.props.trade[1],this.props.trade[2],(((this.state.price - this.state.entry)/this.state.entry)*100))\n \n \n }\n\n if(prevProps.listenEntry !== this.props.listenEntry && this.props.trade[1] === this.props.assetTrade){\n this.setState({entry:this.props.listenEntry},()=>console.log()) \n if(this.props.listenAmount > 0 && this.props.listenEntry > 0 && this.state.asset > 0){\n this.filled()\n }\n }\n\n if(prevProps.listenAmount !== this.props.listenAmount && this.props.trade[1] === this.props.assetTrade){\n this.setState({asset:this.props.listenAmount},()=>console.log()) \n if(this.props.listenAmount > 0 && this.props.listenEntry > 0 && this.state.entry > 0){\n this.filled()\n }\n }\n\n if(prevProps.listenTarget !== this.props.listenTarget && this.props.trade[1] === this.props.assetTrade){\n this.setState({target:this.props.listenTarget},()=>console.log()) \n }\n \n \n }\n\n \n\n componentWillUnmount() {\n\t\tthis._isMounted = false;\n\t}\n \n \n getWebSocket(){\n \n let message = this.props.tradePrice\n // console.log(this.props.tradePrice)\n if(message.PRICE !== undefined && message.FROMSYMBOL === this.props.trade[1]){\n this.setState({prevPrice:this.state.price,price:message.PRICE},()=> console.log()) \n\n }\n // name,sold,entry,amount,closeTrade\n if(message.MESSAGE === \"INVALID_SUB\"){\n this.props.sell(this.props.currentGold,this.props.onSpent,this.state.entry,this.state.asset,this.props.trade[1] +'~' + this.props.trade[2] ,this.state.time.minutes, this.state.time.seconds)\n }\n else if(this.props.trade[1] +'-' + this.props.trade[2] === this.props.currentGold && this.state.entry === 0 && message.PRICE !== undefined && message.FROMSYMBOL === this.props.trade[1]){\n this.setState({entry:message.PRICE,target:message.PRICE + (message.PRICE * this.props.targetPercent),stoploss:message.PRICE - (message.PRICE * 0.008),fee:message.PRICE - (message.PRICE * 0.002),asset:this.props.onSpent/message.PRICE})\n //console.log('dsd',this.state.entry,this.state.target,this.state.asset)\n\n }\n else{\n if(this.state.price >= this.state.target && this.state.target !== 0){\n this.sell()\n }\n else if(this.state.price <= this.state.stoploss && this.state.stoploss !== 0){\n this.stopLoss()\n }\n\n }\n \n \n }\n\n msToTime(duration) {\n let milliseconds = parseInt((duration % 1000));\n let seconds = Math.floor((duration / 1000) % 60);\n let minutes = Math.floor((duration / (1000 * 60)) % 60);\n let hours = Math.floor((duration / (1000 * 60 * 60)) % 24);\n \n hours = hours.toString().padStart(2, '0');\n minutes = minutes.toString().padStart(2, '0');\n seconds = seconds.toString().padStart(2, '0');\n milliseconds = milliseconds.toString().padStart(3, '0');\n \n return {\n hours,\n minutes,\n seconds,\n milliseconds\n };\n }\n\n\n start() {\n if (!this.state.timer) {\n this.state.startTime = Date.now();\n this.timer = window.setInterval(() => this.run(), 10);\n }\n }\n\n run() {\n const diff = Date.now() - this.state.startTime;\n \n // If you want to count up\n // this.setState(() => ({\n // time: this.msToTime(diff)\n // }));\n \n // count down\n let remaining = this.props.tradeDuration - diff;\n if (remaining < 0) {\n remaining = 0;\n }\n this.setState(() => ({\n time: this.msToTime(remaining)\n }));\n if (remaining === 0) {\n window.clearTimeout(this.timer);\n this.timer = null;\n\n this.expired()\n }\n }\n\n sell(){\n //console.log('sold',)\n if(this.props.onTrade){\n this.props.sell(this.props.currentGold,this.state.asset * this.state.target,this.state.entry,this.state.asset,this.props.trade[1] +'~' + this.props.trade[2], this.state.time.minutes, this.state.time.seconds)\n }\n }\n\n stopLoss(){\n if(this.props.onTrade){\n this.props.sell(this.props.currentGold,this.state.asset * this.state.stoploss,this.state.entry,this.state.asset,this.props.trade[1] +'~' + this.props.trade[2], this.state.time.minutes, this.state.time.seconds)\n }\n }\n\n expired(){\n //console.log('sold',)\n if(this.props.onTrade){\n this.props.sell(this.props.currentGold,this.state.asset * this.state.price,this.state.entry,this.state.asset,this.props.trade[1] +'~' + this.props.trade[2], this.state.time.minutes, this.state.time.seconds)\n }\n }\n\n \n async getLogo(){\n\n let ID = CoinId.filter(coin => coin.name === this.props.trade[1])\n let x = ID[0].ID\n\n if(x !== undefined)\n fetch('https://api.coingecko.com/api/v3/coins/'+x+'?localization=false&tickers=false&market_data=false&community_data=false&developer_data=false&sparkline=false')\n .then(res => res.json())\n .then((data) => {\n if (this._isMounted && data !== undefined){\n\n this.setState({logo: data.image.small,logoLarge: data.image.large,website: data.links.homepage[0], twitter: data.links.twitter_screen_name},()=>(console.log()))}\n })\n .catch(console.log)\n \n }\n \n\n\n round(value){\n if (value){\n if(this.props.trade[2] === 'USDT' ){\n return numeral(this.state.price).format('0,0.0000');\n }\n else{\n return numeral(this.state.price).format('0,0.00000000');\n }\n }\n return 0;\n }\n\n assetChange = (event) => {\n let asset = event.target.value;\n this.setState({asset:asset},()=>console.log())\n }\n\n entryChange = (event) => {\n let entry = event.target.value;\n this.setState({entry:entry},()=>console.log())\n }\n\n targetChange = (event) => {\n let target = event.target.value;\n this.setState({target:target},()=>console.log())\n }\n\n request(details, name, currency, profit){\n this.setState({request:true},()=>console.log())\n if(this.state.request){\n this.props.speakTradeDetails(details, name, currency, profit)\n this.setState({request:false},()=>console.log())}\n }\n\n\n summaryRequest(details, name, currency, profit){\n this.setState({summary:true},()=>console.log())\n if(this.state.summary){\n this.props.summaryRequest(details, name, currency, profit)\n this.setState({summary:false},()=>console.log())}\n }\n\n filled(){\n this.props.oblivion() \n }\n\n\n\n \n render() {\n // console.log(this.props.trade[1], this.props.assetTrade, this.props.trade[1] === this.props.assetTrade)\n // if(this.props.tradeDetailRequest){\n // console.log('details',this.props.tradeDetailRequest)\n // this.request(this.state,this.props.trade[1],this.props.trade[2],(((this.state.price - this.state.entry)/this.state.entry)*100))\n // }\n let logo = Pundi;\n\n if(this.state.logo !== null){\n logo = this.state.logoLarge;\n \n }\n else{\n logo = Pundi;\n }\n \n let capClose = () => this.setState({capOpen:false})\n let capOpen = () => this.setState({capOpen:true})\n let eventClose = () => this.setState({eventOpen:false})\n let eventOpen = () => this.setState({eventOpen:true})\n\n let link = 'https://www.binance.com/en/trade/'+ this.props.trade[1] +'_'+this.props.trade[2]\n \n let num=
    Price: this.setState({ modalOpen:true})} style={{\n transition: '0.1s ease-out',\n fontSize: 15,\n cursor:'pointer',\n transitionProperty:\n 'background-color, color, opacity'\n \n }}frameStyle={perc => (\n perc === 100 ? {} : {color: fontColor}\n )}\n duration={1500}\n formatValue={n=>this.round(n)}>Price: {this.state.price} {this.props.trade[2].slice(0,3)}
    ;\n \n \n let fontColor = 'rgb(245, 237, 237)';\n if(this.state.prevPrice < this.state.price){\n fontColor = 'rgb(98, 175, 34)';\n }\n else if(this.state.prevPrice > this.state.price){\n fontColor = 'rgba(230, 26, 60)';\n }\n else{\n fontColor = 'rgb(154, 236, 87)';\n }\n \n \n\n \n let body = ''\n \n body = \n \n \n
    \n
    \n
    \n \n \n \n \n \n \n {num}\n \n

    Entry: {this.state.entry}

    \n

    Asset: {this.state.asset}

    \n

    Amount: ${numeral(this.state.asset * this.state.entry).format('0,00')}

    \n

    Target: {this.state.target}

    \n

    Countdown: {this.state.time.minutes} : {this.state.time.seconds}

    \n \n
    \n
    \n

    ${numeral(this.state.asset * this.state.price).format('0,0.00')}

    \n {numeral(((this.state.price - this.state.entry)/this.state.entry)*100).format('0,0.00') > 0 &&

    +{numeral(((this.state.price - this.state.entry)/this.state.entry)*100).format('0,0.00')}%

    }\n {numeral(((this.state.price - this.state.entry)/this.state.entry)*100).format('0,0.00') < 0 &&

    {numeral(((this.state.price - this.state.entry)/this.state.entry)*100).format('0,0.00')}%

    }\n
    P&L: {numeral((this.state.asset * this.state.price) - (this.state.asset * this.state.entry)).format('0,0.00')}
    \n

    Target: ${numeral(this.state.asset * this.state.target).format('0,0.00')} ({numeral(((this.state.target - this.state.entry)/this.state.entry)*100).format('0,0.00')}%)

    \n
    \n\n
    \n
    \n
    \n this.props.removeTrade(this.props.trade)} class=\"fas fa-power-off\">\n
    \n \n \n \n\n
    \n this.setState({ capOpen:true})}>\n {this.state.capOpen&&}\n
    \n\n
    \n this.setState({ eventOpen:true})}>\n {this.state.eventOpen&&}\n
    \n \n
    \n \n
    \n
    \n\n \n\n\n
    \n
    \n\t\t\t\t\n\t\t\t\t\t\t\n \n

    Asset

    \n\t\t\t
    \n\n
    \n\t\t\t\t\n\t\t\t\t\t\t\n \n

    Entry

    \n\t\t\t
    \n\n
    \n\t\t\t\t\n\t\t\t\t\t\t\n \n

    Target

    \n\t\t\t
    \n
    \n \n \n
    \n \n \n \n return (\n \n
    \n\n {body} \n\n
    \n \n );\n }\n}\n\nexport default TradeCard;","const SpeechRecognition = window.SpeechRecognition || window.webkitSpeechRecognition ;\n\nexport const recognition = new SpeechRecognition();","import React, {Component} from 'react';\nimport './App.css';\nimport 'bootstrap/dist/css/bootstrap.min.css';\n//import {useHistory} from '.react-router-dom';\nimport Navbar from './Components/Navbar';\nimport CryptoCard from './Components/CryptoCard';\nimport SideDrawer from './Components/SideDrawer';\nimport StatusDrawer from './Components/StatusDrawer';\nimport Backdrop from './Components/Backdrop';\nimport TopCap from './Components/TopCap';\nimport CoinId from './Components/CoinId.json';\nimport GaugeModal from './Components/GaugeModal';\nimport TradeCard from './Components/TradeCard';\nimport TradingViewWidget, { Themes } from 'react-tradingview-widget';\nimport uniswap from './Components/uniswap.jpg';\nimport bitcoin from './Components/bitcoin.jpg';\nimport ethereum from './Components/ethereum.jpg';\n\nimport {recognition} from './Components/speech/Speech';\n//import { useSpeechSynthesis } from 'react-speech-kit';\n\n//import Voice from './Components/speech/Voice';\n//import Speech from 'react-speech';\n\nimport { toHaveStyle } from '@testing-library/jest-dom';\n\nvar numeral = require('numeral');\nlet findPrice = null;\nlet chosenAsset = null;\nlet presyo = null;\nlet priceText = null;\nlet findAsset=null;\nlet textMessage = '';\nlet UK=[];\nlet marketData=[];\n\n//let history = useHistory();\n\n\n\nrecognition.start();\nvar apiKey = \"156c5da04db8726ab5fd90a2a789e4fe78cf40307f8ac2038ae9c17532ae0624\"\nvar ccStreamer = new WebSocket('wss://streamer.cryptocompare.com/v2?api_key=' + apiKey);\nvar api = \"e1b4be0e5ea0e0c4716ced970599b9191f5b9078a16a15b1e45d335364543c61\"\nvar Streamer = new WebSocket('wss://streamer.cryptocompare.com/v2?api_key=' + api); \n\n\n\nclass App extends Component {\n constructor(props) {\n super(props);\n\t\tthis.state = {\n CurrencyType: 'USDT',\n TimeFrame: 'histoday',\n currentPrice:[],\n setNumber:1,\n // Coin:['ZRX','BAT','BTC','BCH','BSV','ADA','LTC','LINK'],\n Coin:['BTC','ETH','LINK','MATIC','BNB','UNI',\n 'YFI','ADA','TRX','DOT','BCH','NEO','OMG',\n 'ICP','XRP','EOS','VET','LTC','ATOM',\n 'FLOW','BAND','XTZ','ZEC','XMR','SUSHI',\n 'CRV','GTC','ONT','XLM','SOL','ETC','SNX'],\n\n prevCoin:['BTC','ETH','LINK','MATIC','BNB','UNI',\n 'YFI','ADA','TRX','DOT','BCH','NEO','OMG',\n 'ICP','XRP','EOS','VET','LTC','ATOM',\n 'FLOW','BAND','XTZ','ZEC','XMR','SUSHI',\n 'CRV','GTC','ONT','XLM','SOL','ETC','SNX'],\n\n prevCurrency: 'USDT',\n added:[],\n sideDrawerOpen:false,\n statusDrawerOpen:false,\n //API:'156c5da04db8726ab5fd90a2a789e4fe78cf40307f8ac2038ae9c17532ae0624',\n apiKey:1,\n message:[],\n setRangeFrom:0,\n setRangeTo:16,\n\n open:false,\n topOpen:false,\n \n \n \n red:[],\n green:[],\n blue:[],\n locked:false,\n\n chartDisplay:[],\n chartDisplay_USD:[],\n\n newsOpen:false,\n news:[],\n loading:false,\n gaugeCoin:'',\n studies:[\"BB@tv-basicstudies\"],\n\n ETH_Sentiment:[],\n BTC_Sentiment:[],\n Defi_Cap:[0],\n trade:[],\n prevTrade:[],\n tradePrice:[],\n findCoin:'',\n\n findPrice:null,\n priceText:null,\n marketData:[],\n tradeDetailRequest:false,\n requestSummary:false,\n \n\n gaugeModalOpen:false,\n\n\n checker:false,\n findCommand:false,\n openCommand:false,\n removeAsset:false,\n priceCommand:false,\n chosenTrade:false,\n\n assetTrade:'',\n listenEntry:'',\n listenAmount:'',\n listenTarget:'',\n\n \n\n\n //GOLD DIGGER PROTOCOL\n historicalTrade:[],\n executedTrade:[],\n currentGold:[],\n capital:200,\n onSpent:0,\n onTrade:false,\n activeScan:false,\n profit:0,\n removeSoldChart:[],\n\n ///GOLD DIGGER OPTIONS\n scanColor:'green',\n resetHistory:0,\n targetPercent:0.03, \n tradeDuration: 5 * 60 * 1000,\n\n ///\n \n \n //TIMER\n\n time: {\n hours: 0,\n minutes: 0,\n seconds: 0,\n milliseconds: 0,\n },\n duration: 10 * 60 * 1000,\n timer: null\n }\n\n\n this.startTimer = this.start.bind(this);\n }\n\n//TIMER///\n msToTime(duration) {\n let milliseconds = parseInt((duration % 1000));\n let seconds = Math.floor((duration / 1000) % 60);\n let minutes = Math.floor((duration / (1000 * 60)) % 60);\n let hours = Math.floor((duration / (1000 * 60 * 60)) % 24);\n\n hours = hours.toString().padStart(2, '0');\n minutes = minutes.toString().padStart(2, '0');\n seconds = seconds.toString().padStart(2, '0');\n milliseconds = milliseconds.toString().padStart(3, '0');\n\n return {\n hours,\n minutes,\n seconds,\n milliseconds\n };\n }\n\n\n start() {\n if (!this.state.timer) {\n this.state.startTime = Date.now();\n this.timer = window.setInterval(() => this.run(), 10);\n }\n }\n\n run() {\n const diff = Date.now() - this.state.startTime;\n \n // If you want to count up\n // this.setState(() => ({\n // time: this.msToTime(diff)\n // }));\n \n // count down\n let remaining = this.state.duration - diff;\n if (remaining < 0) {\n remaining = 0;\n }\n this.setState(() => ({\n time: this.msToTime(remaining)\n }));\n if (remaining === 0) {\n window.clearTimeout(this.timer);\n this.timer = null;\n\n this.listenScan()\n }\n }\n//TIMER///\n\n\n getPrice(set){\n\nlet prev = this.state.prevCoin;\nlet prevCurrency = this.state.prevCurrency;\nlet x = this.state.Coin;\nlet m = this.state.CurrencyType;\nlet sets = set;\n\nccStreamer.onopen = function onStreamOpen() {\n \n var subRequest = {\n \"action\": \"SubAdd\",\n \"subs\": x.map((coin)=>(\"5~CCCAGG~\"+coin+\"~\"+m))\n };\n \n ccStreamer.send(JSON.stringify(subRequest));\n \n \n \n}\n\n\nccStreamer.onmessage = evt=> {\n this.setState({\n message:JSON.parse(evt.data)\n })\n var message = evt.data; \n}\n//if(sets !== undefined && this.state.prevCoin !== this.state.Coin || prevCurrency !== this.state.CurrencyType){\n\nif(sets !== undefined || prevCurrency !== this.state.CurrencyType){\n \n var subRemove = {\n \"action\": \"SubRemove\",\n \"subs\": prev.map((prevCoin)=>(\"5~CCCAGG~\"+prevCoin+\"~\"+prevCurrency))\n \n }; \n ccStreamer.send(JSON.stringify(subRemove)); \n \n var subRequest = {\n \"action\": \"SubAdd\",\n \"subs\": x.map((coin)=>(\"5~CCCAGG~\"+coin+\"~\"+m))\n \n };\n \n ccStreamer.send(JSON.stringify(subRequest)); \n \n \n ccStreamer.onmessage = evt=> {\n this.setState({\n message:JSON.parse(evt.data)\n })\n var hilo = evt.data;\n //console.log(\"Received from Cryptocompare: \" + message);\n \n \n }\n }\n this.setState({prevCoin:x})\n \n}\n\n\n getCurrentPrice(){\n let url = 'https://min-api.cryptocompare.com/data/pricemulti?fsyms='+ this.state.Coin +'&tsyms=' + this.state.CurrencyType +'&api_key=156c5da04db8726ab5fd90a2a789e4fe78cf40307f8ac2038ae9c17532ae0624';\n fetch(url)\n .then(res => res.json())\n .then((data) => {\n \n if (this._isMounted){\n this.setState({currentPrice:data},()=>console.log())}\n }).catch(console.log)\n\n }\n\n \n \n \n \n changeUSD = (event)=>{\n console.log(event)\n let currency = event.target.value;\n \n if(!this.state.locked){\n this.setState({red:[],green:[],blue:[],},()=>console.log())\n }\n\n\t\tthis.setState({\n prevCurrency:this.state.CurrencyType,\n\t\t\tCurrencyType: currency\n },()=>this.getPrice(this.state.setNumber))\n \n }\n\n \n\n changeSet = (event)=>{\n let set = event.target.value;\n\n if(!this.state.locked){\n this.setState({red:[],green:[],blue:[],},()=>console.log())\n }\n\n\n this.setState({prevCurrency:this.state.CurrencyType},()=>console.log())\n this.setState({setNumber:set},()=>console.log())\n if(set == 1){\n \n this.setState({prevCoin:this.state.Coin,CurrencyType:this.state.CurrencyType,\n Coin:['BTC','ETH','LINK','MATIC','BNB','UNI',\n 'YFI','ADA','TRX','DOT','BCH','NEO','OMG',\n 'ICP','XRP','EOS','VET','LTC','ATOM',\n 'FLOW','BAND','XTZ','ZEC','XMR','SUSHI',\n 'CRV','GTC','ONT','XLM','SOL','ETC','SNX']\n\n },()=>this.getPrice(set))\n }\t\t\n\n else if(set == 2){\n this.setState({prevCoin:this.state.Coin,CurrencyType:this.state.CurrencyType,\n Coin:['ALGO','ANKR','ANT','BNT','CVC','TOMO',\n 'SCRT','IOST','AVAX','RUNE','KAVA','ICX','ANC',\n 'ENJ','MANA','COTI','OGN','MKR','POWR','QTUM',\n 'HBAR','COMP','ZIL','SAND','ENS','IMX','ACH',\n 'NEAR','REP','APE','WAVES','SXP']\n //Coin:['ADX','ANKR','ANT','BNT','CVC','DMT','DAI','ENG','FUNX','GNO','HNS','GNT','MCO','MET','MANA','XEM','OGN','TRAC','POWR','QTUM','SRN','SOLVE','SNT','UBT','STRAT','TUSD','USDC','PAY','REP','WAXP','WAVES','UKG']\n },()=>this.getPrice(set))\n }\t\n \n else if (set == 3){\n this.setState({prevCoin:this.state.Coin,CurrencyType:this.state.CurrencyType,\n Coin:['DCR','FTT','NANO','TROY','WAN','BTT',\n 'KSM','OCEAN','CHR','DGB','BADGER','KMD','SRM','BTS',\n 'STORJ','CHZ','FIRO','FET','BLZ','RVN','MDT','SYS',\n 'HIVE','LSK','WAXP','ELF','MTL','NMR','REN','GALA','BAT','LRC']\n },()=>this.getPrice(set))\n }\t\t\n\n else if (set == 4) {\n this.setState({prevCoin:this.state.Coin,CurrencyType:'USDT',\n Coin:['YFII','SHIB','FIL','ALICE','LUNA','REQ',\n 'AXS','KDA','DYDX','1INCH','RARE','KEY','GRT','AAVE',\n 'CELR','EGLD','HOT','ARPA','THETA','KLAY','ROSE','IRIS',\n 'MINA','ORN','YGG','ASTR','TRIBE','GHST','FTM','WIN','FXS','ONE']\n },()=>this.getPrice(set))\n }\t\t\n }\n\n\n\n changeTime = (event)=>{\n let time = event.target.value;\n if(!this.state.locked){\n this.setState({red:[],green:[],blue:[],},()=>console.log())\n }\n\t\tthis.setState({TimeFrame: time},()=>console.log())\n \n }\n\n \n addCoin = (coin,currency)=>{\n this.setState({added:[...this.state.added,coin+'-'+currency]},()=>console.log())\n \n }\n\n prevTrade = (request,coin,currency,slug)=>{\n this.setState({trade:[...this.state.trade,[request,coin,currency,slug]]},()=>this.enterTrade())\n setTimeout(()=>this.htmlFinder(request),600)\n }\n\n enterTrade = () =>{\n let apix = api;\n let streamer = Streamer;\n\n \n let prevTrade = this.state.prevTrade;\n let currentTrade = this.state.trade;\n \n streamer.onopen = function onStreamOpen() {\n \n \n var Request = {\n \"action\": \"SubAdd\",\n \"subs\": currentTrade.map((trade)=>(\"2~Binance~\"+trade[0]))\n };\n \n streamer.send(JSON.stringify(Request));\n \n }\n \n streamer.onmessage = evt=> {\n this.setState({\n tradePrice:JSON.parse(evt.data)\n },()=>console.log())\n var message = evt.data; \n }\n\n /*------*/\n if(prevTrade !== this.state.trade){ \n\n \n var Remove = {\n \"action\": \"SubRemove\",\n \"subs\": prevTrade.map((prev)=>(\"2~Binance~\"+prev[0]))\n \n }; \n streamer.send(JSON.stringify(Remove)); \n \n var Request = {\n \"action\": \"SubAdd\",\n \"subs\": currentTrade.map((trade)=>(\"2~Binance~\"+trade[0]))\n \n };\n \n streamer.send(JSON.stringify(Request)); \n \n \n streamer.onmessage = evt=> {\n \n this.setState({\n tradePrice:JSON.parse(evt.data)\n })\n var hilo = evt.data; \n }\n }\n \n this.setState({prevTrade:this.state.trade},()=>console.log())\n \n }\n\n\n drawerToggleClickHandler =()=>{\n this.setState((prevState)=>{\n return {sideDrawerOpen: !prevState.sideDrawerOpen, statusDrawerOpen: false};\n });\n };\n\n \n\n statusToggleClickHandler =()=>{\n this.setState((prevState)=>{\n return {statusDrawerOpen: !prevState.statusDrawerOpen, sideDrawerOpen: false};\n });\n };\n\n backdropClickHandler =()=>{\n this.setState({sideDrawerOpen:false,statusDrawerOpen:false});\n \n };\n\n clearList=()=>{\n this.setState({added:[]},()=>console.log())\n }\n\n nextSet=()=>{\n if(this.state.setRangeFrom == 0){\n this.setState({setRangeFrom:16,setRangeTo:32},()=>this.getPrice)\n }\n else{\n this.setState({setRangeFrom:0,setRangeTo:16},()=>this.getPrice)\n }\n }\n\n remove=(coinChart)=>{\n const newCharts = this.state.chartDisplay.filter(e => (e !== coinChart))\n this.setState({chartDisplay:newCharts},()=>console.log())\n }\n\n removeUSD=(coinChart)=>{\n console.log(coinChart)\n const USD_Chart = this.state.chartDisplay_USD.filter(e => (e[4] !== coinChart[4]))\n this.setState({chartDisplay_USD:USD_Chart},()=>console.log())\n }\n\n \n\n removeAll=()=>{\n this.setState({chartDisplay_USD:[]},()=>console.log())\n }\n \n\n removeTrade=(trade)=>{\n console.log(trade[0],trade[1])\n const newTrade = this.state.trade.filter(e => (e[0] !== trade[0]))\n this.setState({trade:newTrade},()=>console.log())\n \n }\n \n\n removeScanTrade=(trade)=>{\n console.log(trade[0],trade[1])\n const newTrade = this.state.trade.filter(e => (e[0] !== trade[0]))\n this.setState({trade:newTrade},()=>console.log())\n\n if(!this.state.onTrade){\n this.listenScan()\n }\n \n }\n\n getSlug(currency){\n\n if(currency === 1505){\n currency = 'USD';\n }\n else if(currency === 859){\n currency = 'BTC';\n }\n else if(this.props.currency === 145){\n currency = 'ETH';\n }\n \n \n return currency;\n \n}\n\n\nchangeKey=(event)=>{\n let key = event.target.value\n this.setState({apiKey:key},()=>this.changeApi()) \n}\n\nchangeScanColor=(event)=>{\n let color = event.target.value\n this.setState({scanColor:color},()=>console.log(this.state.scanColor)) \n}\n\nchangeTarget=(event)=>{\n let targetPercent = event.target.value\n this.setState({targetPercent:targetPercent},()=>console.log(this.state.targetPercent)) \n}\n\nchangeReset=(event)=>{\n let reset = event.target.value\n this.setState({resetHistory:reset},()=>console.log(this.state.resetHistory)) \n}\n\nchangeTradeDuration=(event)=>{\n let duration = event.target.value\n this.setState({tradeDuration:duration},()=>console.log(this.state.tradeDuration)) \n}\n\n\n\n\nchangeApi=()=>{\n if(this.state.apiKey == 1){\n apiKey = \"156c5da04db8726ab5fd90a2a789e4fe78cf40307f8ac2038ae9c17532ae0624\"\n ccStreamer = new WebSocket('wss://streamer.cryptocompare.com/v2?api_key=' + apiKey);\n \n }\n else if(this.state.apiKey == 2){\n apiKey = \"c0de896bb4dc62341cd2590ab7cd8a3231e7614493cd395852d41c7cdd9f293d\"\n ccStreamer = new WebSocket('wss://streamer.cryptocompare.com/v2?api_key=' + apiKey);\n }\n\n else if(this.state.apiKey == 3){\n apiKey = \"e1b4be0e5ea0e0c4716ced970599b9191f5b9078a16a15b1e45d335364543c61\"\n ccStreamer = new WebSocket('wss://streamer.cryptocompare.com/v2?api_key=' + apiKey);\n }\n setTimeout(()=>this.getPrice(this.state.setNumber),2000)\n}\n\ngetNews=()=>{\n \n if(this.state.newsOpen){\n fetch('https://api.coingecko.com/api/v3/status_updates??project_type=coin&per_page=60')\n .then(res => res.json())\n .then((data) => {\n if (this._isMounted){\n this.setState({news:data.status_updates,loading:false},()=>(console.log()))}\n\n })\n .catch(console.log)}\n else this.getPrice(this.state.setNumber)\n\n}\n\nnewsOpen=()=>{\n this.setState({loading:true},()=>console.log())\n this.setState((prevState)=>{\n return {newsOpen: !prevState.newsOpen};\n },()=>this.getNews()); \n\n}\n\ngetRSI(){\n fetch('https://www.alphavantage.co/query?function=RSI&symbol=WAVESBTC&interval=daily&time_period=14&series_type=close&apikey=ZHCR5B7KFCZ0EONE')\n .then(res => res.json())\n .then((data) => {\n \nconsole.log('RSI',data)\n })\n .catch(console.log)\n //else this.getPrice(this.state.setNumber)\n}\n\n\ngetSentiment(){\n \n fetch('https://min-api.cryptocompare.com/data/tradingsignals/intotheblock/latest?fsym=BTC&api_key=e1b4be0e5ea0e0c4716ced970599b9191f5b9078a16a15b1e45d335364543c61')\n .then(res => res.json())\n .then((data) => {\n console.log(data)\nthis.setState({BTC_Sentiment:data.Data.largetxsVar},()=>console.log(this.state.BTC_Sentiment))\n })\n .catch(console.log)\n\n fetch('https://min-api.cryptocompare.com/data/tradingsignals/intotheblock/latest?fsym=ETH&api_key=e1b4be0e5ea0e0c4716ced970599b9191f5b9078a16a15b1e45d335364543c61')\n .then(res => res.json())\n .then((data) => {\n console.log(data)\nthis.setState({ETH_Sentiment:data.Data.largetxsVar},()=>console.log(this.state.ETH_Sentiment))\n })\n .catch(console.log)\n\n fetch('https://api.coingecko.com/api/v3/global/decentralized_finance_defi')\n .then(res => res.json())\n .then((data) => {\n if (this._isMounted){\n this.setState({Defi_Cap:data.data.defi_market_cap},()=>(console.log(data)))}\n\n })\n .catch(console.log)\n \n}\n\n\nfindingCoin = (event) => {\n let find= event.target.value;\n this.setState({findCoin:find},()=>console.log())\n}\n\n\nfree(){ \n document.querySelector('button').click();\nvar msg = new SpeechSynthesisUtterance('Test');\n var u = new SpeechSynthesisUtterance('All is Ok');\n u.text = 'Hello World'; \n u.lang = 'en-US';\n u.rate = 1;\n u.pitch = .9; \n speechSynthesis.speak(u);\n\n }\n\n//\n\n\n\n\n\n\n\n\n//SPEAK MESSAGE//\n\nlistenUSD = (event, message)=>{\n textMessage = message\n var u = new SpeechSynthesisUtterance('All is Ok');\n u.text = textMessage; \n u.lang = 'en-US'; \n u.rate = .9;\n u.pitch = .9; \n u.voice = UK; \n speechSynthesis.speak(u);\n\n let currency = event;\n\n if(!this.state.locked){\n this.setState({red:[],green:[],blue:[],},()=>console.log())\n }\n\n this.setState({\n prevCurrency:this.state.CurrencyType,\n CurrencyType: currency\n },()=>this.getPrice(this.state.setNumber))\n \n}\n\n\ndrawerOpen =(event)=>{\n\n textMessage = event;\n var u = new SpeechSynthesisUtterance('All is Ok');\n u.text = textMessage; \n u.lang = 'en-US'; \n u.rate = .9;\n u.pitch = 1; \n u.voice = UK; \n speechSynthesis.speak(u);\n this.setState({statusDrawerOpen:true},()=>this.speakStatus())\n };\n\n drawerClose =(event)=>{\n textMessage = event;\n var u = new SpeechSynthesisUtterance('All is Ok');\n u.text = textMessage; \n u.lang = 'en-US'; \n u.rate = .9;\n u.pitch = 1; \n u.voice = UK; \n speechSynthesis.speak(u);\n this.setState({statusDrawerOpen:false},()=>console.log())\n };\n\nspeakStatus(){\nif(this.state.green.length === 0 && this.state.blue.length === 0){\n textMessage = 'sorry captain, but there are no signals for the assets at the moment';\n}\nelse{\n textMessage = 'We identified '+ this.state.green.length + 'assets, signaling green, and '+ this.state.blue.length + 'assets, signaling blue';\n}\n var u = new SpeechSynthesisUtterance('All is Ok');\n u.text = textMessage; \n u.lang = 'en-US'; \n u.rate = 1;\n u.pitch = 1; \n u.voice = UK; \n speechSynthesis.speak(u);\n \n };\n\n listenTime = (event, message)=>{\n\n textMessage = message\n var u = new SpeechSynthesisUtterance('All is Ok');\n u.text = textMessage; \n u.lang = 'en-US'; \n u.rate = .9;\n u.pitch = 1; \n u.voice = UK; \n speechSynthesis.speak(u);\n let time = event\n\n if(!this.state.locked){\n this.setState({red:[],green:[],blue:[],},()=>console.log())\n }\n\n this.setState({TimeFrame: time},()=>console.log())\n \n \n}\n\nspeakPrice = (coin, price)=>{\n\n\n priceText = 'the price of ' + coin + ', is ' + price + ' dollars';\n findPrice = null; \n // useSpeechSynthesis(priceText);\n //speak({})\n console.log(priceText, findPrice) \n \n textMessage = priceText\n var u = new SpeechSynthesisUtterance('All is Ok');\n u.text = textMessage; \n u.lang = 'en-US'; \n u.rate = .9;\n u.pitch = .9; \n u.voice = UK; \n speechSynthesis.speak(u);\n\n \n\n}\n\naffirmative = (coin)=>{\n textMessage = 'Yes Captain, Opening the chart of ' + coin\n var u = new SpeechSynthesisUtterance('All is Ok');\n u.text = textMessage; \n u.lang = 'en-US'; \n u.rate = .9;\n u.pitch = .9; \n u.voice = UK; \n speechSynthesis.speak(u);\n \n}\n\nshowTop = ()=>{\n textMessage = 'Checking Top Cryptocurrencies'\n var u = new SpeechSynthesisUtterance('All is Ok');\n u.text = textMessage; \n u.lang = 'en-US'; \n u.rate = .9;\n u.pitch = .9; \n u.voice = UK; \n speechSynthesis.speak(u);\n \n}\n\ncloseTop = ()=>{\n textMessage = 'Closing the modal'\n var u = new SpeechSynthesisUtterance('All is Ok');\n u.text = textMessage; \n u.lang = 'en-US'; \n u.rate = .9;\n u.pitch = .9; \n u.voice = UK; \n speechSynthesis.speak(u);\n \n}\n\n\nremovingChart = ()=>{\n textMessage = 'Removing Chart'\n var u = new SpeechSynthesisUtterance('All is Ok');\n u.text = textMessage; \n u.lang = 'en-US'; \n u.rate = .9;\n u.pitch = 1; \n u.voice = UK; \n speechSynthesis.speak(u);\n \n}\n\nlistenSet = (event)=>{\n let set = event;\n\n textMessage = 'i am changing the sets'\n var u = new SpeechSynthesisUtterance('All is Ok');\n u.text = textMessage; \n u.lang = 'en-US'; \n u.rate = .9;\n u.pitch = .9; \n u.voice = UK; \n speechSynthesis.speak(u);\n\n\n if(!this.state.locked){\n this.setState({red:[],green:[],blue:[],},()=>console.log())\n }\n\n this.setState({prevCurrency:this.state.CurrencyType},()=>console.log())\n this.setState({setNumber:set},()=>console.log())\n if(set == 1){\n \n this.setState({prevCoin:this.state.Coin,CurrencyType:this.state.CurrencyType,\n Coin:['BTC','ETH','LINK','MATIC','BNB','UNI',\n 'YFI','ADA','TRX','DOT','BCH','NEO','OMG',\n 'ICP','XRP','EOS','VET','LTC','ATOM',\n 'FLOW','BAND','XTZ','ZEC','XMR','SUSHI',\n 'CRV','GTC','ONT','XLM','SOL','ETC','SNX']\n\n },()=>this.getPrice(set))\n }\t\t\n\n else if(set == 2){\n this.setState({prevCoin:this.state.Coin,CurrencyType:this.state.CurrencyType,\n Coin:['ALGO','ANKR','ANT','BNT','CVC','TOMO',\n 'SCRT','IOST','AVAX','RUNE','KAVA','ICX','ANC',\n 'ENJ','MANA','COTI','OGN','MKR','POWR','QTUM',\n 'HBAR','COMP','ZIL','SAND','ENS','IMX','ACH',\n 'NEAR','REP','APE','WAVES','SXP']\n\n },()=>this.getPrice(set))\n }\t\n \n else if (set == 3){\n this.setState({prevCoin:this.state.Coin,CurrencyType:this.state.CurrencyType,\n Coin:['DCR','FTT','NANO','TROY','WAN','BTT',\n 'KSM','OCEAN','CHR','DGB','BADGER','KMD','SRM','BTS',\n 'STORJ','CHZ','FIRO','FET','BLZ','RVN','MDT','SYS',\n 'HIVE','LSK','WAXP','ELF','MTL','NMR','REN','GALA','BAT','LRC']\n },()=>this.getPrice(set))\n }\t\t\n\n else if (set == 4) {\n this.setState({prevCoin:this.state.Coin,CurrencyType:'USDT',\n Coin:['YFII','SHIB','FIL','ALICE','LUNA','REQ',\n 'AXS','KDA','DYDX','1INCH','RARE','KEY','GRT','AAVE',\n 'CELR','EGLD','HOT','ARPA','THETA','KLAY','ROSE','IRIS',\n 'MINA','ORN','YGG','ASTR','TRIBE','GHST','FTM','WIN','FXS','ONE']\n },()=>this.getPrice(set))\n }\t\t\n}\n\n\n\nlistenScan = ()=>{\n // let set = event;\n let comment = 'Market Scan.Complete';\n this.setState({locked:false,activeScan:true},()=>console.log())\n\n textMessage = 'Scanning the market'\n var u = new SpeechSynthesisUtterance('All is Ok');\n u.text = textMessage; \n u.lang = 'en-US'; \n u.rate = .9;\n u.pitch = 1; \n u.voice = UK; \n speechSynthesis.speak(u);\n\n \n textMessage = 'Locking all signals.'\n var u = new SpeechSynthesisUtterance('All is Ok');\n u.text = textMessage; \n u.lang = 'en-US'; \n u.rate = .9;\n u.pitch = 1; \n u.voice = UK; \n speechSynthesis.speak(u);\n\n \n textMessage = 'this may take a while'\n var u = new SpeechSynthesisUtterance('All is Ok');\n u.text = textMessage; \n u.lang = 'en-US'; \n u.rate = .9;\n u.pitch = 1; \n u.voice = UK; \n speechSynthesis.speak(u);\n\n\n\n this.setState({red:[],green:[],blue:[],\n prevCurrency:this.state.CurrencyType,\n },()=>console.log())\n // this.setState({setNumber:set},()=>console.log())\n \n \n \t\n this.setState({set:4,prevCoin:this.state.Coin,CurrencyType:this.state.CurrencyType,\n Coin:['YFII','SHIB','FIL','ALICE','LUNA','REQ',\n 'AXS','KDA','DYDX','1INCH','RARE','KEY','GRT','AAVE',\n 'CELR','EGLD','HOT','ARPA','THETA','KLAY','ROSE','IRIS',\n 'MINA','ORN','YGG','ASTR','TRIBE','GHST','FTM','WIN','FXS','ONE']\n },()=>this.getPrice(4))\n\n\n setTimeout(()=>this.setState({set:2,prevCoin:this.state.Coin,CurrencyType:this.state.CurrencyType,\n Coin:['ALGO','ANKR','ANT','BNT','CVC','TOMO',\n 'SCRT','IOST','AVAX','RUNE','KAVA','ICX','ANC',\n 'ENJ','MANA','COTI','OGN','MKR','POWR','QTUM',\n 'HBAR','COMP','ZIL','SAND','ENS','IMX','ACH',\n 'NEAR','REP','APE','WAVES','SXP']\n //Coin:['ADX','ANKR','ANT','BNT','CVC','DMT','DAI','ENG','FUNX','GNO','HNS','GNT','MCO','MET','MANA','XEM','OGN','TRAC','POWR','QTUM','SRN','SOLVE','SNT','UBT','STRAT','TUSD','USDC','PAY','REP','WAXP','WAVES','UKG']\n },()=>this.getPrice(2)),30000)\n \n \n \n setTimeout(()=>this.setState({set:3,prevCoin:this.state.Coin,CurrencyType:this.state.CurrencyType,\n Coin:['DCR','FTT','NANO','TROY','WAN','BTT',\n 'KSM','OCEAN','CHR','DGB','BADGER','KMD','SRM','BTS',\n 'STORJ','CHZ','FIRO','FET','BLZ','RVN','MDT','SYS',\n 'HIVE','LSK','WAXP','ELF','MTL','NMR','REN','GALA','BAT','LRC']\n },()=>this.getPrice(3)),60000)\n \t\t\n \n setTimeout(()=> this.setState({set:1,prevCoin:this.state.Coin,CurrencyType:this.state.CurrencyType,\n Coin:['BTC','ETH','LINK','MATIC','BNB','UNI',\n 'YFI','ADA','TRX','DOT','BCH','NEO','OMG',\n 'ICP','XRP','EOS','VET','LTC','ATOM',\n 'FLOW','BAND','XTZ','ZEC','XMR','SUSHI',\n 'CRV','GTC','ONT','XLM','SOL','ETC','SNX']\n \n },()=>this.getPrice(1)),90000)\n \n setTimeout(()=>this.compeleteScan(),100000)\n \n}\n\ncompeleteScan(){\n this.setState({locked:true,activeScan:false},()=>console.log())\n let textMessage = 'Market Scan.Complete. All signals are locked'\n var u = new SpeechSynthesisUtterance('All is Ok');\n u.text = textMessage; \n u.lang = 'en-US'; \n u.rate = .9;\n u.pitch = 1; \n u.voice = UK; \n speechSynthesis.speak(u);\n\n /*if(!this.state.statusDrawerOpen){\n this.drawerOpen(\"showing status\")\n setTimeout(()=>this.goldDigger(),3000)\n }\n else{\n this.speakStatus()\n setTimeout(()=>this.goldDigger(),3000)\n }*/\n this.speakStatus()\n setTimeout(()=>this.goldDigger(),3000)\n}\n\ngoldDigger(){\n let scanSignal = this.state.scanColor\n //scanColor:'green',\n \nif(this.state.executedTrade.length > this.state.resetHistory){\n this.setState({executedTrade:[]},()=>console.log())\n}\n\nif(this.state.scanColor === 'red'){\n scanSignal = this.state.red\n}\nelse if(this.state.scanColor === 'blue'){\n scanSignal = this.state.blue\n}\nelse{\n scanSignal = this.state.green\n}\n // var fullWordList = ['1','2','3','4','5'];\n//var wordsToRemove = ['1','2','3'];\nconsole.log('GOLD DIGER',this.state.profit,this.state.onSpent,this.state.capital)\nlet filter = scanSignal.filter((coin) => !this.state.executedTrade.includes(coin[0]));\n\nconsole.log(filter);\n // prevTrade = (request,coin,currency,slug)=>{\n // this.setState({trade:[...this.state.trade,[request,coin,currency,slug]]},()=>this.enterTrade())\n // }\n //this.props.prevTrade((this.props.coin + '~' + this.props.currency),this.props.coin,this.props.currency,coinSlug,this.state.twitter)\n let sorts = filter.sort((a,b)=>b[1] - a[1])\n\n //console.log('sdsds',sorts, sorts[0][0])\n if(sorts.length > 0 && !this.state.onTrade && this.state.capital > 0){\n console.log('sdsds',sorts, sorts[0][0])\n\n\n let textMessage = 'Entering' + sorts[0][0].slice(0, -4);\n var u = new SpeechSynthesisUtterance('All is Ok');\n u.text = textMessage; \n u.lang = 'en-US'; \n u.rate = .9;\n u.pitch = 1; \n u.voice = UK; \n speechSynthesis.speak(u);\n\n\n\n this.setState({executedTrade:[...this.state.executedTrade,sorts[0][0]],\n onTrade:true,\n currentGold:sorts[0][0],\n onSpent:this.state.capital,\n capital:0,\n trade:[...this.state.trade,[sorts[0][4],sorts[0][5],sorts[0][6],sorts[0][7],sorts[0][8]]]},()=>setTimeout(()=>this.enterTrade(),3000))\n this.state.chartDisplay_USD.push([sorts[0][7],'USDT',(sorts[0][5] + 'USDT'),false,sorts[0][5]]);\n \n setTimeout(()=>this.htmlFinder(sorts[0][4]),600)\n console.log(this.state.executedTrade,this.state.trade)\n }\n else{\n\n \n let textMessage = 'Captain, it looks like the shitcoins are shitting the shit at the moment. I will try scanning again after 10 minutes.';\n var u = new SpeechSynthesisUtterance('All is Ok');\n u.text = textMessage; \n u.lang = 'en-US'; \n u.rate = .9;\n u.pitch = 1; \n u.voice = UK; \n speechSynthesis.speak(u);\n\n this.startTimer()\n }\n\n}\n\nsell=(name,sold,entry,amount,closeTrade,minutes,seconds)=>{\n console.log('sold',name,entry,sold,amount)\n this.state.historicalTrade.push([name,sold,entry,amount,closeTrade,minutes,seconds])\n console.log(this.state.historicalTrade)\n\n\n let textMessage = 'We have sold' + name + ' with a profit of' + numeral(sold-this.state.onSpent).format('0,0.00') +'$'\n var u = new SpeechSynthesisUtterance('All is Ok');\n u.text = textMessage; \n u.lang = 'en-US'; \n u.rate = .9;\n u.pitch = 1; \n u.voice = UK; \n speechSynthesis.speak(u);\n \n this.setState({profit:sold-this.state.onSpent,onTrade:false,capital:sold,onSpent:0},()=>setTimeout(()=>this.removeScanTrade([closeTrade,5]),3000)\n ) \n setTimeout(()=>this.removeUSD([null,null,null,null,name.slice(0, -5)]),2500)\n}\n\n\n\ntagalogChart(coinCharts){\n \n if(!this.state.checker){ \n \n textMessage = 'sorry captain but,' + coinCharts + ' is not on our list'\n var u = new SpeechSynthesisUtterance('All is Ok');\n u.text = textMessage; \n u.lang = 'en-US'; \n u.rate = .9;\n u.pitch = 1; \n u.voice = UK; \n speechSynthesis.speak(u)\n }\n\n else{\n let x = coinCharts.ID\n let slug = coinCharts.slug +'-USDT'\n if(x !== undefined)\n this.state.chartDisplay_USD.push([coinCharts.slug,'USDT',(coinCharts.name + 'USDT'),false,coinCharts.name]);\n console.log(coinCharts)\n this.affirmative(coinCharts.ID) \n //setTimeout(()=>window.scrollTo(0,680),500); \n setTimeout(()=>this.htmlFinder((coinCharts.name+'XUSDT')),600)\n }\n \n this.setState({openCommand:false},()=>console.log())\n}\n\n\n\n\n\n\n\ntagalogPrice(coinChart){\n //recognition.stop();\n\n if(!this.state.checker){ \n \n textMessage = 'sorry captain, there is no data for ' + coinChart\n var u = new SpeechSynthesisUtterance('All is Ok');\n u.text = textMessage; \n u.lang = 'en-US'; \n u.rate = .9;\n u.pitch = 1; \n u.voice = UK; \n speechSynthesis.speak(u)\n }\n else{\n //let x = ID[0].ID\n // console.log(x)\n //if(x !== undefined)\n //'https://api.coingecko.com/api/v3/simple/price?ids=bitcoin&vs_currencies=usd'\n fetch('https://api.coingecko.com/api/v3/simple/price?ids='+coinChart.ID+'&vs_currencies=usd')\n .then(res => res.json())\n .then((data) => {\n \n if (this._isMounted && data !== undefined){\n this.setState({marketData:data[[coinChart.ID]].usd},()=>(console.log(this.state.marketData)))}\n \n textMessage = 'the price of '+ coinChart.ID + ',is ' + this.state.marketData + ' dollars'\n var u = new SpeechSynthesisUtterance('All is Ok');\n u.text = textMessage; \n u.lang = 'en-US'; \n u.rate = .9;\n u.pitch = 1; \n u.voice = UK; \n speechSynthesis.speak(u)\n \n })\n .catch(console.log)\n }\n \n \n this.setState({priceCommand:false},()=>console.log())\n}\n\n\n\nspeakTrade(){\n if(this.state.trade.length === 0){\n textMessage = 'sorry captain, you do not have an open position at the moment.'\n var u = new SpeechSynthesisUtterance('All is Ok');\n u.text = textMessage; \n u.lang = 'en-US'; \n u.rate = .9;\n u.pitch = 1; \n u.voice = UK; \n speechSynthesis.speak(u)\n\n }\n else{\n if(this.state.trade.length === 1){\n textMessage = 'Captain, you currently have ' + this.state.trade.length + 'open position on ' + this.state.trade[0][1].toLowerCase() + ' USD' \n var u = new SpeechSynthesisUtterance('All is Ok');\n u.text = textMessage; \n u.lang = 'en-US'; \n u.rate = .9;\n u.pitch = 1; \n u.voice = UK; \n speechSynthesis.speak(u)\n }\n else{\n\n textMessage = 'Captain you currently have ' + this.state.trade.length + 'open position on ' \n var u = new SpeechSynthesisUtterance('All is Ok');\n u.text = textMessage; \n u.lang = 'en-US'; \n u.rate = .9;\n u.pitch = 1; \n u.voice = UK; \n speechSynthesis.speak(u)\n\n for(var i = 0; i < this.state.trade.length; i++){\n textMessage = this.state.trade[i][1].toLowerCase() + ' USD' \n var u = new SpeechSynthesisUtterance('All is Ok');\n u.text = textMessage; \n u.lang = 'en-US'; \n u.rate = .9;\n u.pitch = 1; \n u.voice = UK; \n speechSynthesis.speak(u)\n }\n }\n }\n}\n\n\n\nspeakTradeDetails = (detail, name, currency, percent) =>{\n \n let spent = numeral(detail.asset * detail.entry).format('0,0.00') \n let currentworth = numeral(detail.asset * detail.price).format('0,0.00')\n let currentloss = numeral((detail.asset * detail.price) - (detail.asset * detail.entry)).format('0,0.00')\n\n let profit = '';\n let direction = '';\n let comment = '';\n \n if(numeral(percent).format('0,0.00') < 0){\n profit = 'loss is, '\n direction = 'down '\n comment = ' you. are. rekt. idiot fucker'\n }\n else{\n profit = 'gain is, '\n direction = 'up '\n comment = ' great job captain! tooda moon!'\n }\n\n textMessage = 'captain, you are '+ direction + numeral(percent).format('0,0.0') +' % on, '+ name.toUpperCase()\n // captain, you are holding 1720 dollars worth of bnb. you have bought 4 bnb at 556 dollars each totaling to 2224 dollars, \n var u = new SpeechSynthesisUtterance('All is Ok');\n u.text = textMessage; \n u.lang = 'en-US'; \n u.rate = .9;\n u.pitch = 1; \n u.voice = UK; \n speechSynthesis.speak(u)\n\n\n textMessage = 'you are holding '+ numeral(currentworth).format('0,0')+ '$ worth of '+ name.toUpperCase() \n // captain, you are holding 1720 dollars worth of bnb. you have bought 4 bnb at 556 dollars each totaling to 2224 dollars, \n var u = new SpeechSynthesisUtterance('All is Ok');\n u.text = textMessage; \n u.lang = 'en-US'; \n u.rate = .9;\n u.pitch = 1; \n u.voice = UK; \n speechSynthesis.speak(u)\n\n textMessage = 'you have bought,'+ numeral(detail.asset).format('0,0') +' '+ name.toUpperCase() + ', at '+ numeral(detail.entry).format('0,0.00') +' $ each totaling to '+ numeral(spent).format('0,0') +'$'\n // captain, you are holding 1720 dollars worth of bnb. you have bought 4 bnb at 556 dollars each totaling to 2224 dollars, \n var u = new SpeechSynthesisUtterance('All is Ok');\n u.text = textMessage; \n u.lang = 'en-US'; \n u.rate = .9;\n u.pitch = 1; \n u.voice = UK; \n speechSynthesis.speak(u)\n\n textMessage = 'the current price of ' + name.toUpperCase() + ' is. ' + numeral(detail.price).format('0,0.00') +' $. which means,your unrealized '+ profit + numeral(currentloss).format('0,0') + 'dollats.' + comment\n var u = new SpeechSynthesisUtterance('All is Ok');\n u.text = textMessage; \n u.lang = 'en-US'; \n u.rate = .9;\n u.pitch = 1; \n u.voice = UK; \n speechSynthesis.speak(u)\n \n\n \n this.setState({tradeDetailRequest:false},()=>console.log());\n}\n\n\nsummaryRequest = (detail, name, currency, percent) =>{\n \n let spent = numeral(detail.asset * detail.entry).format('0,0.00') \n let currentworth = numeral(detail.asset * detail.price).format('0,0.00')\n let currentloss = numeral((detail.asset * detail.price) - (detail.asset * detail.entry)).format('0,0.00')\n\n let profit = '';\n let direction = 'pending';\n let comment = '';\n \n if(numeral(percent).format('0,0.00') < 0){\n profit = 'loss is, '\n direction = 'down '\n\n if(numeral(percent).format('0,0.00') < -10){\n comment = ' you might want to reconsider this position'\n }\n }\n else if(numeral(percent).format('0,0.00') > 0){\n profit = 'gain is, '\n direction = 'up '\n //comment = ' great job captain! tooda moon!'\n }\n\n textMessage = 'captain, you are '+ direction + numeral(percent).format('0,0.0').replaceAll('-','') +' % on. '+ name.toUpperCase()\n // captain, you are holding 1720 dollars worth of bnb. you have bought 4 bnb at 556 dollars each totaling to 2224 dollars, \n var u = new SpeechSynthesisUtterance('All is Ok');\n u.text = textMessage; \n u.lang = 'en-US'; \n u.rate = .9;\n u.pitch = 1; \n u.voice = UK; \n speechSynthesis.speak(u)\n\n this.setState({requestSummary:false},()=>console.log());\n}\n\n\nsinongGreen(){\n if(this.state.green.length === 0){\n textMessage = 'sorry captain,there are no assets signaling green at the moment'\n var u = new SpeechSynthesisUtterance('All is Ok');\n u.text = textMessage; \n u.lang = 'en-US'; \n u.rate = .9;\n u.pitch = 1; \n u.voice = UK; \n speechSynthesis.speak(u)\n }\n else{\n textMessage = 'the assets signaling green are'\n var u = new SpeechSynthesisUtterance('All is Ok');\n u.text = textMessage; \n u.lang = 'en-US'; \n u.rate = .9;\n u.pitch = 1; \n u.voice = UK; \n speechSynthesis.speak(u)\n\n for(var i = 0; i < this.state.green.length; i++){\n textMessage = this.state.green[i][0]\n var u = new SpeechSynthesisUtterance('All is Ok');\n u.text = textMessage; \n u.lang = 'en-US'; \n u.rate = .9;\n u.pitch = 1; \n u.voice = UK; \n speechSynthesis.speak(u)\n }\n }\n}\n\nsinongBlue(){\n if(this.state.blue.length === 0){\n textMessage = 'sorry captain,there are no assets signaling blue at the moment'\n var u = new SpeechSynthesisUtterance('All is Ok');\n u.text = textMessage; \n u.lang = 'en-US'; \n u.rate = .9;\n u.pitch = 1; \n u.voice = UK; \n speechSynthesis.speak(u)\n }\n else{\n textMessage = 'the assets signaling blue are'\n var u = new SpeechSynthesisUtterance('All is Ok');\n u.text = textMessage; \n u.lang = 'en-US'; \n u.rate = .9;\n u.pitch = 1; \n u.voice = UK; \n speechSynthesis.speak(u)\n\n for(var i = 0; i < this.state.blue.length; i++){\n textMessage = this.state.blue[i][0]\n var u = new SpeechSynthesisUtterance('All is Ok');\n u.text = textMessage; \n u.lang = 'en-US'; \n u.rate = .9;\n u.pitch = 1; \n u.voice = UK; \n speechSynthesis.speak(u)\n }\n }\n}\n\n\n\n/*findAsset(asset,currency){\n\n let ID = CoinId.filter(coins => coins.keyword === asset)\n console.log(ID)\n if(ID.length === 0){\n\n let ID = CoinId.filter(coins => coins.name === asset.toUpperCase())\n\n\n if(ID.length === 0){\n\n let ID = CoinId.filter(coins => coins.ID === asset.toString().replaceAll(' ', '-'))\n\n\n if(ID.length === 0){\n\n textMessage = 'sorry captain, there is no data for ' + asset\n var u = new SpeechSynthesisUtterance('All is Ok');\n u.text = textMessage; \n u.lang = 'en-US'; \n u.rate = .9;\n u.pitch = 1; \n u.voice = UK; \n speechSynthesis.speak(u)\n }\n else{\n \n let x = ID[0].name+'-'+currency;\n console.log(document.getElementById(x.toString()))\n \n if(document.getElementById(x.toString())){\n\n textMessage = 'looking for ' + ID[0].ID\n var u = new SpeechSynthesisUtterance('All is Ok');\n u.text = textMessage; \n u.lang = 'en-US'; \n u.rate = .9;\n u.pitch = 1; \n u.voice = UK; \n speechSynthesis.speak(u)\n\n document.getElementById(x.toString().toUpperCase()).scrollIntoView({\n behavior: 'smooth'\n });\n }\n else{\n\n textMessage = 'Captain, ' + ID[0].ID + ' is on list number ' + ID[0].list\n var u = new SpeechSynthesisUtterance('All is Ok');\n u.text = textMessage; \n u.lang = 'en-US'; \n u.rate = .9;\n u.pitch = 1; \n u.voice = UK; \n speechSynthesis.speak(u) \n }\n }\n\n }\n else{\n \n let x = ID[0].name+'-'+currency;\n console.log(document.getElementById(x.toString()))\n \n if(document.getElementById(x.toString())){\n\n textMessage = 'looking for ' + ID[0].ID\n var u = new SpeechSynthesisUtterance('All is Ok');\n u.text = textMessage; \n u.lang = 'en-US'; \n u.rate = .9;\n u.pitch = 1; \n u.voice = UK; \n speechSynthesis.speak(u)\n\n document.getElementById(x.toString().toUpperCase()).scrollIntoView({\n behavior: 'smooth'\n });\n }\n else{\n\n textMessage = 'Captain, ' + ID[0].ID + ' is on list number ' + ID[0].list\n var u = new SpeechSynthesisUtterance('All is Ok');\n u.text = textMessage; \n u.lang = 'en-US'; \n u.rate = .9;\n u.pitch = 1; \n u.voice = UK; \n speechSynthesis.speak(u) \n }\n }\n }\n \n else{\n\n let x = ID[0].name+'-'+currency;\n console.log(document.getElementById(x.toString()))\n\n if(document.getElementById(x.toString())){\n\n textMessage = 'looking for ' + ID[0].ID\n var u = new SpeechSynthesisUtterance('All is Ok');\n u.text = textMessage; \n u.lang = 'en-US'; \n u.rate = .9;\n u.pitch = 1; \n u.voice = UK; \n speechSynthesis.speak(u)\n\n document.getElementById(x.toString().toUpperCase()).scrollIntoView({\n behavior: 'smooth'\n });\n \n }\n else{\n\n textMessage = 'Captain, ' + ID[0].ID + ' is on list number ' + ID[0].list\n var u = new SpeechSynthesisUtterance('All is Ok');\n u.text = textMessage; \n u.lang = 'en-US'; \n u.rate = .9;\n u.pitch = 1; \n u.voice = UK; \n speechSynthesis.speak(u)\n \n }\n }\n\n}*/\n\nhtmlFinder(x){\n \n if(document.getElementById(x)){\n document.getElementById(x.toString().toUpperCase()).scrollIntoView({\n behavior: 'smooth'\n });\n }\n}\n\n\nspeakRemoveUSD = (coinChart) =>{\n console.log(coinChart)\n if(!this.state.checker){ \n textMessage = 'Sorry Captain, ' + coinChart + ' is not on our list.'\n var u = new SpeechSynthesisUtterance('All is Ok');\n u.text = textMessage; \n u.lang = 'en-US'; \n u.rate = .9;\n u.pitch = 1; \n u.voice = UK; \n speechSynthesis.speak(u)\n } \n else{\n\n let currentLength = this.state.chartDisplay_USD.length;\n console.log(coinChart)\n const USD_Chart = this.state.chartDisplay_USD.filter(e => (e[4] !== coinChart.name))\n this.setState({chartDisplay_USD:USD_Chart},()=>console.log())\n\n\n if(currentLength !== 0 && this.state.chartDisplay_USD.length < currentLength){\n textMessage = 'Closing the chart of ' + coinChart.ID\n var u = new SpeechSynthesisUtterance('All is Ok');\n u.text = textMessage; \n u.lang = 'en-US'; \n u.rate = .9;\n u.pitch = 1; \n u.voice = UK; \n speechSynthesis.speak(u)\n }\n else{\n textMessage = 'Captain, the chart of ' + coinChart.ID +' is not currently open.'\n var u = new SpeechSynthesisUtterance('All is Ok');\n u.text = textMessage; \n u.lang = 'en-US'; \n u.rate = .9;\n u.pitch = 1; \n u.voice = UK; \n speechSynthesis.speak(u)\n } \n\n }\n this.setState({removeAsset:false},()=>console.log())\n \n}\n\n\nfindAsset(coinChart){\n\n if(!this.state.checker){ \n textMessage = 'sorry captain, there is no data for ' + coinChart\n var u = new SpeechSynthesisUtterance('All is Ok');\n u.text = textMessage; \n u.lang = 'en-US'; \n u.rate = .9;\n u.pitch = 1; \n u.voice = UK; \n speechSynthesis.speak(u)\n }\n else{\n \n let x = coinChart.name+'-'+this.state.CurrencyType;\n // console.log(document.getElementById(x.toString()))\n \n if(document.getElementById(x.toString())){\n\n textMessage = 'looking for ' + coinChart.ID\n var u = new SpeechSynthesisUtterance('All is Ok');\n u.text = textMessage; \n u.lang = 'en-US'; \n u.rate = .9;\n u.pitch = 1; \n u.voice = UK; \n speechSynthesis.speak(u)\n\n document.getElementById(x.toString().toUpperCase()).scrollIntoView({\n behavior: 'smooth'\n });\n }\n else{\n\n textMessage = 'Captain, ' + coinChart.ID + ' is on list number ' + coinChart.list\n var u = new SpeechSynthesisUtterance('All is Ok');\n u.text = textMessage; \n u.lang = 'en-US'; \n u.rate = .9;\n u.pitch = 1; \n u.voice = UK; \n speechSynthesis.speak(u) \n }\n }\n\n \n this.setState({findCommand:false},()=>console.log())\n \n}\n\n\npopulate(asset){\n if(!this.state.checker){\n textMessage = 'sorry captain, there is no data for ' + asset\n var u = new SpeechSynthesisUtterance('All is Ok');\n u.text = textMessage; \n u.lang = 'en-US'; \n u.rate = .9;\n u.pitch = 1; \n u.voice = UK; \n speechSynthesis.speak(u)\n }\n\n else{\n\n this.setState({assetTrade:asset.name},()=>console.log())\n textMessage = 'I am ready, goodluck captain.'\n var u = new SpeechSynthesisUtterance('All is Ok');\n u.text = textMessage; \n u.lang = 'en-US'; \n u.rate = .9;\n u.pitch = 1; \n u.voice = UK; \n speechSynthesis.speak(u)\n }\n this.setState({chosenTrade:false},()=>console.log())\n\n}\n\nabort(){\n \n speechSynthesis.cancel()\n this.sorry()\n}\n\nmotoko(){\n\n let trades = 'trade.';\n if(this.state.historicalTrade.length > 1){\n trades = 'different trades.'\n }\n textMessage = 'Captain, We have a total profit of. ' + numeral(this.state.profit).format('0,0.00') + '$ executed from. '+ this.state.historicalTrade.length + trades + ' We also have an available balance of. ' + numeral(this.state.capital).format('0,0.00')+'$ and,' + numeral(this.state.onSpent).format('0,0.0')+'$ on an open position.'\n var u = new SpeechSynthesisUtterance('All is Ok');\n u.text = textMessage; \n u.lang = 'en-US'; \n u.rate = .9;\n u.pitch = 1; \n u.voice = UK; \n speechSynthesis.speak(u)\n \n}\n\n\nsorry(){\n textMessage = 'sorry captain'\n var u = new SpeechSynthesisUtterance('All is Ok');\n u.text = textMessage; \n u.lang = 'en-US'; \n u.rate = .9;\n u.pitch = 1; \n u.voice = UK; \n speechSynthesis.speak(u)\n}\n\nunlock(){\n \n textMessage = 'it is allways unlocked for you captain'\n var u = new SpeechSynthesisUtterance('All is Ok');\n u.text = textMessage; \n u.lang = 'en-US'; \n u.rate = .9;\n u.pitch = 1; \n u.voice = UK; \n speechSynthesis.speak(u)\n\n}\n\noblivion(){\n textMessage = 'i got you captain..., lets pump this shit to oblivion....'\n var u = new SpeechSynthesisUtterance('All is Ok');\n u.text = textMessage; \n u.lang = 'en-US'; \n u.rate = .9;\n u.pitch = 1; \n u.voice = UK; \n speechSynthesis.speak(u)\n}\n\nclearMind(){\n \n textMessage = 'Activating Clear Mind Protocol'\n var u = new SpeechSynthesisUtterance('All is Ok');\n u.text = textMessage; \n u.lang = 'en-US'; \n u.rate = .9;\n u.pitch = 1; \n u.voice = UK; \n speechSynthesis.speak(u)\n\n setTimeout(()=>this.setState({chartDisplay_USD:[],trade:[]},()=>console.log()),2000)\n}\n\n\nbigBang(){\n \n textMessage = 'Activating Big Bang Protocol'\n var u = new SpeechSynthesisUtterance('All is Ok');\n u.text = textMessage; \n u.lang = 'en-US'; \n u.rate = .9;\n u.pitch = 1; \n u.voice = UK; \n speechSynthesis.speak(u)\n window.location.reload(false);\n}\n\n\n\n\n\n\n\n\n\nchecker(coin){\n\n if(coin.length !== 0 && coin.length < 25){\n let ID = CoinId.filter(coins => coins.keyword === coin)\n console.log(ID)\n if(ID.length === 0){\n\n let ID = CoinId.filter(coins => coins.name === coin.toUpperCase())\n\n\n if(ID.length === 0){\n let dash = coin.replaceAll(' ', '-')\n let ID = CoinId.filter(coins => coins.ID === dash)\n\n if(ID.length === 0){\n \n let x = coin\n this.setState({checker:false},()=>console.log())\n console.log(x)\n \n if(this.state.removeAsset){\n this.speakRemoveUSD(x)\n }\n\n \n if(this.state.findCommand){\n this.findAsset(x)\n }\n\n if(this.state.openCommand){\n this.tagalogChart(x)\n }\n\n if(this.state.priceCommand){\n this.tagalogPrice(x)\n }\n\n \n if(this.state.chosenTrade){\n this.populate(x)\n }\n \n \n }\n else{\n let x = ID[0]\n console.log(x)\n this.setState({checker:true},()=>console.log())\n \n \n if(this.state.removeAsset){\n this.speakRemoveUSD(x)\n }\n \n if(this.state.findCommand){\n this.findAsset(x)\n }\n\n if(this.state.openCommand){\n this.tagalogChart(x)\n }\n\n if(this.state.priceCommand){\n this.tagalogPrice(x)\n }\n\n if(this.state.chosenTrade){\n this.populate(x)\n }\n }\n \n \n }\n else{\n let x = ID[0]\n console.log(x)\n this.setState({checker:true},()=>console.log())\n \n if(this.state.removeAsset){\n this.speakRemoveUSD(x)\n }\n \n if(this.state.findCommand){\n this.findAsset(x)\n }\n\n if(this.state.openCommand){\n this.tagalogChart(x)\n }\n\n if(this.state.priceCommand){\n this.tagalogPrice(x)\n }\n\n if(this.state.chosenTrade){\n this.populate(x)\n }\n }\n }\n \n\n else{\n\n let x = ID[0]\n console.log(x)\n this.setState({checker:true},()=>console.log())\n \n if(this.state.removeAsset){\n this.speakRemoveUSD(x)\n }\n \n if(this.state.findCommand){\n this.findAsset(x)\n }\n\n if(this.state.openCommand){\n this.tagalogChart(x)\n }\n\n if(this.state.priceCommand){\n this.tagalogPrice(x)\n }\n\n if(this.state.chosenTrade){\n this.populate(x)\n }\n \n }\n}\n}\n\n\n\n\n\n\n\n\n\n\n\n render(){\n\n //START OF COMMANDS\n recognition.onresult = (event) =>{\n console.log(event)\n const command = event.results[0][0].transcript;\n console.log(command)\n \n //if(command.includes(\"gideon\")){\n //CHANGE CURRENCY\n //console.log(command)\n if(command.includes(\"check bitcoin\") || command.includes(\"show bitcoin\") || command.includes(\"check btc\") || command.includes(\"show btc\")){\n this.listenUSD('BTC','checking assets against bitcoin')\n }\n\n if(command.includes(\"check dollar\") || command.includes(\"show dollar\") || command.includes(\"check usd\") || command.includes(\"show dollar\")){\n this.listenUSD('USDT','checking assets against dollar')\n }\n\n \n if(command.includes(\"check eth\") || command.includes(\"show eth\") || command.includes(\"check either\") || command.includes(\"show either\")){\n this.listenUSD('ETH','checking assets against ethereum')\n }\n\n \n if(command.includes(\"check ourly\") || command.includes(\"show ourly\") || command.includes(\"check hourly\") || command.includes(\"show hourly\") || (command.includes(\"check early\") || command.includes(\"show early\"))){\n this.listenTime('histohour', 'checking hourly signals')\n }\n\n if(command.includes(\"check daily\") || command.includes(\"show daily\") || command.includes(\"check dayli\") || command.includes(\"show dayli\")){\n this.listenTime('histoday','checking daily signals')\n }\n\n //SIGNAL\n if(command.includes(\"signal\")){\n this.speakStatus()\n }\n\n if(command.includes(\"scan\")){\n if(this.state.activeScan){\n textMessage = 'sorry captain, but there is allready an active scan procedure.'\n var u = new SpeechSynthesisUtterance('All is Ok');\n u.text = textMessage; \n u.lang = 'en-US'; \n u.rate = .9;\n u.pitch = 1; \n u.voice = UK; \n speechSynthesis.speak(u); \n }\n else {\n textMessage = 'Roger that captain.'\n var u = new SpeechSynthesisUtterance('All is Ok');\n u.text = textMessage; \n u.lang = 'en-US'; \n u.rate = .9;\n u.pitch = 1; \n u.voice = UK; \n speechSynthesis.speak(u);\n\n this.listenScan()\n }\n }\n\n if(command.includes(\"unlock\")){\n this.setState({locked:false},()=>this.unlock())\n }\n\n if(command.includes(\"sinong green\")||command.includes(\"sinong dream\")||command.includes(\"sinong grim\")){\n this.sinongGreen()\n }\n\n if(command.includes(\"sinong blue\")||command.includes(\"sinong blu\")||command.includes(\"sinong bloop\")){\n this.sinongBlue()\n }\n\n\n //CHANGE SET\n if(command.includes(\"set\")){\n if(command.includes(\"1\") || command.includes(\"one\") || command.includes(\"wan\")){\n this.listenSet('1')\n }\n\n if(command.includes(\"2\") || command.includes(\"two\") || command.includes(\"to\") || command.includes(\"too\")){\n\n this.listenSet('2')\n }\n\n \n if(command.includes(\"3\") || command.includes(\"three\") || command.includes(\"tree\")){ \n this.listenSet('3')\n }\n\n if(command.includes(\"4\") || command.includes(\"four\") || command.includes(\"for\")){\n this.listenSet('4')\n }\n \n }\n\n\n //CHECK STATUS\n if(command.includes(\"show status\") || command.includes(\"check status\")){\n this.drawerOpen(\"showing status\");\n }\n\n if(command.includes(\"close status\") || command.includes(\"hide status\")){\n this.drawerClose(\"closing status\");\n }\n // Top Ten\n if(command.includes(\"show top 10\") || command.includes(\"show tap 10\") || command.includes(\"check top 10\") || command.includes(\"check top 10\")){\n this.showTop()\n this.setState({topOpen:true})\n \n }\n\n if(command.includes(\"close top 10\") || command.includes(\"close tap 10\") || command.includes(\"hide top 10\")|| command.includes(\"hide tap 10\")){\n this.closeTop()\n this.setState({topOpen:false})\n \n }\n if(command.includes(\"open\")){\n // if(command.includes(\"eth\") || command.includes(\"ethereum\") || command.includes(\"wan\")){\n const i = command.toString()\n //this.affirmative();\n this.setState({openCommand:true},()=>console.log())\n this.checker(i.slice(5,60))\n //this.tagalogChart(i.slice(5,40))\n //this.state.chartDisplay_USD.push([this.state.coinChart,'USDT',(i.slice(5,20) + 'USDT'),false,i.slice(5,20)]);\n //setTimeout(()=>window.scrollTo(0,680),500); \n // }\n }\n\n\n if(command.includes(\"remove\") || command.includes(\"close chart\")){\n const r = command.toString()\n this.setState({removeAsset:true},()=>console.log())\n this.checker(r.slice(7,50)) \n }\n\n \n if(command.includes(\"price\")){\n const a = command.toString()\n findPrice=a.slice(6,40)\n this.setState({priceCommand:true},()=>console.log())\n this.checker(findPrice)\n }\n \n\n if(command.includes(\"anong presyo ni\") || command.includes(\"anong presyo ng\") ){\n const b = command.toString()\n presyo=b.slice(16,50)\n this.setState({priceCommand:true},()=>console.log())\n this.checker(presyo)\n \n }\n\n ///CURRENT TRADE\n if(command.includes(\"do we have a trade\") || command.includes(\"may trade ba tayo\")|| command.includes(\"current trade\") || command.includes(\"whats our trade\")){\n \n this.speakTrade()\n \n // this.listenFind();\n // window.scrollTo(0,670); \n }\n\n if(command.includes(\"trade details\") || command.includes(\"trade detail\")|| command.includes(\"train details\") || command.includes(\"train detail\")){\n if(this.state.trade.length > 0){\n this.setState({tradeDetailRequest:true}); \n }\n else{\n this.speakTrade()\n }\n // this.speakTrade()\n \n // this.listenFind();\n // window.scrollTo(0,670); \n}\n\n\nif(command.includes(\"summary\") || command.includes(\"summery\")|| command.includes(\"summer\") || command.includes(\"samer\")){\n if(this.state.trade.length > 0){\n this.setState({requestSummary:true}); \n }\n else{\n this.speakTrade()\n }\n // this.speakTrade()\n \n // this.listenFind();\n // window.scrollTo(0,670); \n}\n if(command.includes(\"find\") || command.includes(\"fine\") || command.includes(\"pine\")){\n const current = this.state.CurrencyType;\n const a = command.toString()\n findAsset=a.slice(5,40)\n this.setState({findCommand:true},()=>console.log())\n this.checker(findAsset)\n \n } \n\n\n //////////// START OFINPUT CONNANDS\n\n if(command.includes(\"enter\") ){\n const tr = command.toString()\n chosenAsset=tr.slice(6,40)\n this.setState({chosenTrade:true},()=>console.log())\n this.checker(chosenAsset) \n } \n\n\n \n if(command.includes(\"entry\")){\n\n const entry = command\n if(this.state.assetTrade !== undefined){\n this.setState({listenEntry:entry.slice(6,40).replaceAll(' ', '').replaceAll('point','.').replaceAll('one','1').replaceAll('to','2').replaceAll('three','3').replaceAll('for','4').replaceAll('five','5').replaceAll('six','6').replaceAll('seven','7').replaceAll('eigth','8').replaceAll('nine','9').replaceAll('zero','0').replaceAll(',','')\n },()=>console.log(this.state.listenEntry))\n } \n \n }\n\n if(command.includes(\"amount\")){\n const amount = command\n if(this.state.assetTrade !== undefined){\n this.setState({listenAmount:amount.slice(7,40).replaceAll(' ', '').replaceAll('point','.').replaceAll('one','1').replaceAll('to','2').replaceAll('three','3').replaceAll('for','4').replaceAll('five','5').replaceAll('six','6').replaceAll('seven','7').replaceAll('eigth','8').replaceAll('nine','9').replaceAll('zero','0').replaceAll(',','')\n },()=>console.log(this.state.listenAmount))\n } \n \n }\n\n if(command.includes(\"target\")){\n const target = command\n if(this.state.assetTrade !== undefined){\n this.setState({listenTarget:target.slice(7,40).replaceAll(' ', '').replaceAll('point','.').replaceAll('one','1').replaceAll('to','2').replaceAll('three','3').replaceAll('for','4').replaceAll('five','5').replaceAll('six','6').replaceAll('seven','7').replaceAll('eigth','8').replaceAll('nine','9').replaceAll('zero','0').replaceAll(',','')\n },()=>console.log(this.state.listenTarget))\n } \n \n }\n\n ////////////// END OF INPUT CONNANDS\n\n if(command.includes(\"motoko\")){\n this.motoko() \n} \n\n if(command.includes(\"shut up\")){\n this.abort() \n } \n\n \n if(command.includes(\"clear mind\")){\n this.clearMind() \n }\n \n if(command.includes(\"bigbang\")){\n this.bigBang() \n } \n\n if(command.includes(\"gold digger\")){\n let textMessage = 'Executing Gold Digger Protocol'\n var u = new SpeechSynthesisUtterance('All is Ok');\n u.text = textMessage; \n u.lang = 'en-US'; \n u.rate = .9;\n u.pitch = 1; \n u.voice = UK; \n speechSynthesis.speak(u);\n\n this.goldDigger() \n \n } \n \n }\n\n\n\n recognition.onend = (event) =>{\n recognition.start();\n }\n//END OF COMMANDS\n \n\n\n\n\n\n let BTC_greed = 'cross';\n let ETH_greed = 'cross';\n let BTC_score = 0;\n let ETH_score = 0;\n if(this.state.BTC_Sentiment.sentiment === 'bearish'){\n BTC_greed = 'check'\n BTC_score = '53%';\n }\n else if(!this.state.BTC_Sentiment.sentiment === 'bearish'){\n BTC_score = '48%';\n }\n\n if(this.state.ETH_Sentiment.sentiment === 'bearish'){\n ETH_greed = 'check'\n ETH_score = '62%';\n }\n else if(!this.state.ETH_Sentiment.sentiment === 'bearish'){\n ETH_score = '42%';\n }\n\n let gaugeClose = () => this.setState({gaugeModalOpen:false})\n let gaugeOpen = () => this.setState({gaugeModalOpen:true})\n \n let loading = ''\n if(this.state.loading){\n loading =
    \n

    \n
    }\n /*
    \n
    \n  Search\n
    \n \n \n
    */\n let backdrop;\n\n let topClose = () => this.setState({topOpen:false})\n let topOpen = () => this.setState({topOpen:true})\n\n if(this.state.sideDrawerOpen){\n \n backdrop=;\n }\n\n let x = this.state.Coin.sort((a, b) => a.localeCompare(b))\n let option = ''; \n let buttonText = 'Next'\n\n if(this.state.setRangeFrom == 0){\n buttonText = 'Next'\n }\n else{\n buttonText = 'Previous'\n }\n\n if(this.state.setNumber == 2){\n option = \n }\n \n else if(this.state.setNumber == 1) option = \n \n else{\n option = \n }\n\n //console.log(this.state.chartDisplay)\n\n /* TRADITIONAL CHART\n\n {this.state.chartDisplay.map((chart,index)=>(\n
    \n
    \n \n \n
    \n
    this.remove(chart)}> {this.getSlug(chart[0],chart[1])}
    \n
    \n \n
    ))}*/\n\n\n /* COIN GUAGE\n \n
    \n \n----symbol={\"CRYPTOCAP:BTC.D\"}-----\n
    */\n//\n\n\n return (\n \n \n \n
    \n \n
    \n\n \n
    \n \n
    \n\n \n {backdrop}\n\n \n \n\n \n\n {option}\n\n \n \n \n \n \n\n \n
    \n\t\t\t\t\t\t\t\n \n\t\t\t\t\t\t\t
    \n \tFind Asset\n\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\n \n \n\n {this.state.topOpen&&}\n \t\n \n\t\t\t\n\n
    \n
    \n
    \n
    \n\n \n \n\n\n
    \n\n
    \n
    \n \n
    BITCOIN Greed Index
    \n

    {BTC_score}

    \n
    \n
    \n\n
    \n
    \n \n
    ETHEREUM Greed Index
    \n

    {ETH_score}

    \n
    \n
    \n\n
    \n
    \n \n
    DEFI Market Cap
    \n \n

    ${this.state.Defi_Cap.slice(0,2)}.{this.state.Defi_Cap.slice(2,3)}b

    \n
    \n
    \n\n
    \n\n\n
    \n\n
    \n
    \n
    No. of Trades
    \n

    {this.state.historicalTrade.length}

    \n
    \n
    \n\n
    \n
    \n
    Balance
    \n

    ${numeral(this.state.capital).format('0,0.00')}

    \n
    \n
    \n\n
    \n
    \n
    On Trade
    \n

    ${numeral(this.state.onSpent).format('0,0.00')}

    \n
    \n
    \n\n
    \n
    \n
    Profit
    \n

    ${numeral((this.state.onSpent + this.state.capital)-200).format('0,0.00')}

    \n
    \n
    \n\n
    \n
    \n
    Next Scan
    \n

    {this.state.time.minutes}:{this.state.time.seconds}

    \n
    \n
    \n\n
    \n
    \n
    Trade History
    \n{this.state.historicalTrade.map((history,index)=>(

    {index + 1}. {history[0] } - ${numeral(history[1]).format('0,0.00')} - Time: {history[5]}:{history[6]}

    ))}\n
    \n
    \n\n
    \n\n
    \n\n
    \n \n
    \n\n
    \n \n
    \n\n
    \n \n
    \n\n
    \n \n
    \n\n
    \n \n
    \n\n
    \n \n
    \n\n
    \n\n\n \n
    \n \n \n \n
    \n
    \n {this.state.trade.length > 0 && this.state.trade.map((trade,index)=>(\n
    \n \n
    ))}\n
    \n\n \n \n \n \n {this.state.newsOpen &&
    \n\n {this.state.news.map((news,index)=>(\n
    \n
    \n \n

    {news.description}

    \n
    {news.project.name}
    \n
    \n \n
    ))}\n\n
    }\n\n\n\n {!this.state.newsOpen &&
    \n\n {this.state.Coin.map((list,index)=>(\n
    \n \n \n \n
    \n ))}\n
    }\n
    \n
    \n );\n}\n\n\n\ncomponentDidMount() {\n this._isMounted = true;\n this.getPrice();\n this.getSentiment();\n // this.startTimer()\n \n // this.binance();\n // this.free();\n \n \n const allVoicesObtained = new Promise(function(resolve, reject) {\n let voices = window.speechSynthesis.getVoices();\n if (voices.length !== 0) {\n resolve(voices);\n } else {\n window.speechSynthesis.addEventListener(\"voiceschanged\", function() {\n voices = window.speechSynthesis.getVoices();\n resolve(voices);\n UK=voices[5];\n });\n }\n});\n\nallVoicesObtained.then(voices => console.log(\"All voices:\", voices));\n\n\n \n \n}\n\ncomponentDidUpdate(prevProps, prevState) {\n if(prevState.chartDisplay !== this.state.chartDisplay){\n \n }\n\n if(prevState.trade!== this.state.trade){\n \n }\n\n if(prevState.trade.length!== this.state.trade.length){\n \n }\n \n}\n\ncomponentWillUnmount() {\nthis._isMounted = false;\n}\n\n}\n\n\nexport default App;\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.0/8 are considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl, {\n headers: { 'Service-Worker': 'script' },\n })\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready\n .then(registration => {\n registration.unregister();\n })\n .catch(error => {\n console.error(error.message);\n });\n }\n}\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport App from './App';\nimport * as serviceWorker from './serviceWorker';\n\nReactDOM.render(\n \n \n ,\n document.getElementById('root')\n);\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\nserviceWorker.unregister();\n","module.exports = \"data:image/png;base64,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\""],"sourceRoot":""}