dappros/ethora

View on GitHub
client-web/build-prod/static/js/526.44a2029e.chunk.js.map

Summary

Maintainability
Test Coverage
{"version":3,"file":"static/js/526.44a2029e.chunk.js","mappings":"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","sources":["pages/Dashboard/UsersGraph.tsx","pages/Dashboard/AppsSelect.tsx","pages/Dashboard/TokensGraph.tsx","pages/Dashboard/TransactionsGraph.tsx","pages/Dashboard/Contracts.tsx","pages/Dashboard/NetworkHealth.tsx","components/icons/BezierCurve.tsx","pages/Dashboard/Peers.tsx","pages/Dashboard/index.tsx","../node_modules/@mui/icons-material/CheckCircleOutlined.js","../node_modules/@mui/icons-material/Gavel.js","../node_modules/@mui/icons-material/HighlightOffOutlined.js"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\n\nimport * as http from \"../../http\";\nimport {\n  LineChart,\n  Line,\n  XAxis,\n  YAxis,\n  CartesianGrid,\n  Tooltip,\n  Legend,\n  ResponsiveContainer,\n} from \"recharts\";\nimport { CircularProgress, useTheme } from \"@mui/material\";\nimport { TChartData, transformDataForLineChart } from \"../../utils\";\n\ntype Props = {\n  apps: any[];\n  currentAppIndex: number;\n};\n\nexport default function UsersGraph({ apps, currentAppIndex }: Props) {\n  const [userCount, setUsersCount] = useState(0);\n  const theme = useTheme();\n  const [userGraphData, setUserGraphData] = useState<TChartData>([]);\n  const [loading, setLoading] = useState(false);\n\n  const getUsersData = async () => {\n    setLoading(true);\n    try {\n      const usersCount = await http\n        .httpWithToken(apps[currentAppIndex].appToken)\n        .get(\"users/count\");\n      setUsersCount(usersCount.data.count);\n      const graphData = await http\n        .httpWithToken(apps[currentAppIndex].appToken)\n        .get(\"users/graph\");\n      setUserGraphData(transformDataForLineChart(graphData.data));\n    } catch (error) {\n      console.log(error);\n    }\n    setLoading(false);\n  };\n  useEffect(() => {\n    getUsersData();\n  }, [apps, currentAppIndex]);\n  \n  if (loading) {\n    return (\n      <div\n        className=\"dashboard-graph\"\n        style={{\n          marginRight: \"10px\",\n          justifyContent: \"center\",\n          alignItems: \"center\",\n        }}\n      >\n        <CircularProgress />\n      </div>\n    );\n  }\n  return (\n    <div className=\"dashboard-graph\" style={{ marginRight: \"10px\" }}>\n      <a className=\"title\" onClick={(e) => e.preventDefault()} href=\"/\">\n        Users {userCount}\n      </a>\n      <ResponsiveContainer height={\"100%\"}>\n        <LineChart\n          width={500}\n          height={300}\n          data={userGraphData}\n          margin={{\n            top: 5,\n            right: 30,\n            left: 20,\n            bottom: 5,\n          }}\n        >\n          <CartesianGrid strokeDasharray=\"3 3\" />\n          <XAxis dataKey=\"date\" />\n          <YAxis dataKey={\"y\"} />\n\n          <Tooltip />\n          {/* <Legend /> */}\n          <Line\n            type=\"monotone\"\n            name=\"Users\"\n            dataKey=\"y\"\n            stroke={theme.palette.primary.main}\n            activeDot={{ r: 8 }}\n          />\n        </LineChart>\n      </ResponsiveContainer>\n    </div>\n  );\n}\n","import * as React from \"react\";\nimport Box from \"@mui/material/Box\";\nimport InputLabel from \"@mui/material/InputLabel\";\nimport MenuItem from \"@mui/material/MenuItem\";\nimport FormControl from \"@mui/material/FormControl\";\nimport Select from \"@mui/material/Select\";\n\ntype Props = {\n  apps: any[];\n  setCurrentAppIndex: React.Dispatch<React.SetStateAction<number>>;\n  currentAppIndex: number;\n};\n\nexport default function AppsSelect(props: Props) {\n  const handleChange = (event) => {\n    props.setCurrentAppIndex(event.target.value);\n  };\n\n  return (\n    <Box sx={{ width: 150, marginBottom: \"20px\" }}>\n      <FormControl fullWidth>\n        <InputLabel id=\"demo-simple-select-label\">App</InputLabel>\n        <Select\n          labelId=\"demo-simple-select-label\"\n          id=\"demo-simple-select\"\n          value={props.currentAppIndex}\n          label=\"App\"\n          onChange={handleChange}\n        >\n          {props.apps.map((app, index) => {\n            return (\n              <MenuItem value={index} key={app._id}>\n                {app.appName}\n              </MenuItem>\n            );\n          })}\n        </Select>\n      </FormControl>\n    </Box>\n  );\n}\n","import { useTheme } from \"@mui/material\";\nimport React from \"react\";\nimport {\n  LineChart,\n  Line,\n  XAxis,\n  YAxis,\n  CartesianGrid,\n  Tooltip,\n  Legend,\n  ResponsiveContainer,\n} from \"recharts\";\n\ntype Props = {};\n\nexport default function TokensGraph({}: Props) {\n  const theme = useTheme()\n  return (\n    <div className=\"dashboard-graph\" style={{ marginRight: \"10px\" }}>\n      <a className=\"title\" onClick={(e) => e.preventDefault()} href=\"/\">\n        Tokens\n      </a>\n      <ResponsiveContainer height={\"100%\"}>\n        <LineChart\n          width={500}\n          height={300}\n          data={[]}\n          margin={{\n            top: 5,\n            right: 30,\n            left: 20,\n            bottom: 5,\n          }}\n        >\n          <CartesianGrid strokeDasharray=\"3 3\" />\n          <XAxis dataKey=\"date\" />\n          <YAxis dataKey={\"y\"} />\n          <Tooltip />\n          {/* <Legend /> */}\n          <Line\n            type=\"monotone\"\n            name=\"Transactions\"\n            dataKey=\"y\"\n            stroke={theme.palette.primary.main}\n            activeDot={{ r: 8 }}\n          />\n        </LineChart>\n      </ResponsiveContainer>\n    </div>\n  );\n}\n","import React, { useEffect, useState } from \"react\";\nimport * as http from \"../../http\";\nimport {\n  LineChart,\n  Line,\n  XAxis,\n  YAxis,\n  CartesianGrid,\n  Tooltip,\n  Legend,\n  ResponsiveContainer,\n} from \"recharts\";\nimport { CircularProgress, useTheme } from \"@mui/material\";\nimport { TChartData, transformDataForLineChart } from \"../../utils\";\n\ntype Props = {\n  apps: any[];\n  currentAppIndex: number;\n};\n\nexport default function TransactionsGraph({ apps, currentAppIndex }: Props) {\n  const [transactions, setTransactions] = useState<TChartData>([]);\n  const [loading, setLoading] = useState(false);\n  const theme = useTheme();\n\n  const getData = async () => {\n    setLoading(true);\n    try {\n      const res = await http\n        .httpWithToken(apps[currentAppIndex].appToken)\n        .get(\"explorer/graph\");\n      setTransactions(transformDataForLineChart(res.data));\n    } catch (error) {\n      console.log(error);\n    }\n    setLoading(false);\n  };\n\n  useEffect(() => {\n    getData();\n  }, [apps, currentAppIndex]);\n\n  if (loading) {\n    return (\n      <div\n        className=\"dashboard-graph\"\n        style={{\n          marginRight: \"10px\",\n          justifyContent: \"center\",\n          alignItems: \"center\",\n        }}\n      >\n        <CircularProgress />\n      </div>\n    );\n  }\n\n  return (\n    <div className=\"dashboard-graph\" style={{ marginRight: \"10px\" }}>\n      <a className=\"title\" onClick={(e) => e.preventDefault()} href=\"/\">\n        Transactions\n      </a>\n      <ResponsiveContainer height={\"100%\"}>\n        <LineChart\n          width={500}\n          height={300}\n          data={transactions}\n          margin={{\n            top: 5,\n            right: 30,\n            left: 20,\n            bottom: 5,\n          }}\n        >\n          <CartesianGrid strokeDasharray=\"3 3\" />\n          <XAxis dataKey=\"date\" />\n          <YAxis dataKey={\"y\"} />\n          <Tooltip />\n          <Line\n            type=\"monotone\"\n            name=\"Transactions\"\n            dataKey=\"y\"\n            stroke={theme.palette.primary.main}\n            activeDot={{ r: 8 }}\n          />\n        </LineChart>\n      </ResponsiveContainer>\n    </div>\n  );\n}\n","import React, { useState, useEffect } from \"react\";\nimport GavelIcon from \"@mui/icons-material/Gavel\";\nimport * as http from \"../../http\";\nimport { Box } from \"@mui/material\";\n\ntype Props = {\n  apps: any[];\n  currentAppIndex: number;\n};\n\nexport default function Contracts({ apps, currentAppIndex }: Props) {\n  const [count, setCount] = useState(0);\n  useEffect(() => {\n    http\n      .httpWithToken(apps[currentAppIndex].appToken)\n      .get(\"/explorer/count/contract\")\n      .then((response) => {\n        setCount(response.data.count);\n      });\n  }, [apps, currentAppIndex]);\n  \n  return (\n    <div\n      className=\"dashboard-graph\"\n      style={{\n        marginRight: \"10px\",\n        display: \"flex\",\n        flexDirection: \"column\",\n        justifyContent: \"flex-end\",\n        width: \"100%\",\n      }}\n    >\n      <Box\n        sx={{\n          display: \"flex\",\n          justifyContent: \"center\",\n          flexDirection: \"column\",\n          alignItems: \"center\",\n          height: \"100%\",\n        }}\n      >\n        <GavelIcon\n          style={{ fontSize: \"90px\", color: \"#604020\" }}\n          color=\"inherit\"\n        />\n        <div\n          style={{\n            display: \"flex\",\n            flexDirection: \"column\",\n            alignItems: \"center\",\n          }}\n        >\n          <span>{count}</span>\n          <span>Contracts</span>\n        </div>\n      </Box>\n    </div>\n  );\n}\n","import  React from \"react\";\nimport CheckCircleOutlinedIcon from \"@mui/icons-material/CheckCircleOutlined\";\nimport HighlightOffOutlinedIcon from \"@mui/icons-material/HighlightOffOutlined\";\nimport { Box } from \"@mui/material\";\nimport { IBlockChain } from \".\";\n\ntype Props = {\n  blockchain: IBlockChain;\n};\n\nexport default function NetworkHealth({ blockchain }: Props) {\n  return (\n    <div\n      className=\"dashboard-graph\"\n      style={{ marginRight: \"10px\", width: \"100%\" }}\n    >\n      <Box\n        sx={{\n          display: \"flex\",\n          justifyContent: \"center\",\n          flexDirection: \"column\",\n          alignItems: \"center\",\n          height: \"100%\",\n        }}\n      >\n        {!!blockchain?.latestBlockNumber && (\n          <CheckCircleOutlinedIcon\n            style={{ fontSize: \"90px\", color: \"green\" }}\n          />\n        )}\n        {!blockchain?.latestBlockNumber && (\n          <HighlightOffOutlinedIcon\n            style={{ fontSize: \"90px\", color: \"red\" }}\n          />\n        )}\n        <div\n          style={{\n            display: \"flex\",\n            flexDirection: \"column\",\n            alignItems: \"center\",\n          }}\n        >\n          <span>Network Health</span>\n        </div>\n      </Box>\n    </div>\n  );\n}\n","import React from \"react\";\n\ntype Props = {\n  width: string;\n  color: string;\n};\n\nexport default function BezierCurve({ width, color }: Props) {\n  return (\n    <svg\n      fill={color}\n      xmlns=\"http://www.w3.org/2000/svg\"\n      width={width}\n      viewBox=\"0 0 640 512\"\n    >\n      <path d=\"M296 136V88h48v48H296zM288 32c-26.5 0-48 21.5-48 48v4H121.6C111.2 62.7 89.3 48 64 48C28.7 48 0 76.7 0 112s28.7 64 64 64c25.3 0 47.2-14.7 57.6-36h66.9c-58.9 39.6-98.9 105-104 180H80c-26.5 0-48 21.5-48 48v64c0 26.5 21.5 48 48 48h64c26.5 0 48-21.5 48-48V368c0-26.5-21.5-48-48-48h-3.3c5.9-67 48.5-123.4 107.5-149.1c8.6 12.7 23.2 21.1 39.8 21.1h64c16.6 0 31.1-8.4 39.8-21.1c59 25.7 101.6 82.1 107.5 149.1H496c-26.5 0-48 21.5-48 48v64c0 26.5 21.5 48 48 48h64c26.5 0 48-21.5 48-48V368c0-26.5-21.5-48-48-48h-4.5c-5-75-45.1-140.4-104-180h66.9c10.4 21.3 32.3 36 57.6 36c35.3 0 64-28.7 64-64s-28.7-64-64-64c-25.3 0-47.2 14.7-57.6 36H400V80c0-26.5-21.5-48-48-48H288zM88 376h48v48H88V376zm416 48V376h48v48H504z\" />\n    </svg>\n  );\n}\n","import { Box } from \"@mui/material\";\nimport React from \"react\";\nimport BezierCurve from \"../../components/icons/BezierCurve\";\n\ntype Props = {\n  blockchain: any;\n};\n\nexport default function Peers({ blockchain }: Props) {\n  return (\n    <div\n      className=\"dashboard-graph\"\n      style={{\n        marginRight: \"10px\",\n        display: \"flex\",\n        flexDirection: \"column\",\n        justifyContent: \"flex-end\",\n        width: \"100%\",\n      }}\n    >\n      <Box\n        sx={{\n          display: \"flex\",\n          justifyContent: \"center\",\n          flexDirection: \"column\",\n          alignItems: \"center\",\n          height: \"100%\",\n        }}\n      >\n        <BezierCurve color=\"#0071e6\" width=\"100px\"></BezierCurve>\n        <div\n          style={{\n            display: \"flex\",\n            flexDirection: \"column\",\n            alignItems: \"center\",\n          }}\n        >\n          <span>{blockchain.peerCount}</span>\n          <span>Peers</span>\n        </div>\n      </Box>\n    </div>\n  );\n}\n","import React, { useEffect, useState } from \"react\";\nimport Container from \"@mui/material/Container\";\nimport UsersGraph from \"./UsersGraph\";\nimport AppsSelect from \"./AppsSelect\";\nimport { useStoreState } from \"../../store\";\nimport TokensGraph from \"./TokensGraph\";\nimport TransactionsGraph from \"./TransactionsGraph\";\nimport Contracts from \"./Contracts\";\n\nimport \"./Graph.scss\";\nimport NetworkHealth from \"./NetworkHealth\";\nimport Peers from \"./Peers\";\nimport * as http from \"../../http\";\nimport { Box } from \"@mui/material\";\n\ntype Props = {};\n\nexport interface IBlockChain {\n  blockTimestamp: Date | string;\n  latestBlockHash: string;\n  latestBlockNumber: number;\n  noOfTransactions: number;\n  peerCount: number;\n  pendingTransactions: number;\n  transactionDifficulty: number;\n}\n\nfunction Dashboard() {\n  const apps = useStoreState((state) => state.apps);\n  const [currentAppIndex, setCurrentAppIndex] = useState(0);\n\n  const [blockchain, setBlockchain] = useState<IBlockChain>({\n    blockTimestamp: \"\",\n    latestBlockHash: \"\",\n    latestBlockNumber: 0,\n    noOfTransactions: 0,\n    peerCount: 0,\n    pendingTransactions: 0,\n    transactionDifficulty: 0,\n  });\n\n  const getBlockchainData = async () => {\n    try {\n      const res = await http\n        .httpWithToken(apps[currentAppIndex].appToken)\n        .get<IBlockChain>(\"/explorer/blockchain\");\n      setBlockchain(res.data);\n    } catch (error) {\n      console.log(error);\n    }\n  };\n\n  useEffect(() => {\n    if (apps.length) {\n      setCurrentAppIndex(0);\n    }\n  }, [apps]);\n  useEffect(() => {\n    getBlockchainData();\n  }, []);\n\n  return (\n    <div style={{ backgroundColor: \"#edf0f4\", padding: \"20px\" }}>\n      <Container\n        maxWidth=\"xl\"\n        style={{\n          width: \"100%\",\n        }}\n      >\n        <AppsSelect\n          apps={apps}\n          currentAppIndex={currentAppIndex}\n          setCurrentAppIndex={setCurrentAppIndex}\n        />\n        <Box\n          sx={{\n            display: \"grid\",\n            gridTemplateColumns: { xs: \"1fr\", sm: \"1fr 1fr\" },\n            gridTemplateRows: \"250px 250px\",\n          }}\n        >\n          <UsersGraph apps={apps} currentAppIndex={currentAppIndex} />\n          <TokensGraph />\n          <TransactionsGraph apps={apps} currentAppIndex={currentAppIndex} />\n          <Box sx={{ display: \"flex\", width: \"100%\" }}>\n            <Contracts apps={apps} currentAppIndex={currentAppIndex} />\n            <NetworkHealth blockchain={blockchain} />\n            <Peers blockchain={blockchain} />\n          </Box>\n        </Box>\n      </Container>\n    </div>\n  );\n}\n\nexport default Dashboard;\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n  d: \"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm4.59-12.42L10 14.17l-2.59-2.58L6 13l4 4 8-8z\"\n}), 'CheckCircleOutlined');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n  d: \"m5.2494 8.0688 2.83-2.8269 14.1343 14.15-2.83 2.8269zm4.2363-4.2415 2.828-2.8289 5.6577 5.656-2.828 2.8289zM.9989 12.3147l2.8284-2.8285 5.6569 5.6569-2.8285 2.8284zM1 21h12v2H1z\"\n}), 'Gavel');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n  d: \"M14.59 8 12 10.59 9.41 8 8 9.41 10.59 12 8 14.59 9.41 16 12 13.41 14.59 16 16 14.59 13.41 12 16 9.41 14.59 8zM12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z\"\n}), 'HighlightOffOutlined');\n\nexports.default = _default;"],"names":["UsersGraph","apps","currentAppIndex","useState","userCount","setUsersCount","theme","useTheme","userGraphData","setUserGraphData","loading","setLoading","getUsersData","http","appToken","get","usersCount","data","count","graphData","transformDataForLineChart","console","log","useEffect","className","style","marginRight","justifyContent","alignItems","CircularProgress","onClick","e","preventDefault","href","ResponsiveContainer","height","LineChart","width","margin","top","right","left","bottom","CartesianGrid","strokeDasharray","XAxis","dataKey","YAxis","Tooltip","Line","type","name","stroke","palette","primary","main","activeDot","r","AppsSelect","props","Box","sx","marginBottom","FormControl","fullWidth","InputLabel","id","Select","labelId","value","label","onChange","event","setCurrentAppIndex","target","map","app","index","MenuItem","appName","_id","TokensGraph","TransactionsGraph","transactions","setTransactions","getData","res","Contracts","setCount","then","response","display","flexDirection","Gavel","fontSize","color","NetworkHealth","blockchain","latestBlockNumber","CheckCircleOutlined","HighlightOffOutlined","BezierCurve","fill","xmlns","viewBox","d","Peers","peerCount","useStoreState","state","blockTimestamp","latestBlockHash","noOfTransactions","pendingTransactions","transactionDifficulty","setBlockchain","getBlockchainData","length","backgroundColor","padding","Container","maxWidth","gridTemplateColumns","xs","sm","gridTemplateRows","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx"],"sourceRoot":""}