diff --git a/packages/site/src/components/Header.tsx b/packages/site/src/components/Header.tsx index fd88739..4e6623f 100644 --- a/packages/site/src/components/Header.tsx +++ b/packages/site/src/components/Header.tsx @@ -1,6 +1,9 @@ import { useContext } from 'react'; import styled, { useTheme } from 'styled-components'; - +import Menu from '@mui/material/Menu'; +import MenuItem from '@mui/material/MenuItem'; +import { useState, useEffect } from 'react'; +import ArrowDropDownCircleOutlinedIcon from '@mui/icons-material/ArrowDropDownCircleOutlined'; import { MetamaskActions, MetaMaskContext } from '../hooks'; import { connectSnap, getThemePreference, getSnap } from '../utils'; import { HeaderButtons } from './Buttons'; @@ -60,6 +63,21 @@ export const Header = ({ dispatch({ type: MetamaskActions.SetError, payload: error }); } }; + const [anchorEl, setAnchorEl] = useState(null); + const [selectedNetwork, setSelectedNetwork] = useState('mainnet'); + + const handleDropdownClick = (event) => { + setAnchorEl(event.currentTarget); + }; + + const handleDropdownClose = () => { + setAnchorEl(null); + }; + + const handleNetworkSelect = (network) => { + setSelectedNetwork(network); + handleDropdownClose(); + }; return ( @@ -67,6 +85,58 @@ export const Header = ({ SNAPTOS +
+ {selectedNetwork.toUpperCase()}{' '} + {/* Display the selected network in uppercase */} + +
+ + handleNetworkSelect('mainnet')} + sx={{ fontSize: '15px', font: 'Roboto' }} + > + Mainnet + + handleNetworkSelect('testnet')} + sx={{ fontSize: '15px', font: 'Roboto' }} + > + Testnet + + handleNetworkSelect('devnet')} + sx={{ fontSize: '15px', font: 'Roboto' }} + > + Devnet + +           + {' '} +
( - - - - - - - - - - -); \ No newline at end of file + + + + + + + + + +); \ No newline at end of file diff --git a/packages/site/src/pages/index.tsx b/packages/site/src/pages/index.tsx index a8d6444..291822e 100644 --- a/packages/site/src/pages/index.tsx +++ b/packages/site/src/pages/index.tsx @@ -475,7 +475,7 @@ const Index = () => { return ( - Welcome to SnapTos + Welcome to SNAPTOS { res.json(await getTransByHash(req.body)); }); +app.get('/aptToUsd', async (req:Request,res: Response) => { + res.json({APT : await convertAptToUsd()}); +}); + app.listen(PORT, () => { console.log(`Server is running on port ${PORT}`); }); diff --git a/server/src/aptToUsd.ts b/server/src/aptToUsd.ts new file mode 100644 index 0000000..dd5b950 --- /dev/null +++ b/server/src/aptToUsd.ts @@ -0,0 +1,32 @@ +/* eslint-disable */ + + +export async function convertAptToUsd() { + const response1 = await fetch('https://www.binance.com/api/v3/ticker/price?symbol=APTUSDT') + const data1 = await response1.json(); + const price1 = parseFloat(data1.price); + console.log(price1) + + const response2 = await fetch('https://api-pub.bitfinex.com/v2/tickers?symbols=tAPTUSD') + const data2 = await response2.json(); + const price2 = (data2[0][1] + data2[0][3] + data2[0][7])/3; + console.log(price2) + + const response3 = await fetch('https://api.coinbase.com/v2/prices/APT-USD/spot'); + const data3 = await response3.json(); + const price3 = parseFloat(data3.data.amount); + console.log(price3); + + const response4 = await fetch('https://api.huobi.pro/market/detail/merged?symbol=aptusdt'); + const data4 = await response4.json(); + const price4 = (data4.tick.bid[0] + data4.tick.ask[0])/2; + console.log(price4); + + const response5 = await fetch('https://www.mexc.com/open/api/v2/market/ticker?symbol=APT_USDT'); + const data5 = await response5.json(); + const price5 = (parseFloat(data5.data[0].ask) + parseFloat(data5.data[0].bid) + parseFloat(data5.data[0].last))/3; + console.log(price5) + + return (price1 + price2 + price3 + price4 + price5)/5; + +} \ No newline at end of file