mirror of https://github.com/ethereum/go-ethereum
commit
bfcf91fa31
Before Width: | Height: | Size: 834 B After Width: | Height: | Size: 837 B |
@ -0,0 +1,113 @@ |
||||
import { Box, Flex, Input, InputGroup, Link, Stack, Text } from '@chakra-ui/react'; |
||||
import { FC } from 'react'; |
||||
import NextLink from 'next/link'; |
||||
|
||||
import { HamburguerIcon, LensIcon, MoonIcon } from '../UI/icons'; |
||||
import { DOCS_PAGE, DOWNLOADS_PAGE } from '../../constants'; |
||||
|
||||
export const Header: FC = () => { |
||||
return ( |
||||
<Flex |
||||
mb={4} |
||||
border='2px solid' |
||||
borderColor='brand.light.primary' |
||||
justifyContent='space-between' |
||||
> |
||||
<Stack |
||||
p={4} |
||||
justifyContent='center' |
||||
alignItems='flex-start' |
||||
borderRight={{ base: 'none', sm: '2px solid' }} |
||||
borderColor='brand.light.primary' |
||||
flexGrow={2} |
||||
> |
||||
<Text textStyle='header-font'> |
||||
go-ethereum |
||||
</Text> |
||||
</Stack> |
||||
|
||||
<Flex> |
||||
{/* DOWNLOADS */} |
||||
<Stack |
||||
p={4} |
||||
justifyContent='center' |
||||
borderRight='2px solid' |
||||
borderColor='brand.light.primary' |
||||
display={{ base: 'none', md: 'block' }} |
||||
color='brand.light.primary' |
||||
_hover={{ |
||||
textDecoration: 'none', |
||||
bg: 'brand.light.primary', |
||||
color: 'yellow.50 !important' |
||||
}} |
||||
> |
||||
<NextLink href={DOWNLOADS_PAGE} passHref> |
||||
<Link _hover={{ textDecoration: 'none' }}> |
||||
<Text textStyle='header-font' textTransform='uppercase'> |
||||
downloads |
||||
</Text> |
||||
</Link> |
||||
</NextLink> |
||||
</Stack> |
||||
|
||||
{/* DOCUMENTATION */} |
||||
<Stack |
||||
p={4} |
||||
justifyContent='center' |
||||
borderRight={{ base: 'none', md: '2px solid' }} |
||||
borderColor='brand.light.primary' |
||||
display={{ base: 'none', md: 'block' }} |
||||
color='brand.light.primary' |
||||
_hover={{ |
||||
textDecoration: 'none', |
||||
bg: 'brand.light.primary', |
||||
color: 'yellow.50 !important' |
||||
}} |
||||
> |
||||
<NextLink href={DOCS_PAGE} passHref> |
||||
<Link _hover={{ textDecoration: 'none' }}> |
||||
<Text textStyle='header-font' textTransform='uppercase'> |
||||
documentation |
||||
</Text> |
||||
</Link> |
||||
</NextLink> |
||||
</Stack> |
||||
|
||||
{/* SEARCH */} |
||||
<Stack |
||||
p={4} |
||||
display={{ base: 'none', md: 'block' }} |
||||
borderRight={{ base: 'none', md: '2px solid' }} |
||||
borderColor='brand.light.primary' |
||||
> |
||||
<InputGroup> |
||||
<Input |
||||
variant='unstyled' |
||||
placeholder='search' |
||||
size='md' |
||||
_placeholder={{ color: 'brand.light.primary', fontStyle: 'italic' }} |
||||
/> |
||||
|
||||
<Stack pl={4} justifyContent='center' alignItems='center'> |
||||
<LensIcon /> |
||||
</Stack> |
||||
</InputGroup> |
||||
</Stack> |
||||
|
||||
{/* DARK MODE SWITCH */} |
||||
<Box |
||||
p={4} |
||||
borderRight={{ base: '2px solid', lg: 'none' }} |
||||
borderColor='brand.light.primary' |
||||
> |
||||
<MoonIcon /> |
||||
</Box> |
||||
|
||||
{/* HAMBURGUER MENU */} |
||||
<Box p={4} display={{ base: 'block', md: 'none' }}> |
||||
<HamburguerIcon /> |
||||
</Box> |
||||
</Flex> |
||||
</Flex> |
||||
); |
||||
}; |
@ -1,99 +1,56 @@ |
||||
import { |
||||
Stack, |
||||
Tabs, |
||||
TabList, |
||||
Tab, |
||||
Text, |
||||
TabPanel, |
||||
TabPanels, |
||||
} from '@chakra-ui/react'; |
||||
import { Stack, Tabs, TabList, Tab, Text, TabPanel, TabPanels } from '@chakra-ui/react'; |
||||
import { FC } from 'react'; |
||||
|
||||
import { |
||||
DOWNLOAD_TABS, |
||||
DOWNLOAD_TAB_COLUMN_HEADERS |
||||
} from '../../../constants' |
||||
import { DOWNLOAD_TABS, DOWNLOAD_TAB_COLUMN_HEADERS } from '../../../constants'; |
||||
|
||||
import { DataTable } from '../DataTable' |
||||
import { DataTable } from '../../UI'; |
||||
|
||||
interface Props { |
||||
data: any |
||||
data: any; |
||||
} |
||||
|
||||
export const DownloadsTable: FC<Props> = ({ |
||||
data |
||||
}) => { |
||||
export const DownloadsTable: FC<Props> = ({ data }) => { |
||||
return ( |
||||
<Stack |
||||
sx={{ mt: '0 !important' }} |
||||
borderBottom='2px solid' |
||||
borderColor='brand.light.primary' |
||||
> |
||||
<Stack sx={{ mt: '0 !important' }} borderBottom='2px solid' borderColor='brand.light.primary'> |
||||
<Tabs variant='unstyled'> |
||||
<TabList |
||||
color='brand.light.primary' |
||||
bg='green.50' |
||||
> |
||||
{ |
||||
DOWNLOAD_TABS.map((tab, idx) => { |
||||
return ( |
||||
<Tab |
||||
key={tab} |
||||
w={'20%'} |
||||
p={4} |
||||
_selected={{ |
||||
bg: 'brand.light.primary', |
||||
color: 'yellow.50', |
||||
}} |
||||
borderBottom='2px solid' |
||||
borderRight={ |
||||
idx === (DOWNLOAD_TABS.length - 1) |
||||
?'none' |
||||
:'2px solid' |
||||
} |
||||
borderColor='brand.light.primary' |
||||
> |
||||
<Text textStyle='download-tab-label'> |
||||
{tab} |
||||
</Text> |
||||
</Tab> |
||||
) |
||||
}) |
||||
} |
||||
<TabList color='brand.light.primary' bg='green.50'> |
||||
{DOWNLOAD_TABS.map((tab, idx) => { |
||||
return ( |
||||
<Tab |
||||
key={tab} |
||||
w={'20%'} |
||||
p={4} |
||||
_selected={{ |
||||
bg: 'brand.light.primary', |
||||
color: 'yellow.50' |
||||
}} |
||||
borderBottom='2px solid' |
||||
borderRight={idx === DOWNLOAD_TABS.length - 1 ? 'none' : '2px solid'} |
||||
borderColor='brand.light.primary' |
||||
> |
||||
<Text textStyle='download-tab-label'>{tab}</Text> |
||||
</Tab> |
||||
); |
||||
})} |
||||
</TabList> |
||||
<TabPanels> |
||||
<TabPanel p={0}> |
||||
<DataTable |
||||
columnHeaders={DOWNLOAD_TAB_COLUMN_HEADERS} |
||||
data={data} |
||||
/> |
||||
<DataTable columnHeaders={DOWNLOAD_TAB_COLUMN_HEADERS} data={data} /> |
||||
</TabPanel> |
||||
<TabPanel p={0}> |
||||
<DataTable |
||||
columnHeaders={DOWNLOAD_TAB_COLUMN_HEADERS} |
||||
data={data} |
||||
/> |
||||
<DataTable columnHeaders={DOWNLOAD_TAB_COLUMN_HEADERS} data={data} /> |
||||
</TabPanel> |
||||
<TabPanel p={0}> |
||||
<DataTable |
||||
columnHeaders={DOWNLOAD_TAB_COLUMN_HEADERS} |
||||
data={data} |
||||
/> |
||||
<DataTable columnHeaders={DOWNLOAD_TAB_COLUMN_HEADERS} data={data} /> |
||||
</TabPanel> |
||||
<TabPanel p={0}> |
||||
<DataTable |
||||
columnHeaders={DOWNLOAD_TAB_COLUMN_HEADERS} |
||||
data={data} |
||||
/> |
||||
<DataTable columnHeaders={DOWNLOAD_TAB_COLUMN_HEADERS} data={data} /> |
||||
</TabPanel> |
||||
<TabPanel p={0}> |
||||
<DataTable |
||||
columnHeaders={DOWNLOAD_TAB_COLUMN_HEADERS} |
||||
data={data} |
||||
/> |
||||
<DataTable columnHeaders={DOWNLOAD_TAB_COLUMN_HEADERS} data={data} /> |
||||
</TabPanel> |
||||
</TabPanels> |
||||
</Tabs> |
||||
</Stack> |
||||
) |
||||
} |
||||
); |
||||
}; |
||||
|
@ -1,3 +1,3 @@ |
||||
export * from './DownloadsHero'; |
||||
export * from './DownloadsSection' |
||||
export * from './DownloadsTable' |
||||
export * from './DownloadsSection'; |
||||
export * from './DownloadsTable'; |
||||
|
@ -0,0 +1,67 @@ |
||||
import { Box, Grid, GridItem, Image, Link, Stack, Text } from '@chakra-ui/react'; |
||||
import { FC } from 'react'; |
||||
import NextLink from 'next/link'; |
||||
|
||||
import { ETHEREUM_ORG_URL } from '../../../constants'; |
||||
|
||||
interface Props { |
||||
children: React.ReactNode; |
||||
} |
||||
|
||||
export const WhatIsEthereum: FC<Props> = ({ children }) => { |
||||
return ( |
||||
<Stack border='2px solid' borderColor='brand.light.primary'> |
||||
<Grid |
||||
templateColumns={{ base: 'repeat(1, 1fr)', md: 'repeat(2, 1fr)' }} |
||||
borderBottom={{ base: 'none', md: '2px solid #11866f' }} |
||||
> |
||||
<GridItem |
||||
borderRight={{ base: 'none', md: '2px solid #11866f' }} |
||||
order={{ base: 2, md: 1 }} |
||||
> |
||||
<Stack |
||||
p={4} |
||||
borderBottom='2px solid' |
||||
borderColor='brand.light.primary' |
||||
sx={{ mt: '0 !important' }} |
||||
> |
||||
<Box as='h2' textStyle='h2'> |
||||
What is Ethereum |
||||
</Box> |
||||
</Stack> |
||||
|
||||
<Stack |
||||
p={4} |
||||
borderBottom={{ base: '2px solid', md: 'none' }} |
||||
borderColor='brand.light.primary' |
||||
sx={{ mt: '0 !important' }} |
||||
> |
||||
{children} |
||||
</Stack> |
||||
</GridItem> |
||||
|
||||
<GridItem order={{ base: 1, md: 2 }}> |
||||
<Stack |
||||
justifyContent='center' |
||||
alignItems='center' |
||||
p={4} |
||||
borderBottom={{ base: '2px solid', md: 'none' }} |
||||
borderColor='brand.light.primary' |
||||
h='100%' |
||||
> |
||||
{/* TODO: use NextImage */} |
||||
<Image src='/images/pages/glyph-home-light.svg' alt='Ethereum glyph' /> |
||||
</Stack> |
||||
</GridItem> |
||||
</Grid> |
||||
|
||||
<Stack sx={{ mt: '0 !important' }}> |
||||
<NextLink href={ETHEREUM_ORG_URL} passHref> |
||||
<Link variant='button-link-secondary' isExternal> |
||||
<Text textStyle='home-section-link-label'>Learn more on Ethereum.org</Text> |
||||
</Link> |
||||
</NextLink> |
||||
</Stack> |
||||
</Stack> |
||||
); |
||||
}; |
@ -0,0 +1,64 @@ |
||||
import { Box, Grid, GridItem, Image, Link, Stack, Text } from '@chakra-ui/react'; |
||||
import { FC } from 'react'; |
||||
import NextLink from 'next/link'; |
||||
|
||||
import { ETHEREUM_ORG_RUN_A_NODE_URL } from '../../../constants'; |
||||
|
||||
interface Props { |
||||
children: React.ReactNode; |
||||
} |
||||
|
||||
export const WhyRunANode: FC<Props> = ({ children }) => { |
||||
return ( |
||||
<Stack border='2px solid' borderColor='brand.light.primary'> |
||||
<Grid |
||||
templateColumns={{ base: 'repeat(1, 1fr)', md: 'repeat(2, 1fr)' }} |
||||
borderBottom={{ base: 'none', md: '2px solid #11866f' }} |
||||
> |
||||
<GridItem order={{ base: 1, md: 2 }}> |
||||
<Stack |
||||
p={4} |
||||
borderBottom='2px solid' |
||||
borderColor='brand.light.primary' |
||||
sx={{ mt: '0 !important' }} |
||||
> |
||||
<Box as='h2' textStyle='h2'> |
||||
Why run a node? |
||||
</Box> |
||||
</Stack> |
||||
|
||||
<Stack |
||||
p={4} |
||||
borderBottom={{ base: '2px solid', md: 'none' }} |
||||
borderColor='brand.light.primary' |
||||
sx={{ mt: '0 !important' }} |
||||
> |
||||
{children} |
||||
</Stack> |
||||
</GridItem> |
||||
|
||||
<GridItem rowSpan={2}> |
||||
<Stack |
||||
justifyContent='center' |
||||
alignItems='center' |
||||
p={4} |
||||
borderBottom={{ base: '2px solid #11866f', md: 'none' }} |
||||
borderRight={{ base: 'none', md: '2px solid #11866f' }} |
||||
h='100%' |
||||
> |
||||
{/* TODO: use NextImage */} |
||||
<Image src='/images/pages/gopher-home-nodes.svg' alt='Gopher staring at nodes' /> |
||||
</Stack> |
||||
</GridItem> |
||||
</Grid> |
||||
|
||||
<Stack sx={{ mt: '0 !important' }}> |
||||
<NextLink href={ETHEREUM_ORG_RUN_A_NODE_URL} passHref> |
||||
<Link variant='button-link-secondary' isExternal> |
||||
<Text textStyle='home-section-link-label'>Read more about running a node</Text> |
||||
</Link> |
||||
</NextLink> |
||||
</Stack> |
||||
</Stack> |
||||
); |
||||
}; |
@ -1,4 +1,6 @@ |
||||
export * from './Gopher'; |
||||
export * from './HomeHero'; |
||||
export * from './HomeSection'; |
||||
export * from './WhatIsEthereum'; |
||||
export * from './WhyRunANode'; |
||||
export * from './QuickLinks'; |
||||
|
@ -0,0 +1,16 @@ |
||||
import { createIcon } from '@chakra-ui/icons'; |
||||
|
||||
export const HamburguerIcon = createIcon({ |
||||
displayName: 'HamburguerIcon', |
||||
viewBox: '0 0 22 14', |
||||
path: ( |
||||
<svg width={22} height={14} fill='none' xmlns='http://www.w3.org/2000/svg'> |
||||
<path |
||||
fillRule='evenodd' |
||||
clipRule='evenodd' |
||||
d='M0 .5h22v.97H0V.5Zm0 6.017h22v.97H0v-.97Zm22 6.013H0v.97h22v-.97Z' |
||||
fill='#11866F' |
||||
/> |
||||
</svg> |
||||
) |
||||
}); |
@ -0,0 +1,14 @@ |
||||
import { createIcon } from '@chakra-ui/icons'; |
||||
|
||||
export const LensIcon = createIcon({ |
||||
displayName: 'LensIcon', |
||||
viewBox: '0 0 17 18', |
||||
path: ( |
||||
<svg width={17} height={18} fill='none' xmlns='http://www.w3.org/2000/svg'> |
||||
<path |
||||
d='M12.15 11.192h-.768l-.272-.263a6.29 6.29 0 0 0 1.526-4.111 6.317 6.317 0 1 0-6.318 6.318 6.29 6.29 0 0 0 4.111-1.526l.263.272v.768l4.86 4.85L17 16.052l-4.85-4.86Zm-5.832 0a4.368 4.368 0 0 1-4.374-4.374 4.368 4.368 0 0 1 4.374-4.374 4.368 4.368 0 0 1 4.374 4.374 4.368 4.368 0 0 1-4.374 4.374Z' |
||||
fill='#11866F' |
||||
/> |
||||
</svg> |
||||
) |
||||
}); |
@ -0,0 +1,14 @@ |
||||
import { createIcon } from '@chakra-ui/icons'; |
||||
|
||||
export const MoonIcon = createIcon({ |
||||
displayName: 'MoonIcon', |
||||
viewBox: '0 0 22 22', |
||||
path: ( |
||||
<svg width={22} height={22} fill='none' xmlns='http://www.w3.org/2000/svg'> |
||||
<path |
||||
d='M8.333.334C6.392.334 4.568.867 3 1.774c3.19 1.845 5.333 5.28 5.333 9.227 0 3.946-2.144 7.381-5.333 9.226a10.638 10.638 0 0 0 5.333 1.44C14.221 21.667 19 16.89 19 11.001 19 5.113 14.221.334 8.333.334Z' |
||||
fill='#11866F' |
||||
/> |
||||
</svg> |
||||
) |
||||
}); |
@ -0,0 +1,6 @@ |
||||
export * from './DiscordIcon' |
||||
export * from './GitHubIcon' |
||||
export * from './HamburguerIcon'; |
||||
export * from './LensIcon'; |
||||
export * from './MoonIcon'; |
||||
export * from './TwitterIcon' |
@ -1,3 +0,0 @@ |
||||
export * from './DiscordIcon' |
||||
export * from './GitHubIcon' |
||||
export * from './TwitterIcon' |
@ -0,0 +1,2 @@ |
||||
export * from './DataTable'; |
||||
export * from './Header'; |
@ -1,32 +1,32 @@ |
||||
export const pgpBuildTestData = [ |
||||
{ |
||||
"build server": "Android Builder", |
||||
"unique id": "Go Ethereum Android Builder <geth-ci@ethereum.org>", |
||||
"openpgp key": "F9585DE6", |
||||
"fingerprint": "8272 1824 F4D7 46E0 B5A7 AB95 70AD 154B F958 5DE6" |
||||
'build server': 'Android Builder', |
||||
'unique id': 'Go Ethereum Android Builder <geth-ci@ethereum.org>', |
||||
'openpgp key': 'F9585DE6', |
||||
fingerprint: '8272 1824 F4D7 46E0 B5A7 AB95 70AD 154B F958 5DE6' |
||||
}, |
||||
{ |
||||
"build server": "iOS Builder", |
||||
"unique id": "Go Ethereum iOS Builder <geth-ci@ethereum.org>", |
||||
"openpgp key": "F9585DE6", |
||||
"fingerprint": "8272 1824 F4D7 46E0 B5A7 AB95 70AD 154B F958 5DE6" |
||||
'build server': 'iOS Builder', |
||||
'unique id': 'Go Ethereum iOS Builder <geth-ci@ethereum.org>', |
||||
'openpgp key': 'F9585DE6', |
||||
fingerprint: '8272 1824 F4D7 46E0 B5A7 AB95 70AD 154B F958 5DE6' |
||||
}, |
||||
{ |
||||
"build server": "Linux Builder", |
||||
"unique id": "Go Ethereum Linux Builder <geth-ci@ethereum.org>", |
||||
"openpgp key": "F9585DE6", |
||||
"fingerprint": "8272 1824 F4D7 46E0 B5A7 AB95 70AD 154B F958 5DE6" |
||||
'build server': 'Linux Builder', |
||||
'unique id': 'Go Ethereum Linux Builder <geth-ci@ethereum.org>', |
||||
'openpgp key': 'F9585DE6', |
||||
fingerprint: '8272 1824 F4D7 46E0 B5A7 AB95 70AD 154B F958 5DE6' |
||||
}, |
||||
{ |
||||
"build server": "macOS Builder", |
||||
"unique id": "Go Ethereum macOS Builder <geth-ci@ethereum.org>", |
||||
"openpgp key": "F9585DE6", |
||||
"fingerprint": "8272 1824 F4D7 46E0 B5A7 AB95 70AD 154B F958 5DE6" |
||||
'build server': 'macOS Builder', |
||||
'unique id': 'Go Ethereum macOS Builder <geth-ci@ethereum.org>', |
||||
'openpgp key': 'F9585DE6', |
||||
fingerprint: '8272 1824 F4D7 46E0 B5A7 AB95 70AD 154B F958 5DE6' |
||||
}, |
||||
{ |
||||
"build server": "Windows Builder", |
||||
"unique id": "Go Ethereum Windows Builder <geth-ci@ethereum.org>", |
||||
"openpgp key": "F9585DE6", |
||||
"fingerprint": "8272 1824 F4D7 46E0 B5A7 AB95 70AD 154B F958 5DE6" |
||||
}, |
||||
] |
||||
'build server': 'Windows Builder', |
||||
'unique id': 'Go Ethereum Windows Builder <geth-ci@ethereum.org>', |
||||
'openpgp key': 'F9585DE6', |
||||
fingerprint: '8272 1824 F4D7 46E0 B5A7 AB95 70AD 154B F958 5DE6' |
||||
} |
||||
]; |
||||
|
@ -1,20 +1,20 @@ |
||||
export const pgpDeveloperTestData = [ |
||||
{ |
||||
"developer": "Felix Lange", |
||||
"unique id": "Felix Lange <fjl@ethereum.org>", |
||||
"openpgp key": "F9585DE6", |
||||
"fingerprint": "8272 1824 F4D7 46E0 B5A7 AB95 70AD 154B F958 5DE6" |
||||
developer: 'Felix Lange', |
||||
'unique id': 'Felix Lange <fjl@ethereum.org>', |
||||
'openpgp key': 'F9585DE6', |
||||
fingerprint: '8272 1824 F4D7 46E0 B5A7 AB95 70AD 154B F958 5DE6' |
||||
}, |
||||
{ |
||||
"developer": "Martin Holst Swende", |
||||
"unique id": "Martin Holst Swende <martin.swende@ethereum.org>", |
||||
"openpgp key": "F9585DE6", |
||||
"fingerprint": "8272 1824 F4D7 46E0 B5A7 AB95 70AD 154B F958 5DE6" |
||||
developer: 'Martin Holst Swende', |
||||
'unique id': 'Martin Holst Swende <martin.swende@ethereum.org>', |
||||
'openpgp key': 'F9585DE6', |
||||
fingerprint: '8272 1824 F4D7 46E0 B5A7 AB95 70AD 154B F958 5DE6' |
||||
}, |
||||
{ |
||||
"developer": "Péter Szilágyi", |
||||
"unique id": "Péter Szilágyi <peter@ethereum.org>", |
||||
"openpgp key": "F9585DE6", |
||||
"fingerprint": "8272 1824 F4D7 46E0 B5A7 AB95 70AD 154B F958 5DE6" |
||||
}, |
||||
] |
||||
developer: 'Péter Szilágyi', |
||||
'unique id': 'Péter Szilágyi <peter@ethereum.org>', |
||||
'openpgp key': 'F9585DE6', |
||||
fingerprint: '8272 1824 F4D7 46E0 B5A7 AB95 70AD 154B F958 5DE6' |
||||
} |
||||
]; |
||||
|
@ -1,229 +1,214 @@ |
||||
import { |
||||
Code, |
||||
Link, |
||||
ListItem, |
||||
Stack, |
||||
Text, |
||||
UnorderedList, |
||||
} from '@chakra-ui/react'; |
||||
import { Code, Link, ListItem, Stack, Text, UnorderedList } from '@chakra-ui/react'; |
||||
import type { NextPage } from 'next'; |
||||
import { useState } from 'react' |
||||
import { useState } from 'react'; |
||||
|
||||
import { |
||||
DownloadsHero, |
||||
DownloadsSection, |
||||
DownloadsTable, |
||||
} from '../components/UI/downloads'; |
||||
import { DataTable } from '../components/UI/DataTable'; |
||||
import { DownloadsHero, DownloadsSection, DownloadsTable } from '../components/UI/downloads'; |
||||
import { DataTable } from '../components/UI'; |
||||
|
||||
import { |
||||
DEFAULT_BUILD_AMOUNT_TO_SHOW, |
||||
DOWNLOAD_OPENPGP_BUILD_HEADERS, |
||||
DOWNLOAD_OPENPGP_DEVELOPER_HEADERS, |
||||
GETH_REPO_URL |
||||
} from '../constants' |
||||
} from '../constants'; |
||||
|
||||
import { testDownloadData } from '../data/test/download-testdata' |
||||
import { testDownloadData } from '../data/test/download-testdata'; |
||||
import { pgpBuildTestData } from '../data/test/pgpbuild-testdata'; |
||||
import { pgpDeveloperTestData } from '../data/test/pgpdeveloper-testdata'; |
||||
|
||||
const DownloadsPage: NextPage = () => { |
||||
const [amountStableReleases, updateAmountStables] = useState(DEFAULT_BUILD_AMOUNT_TO_SHOW) |
||||
const [amountDevelopBuilds, updateAmountDevelopBuilds] = useState(DEFAULT_BUILD_AMOUNT_TO_SHOW) |
||||
const [amountStableReleases, updateAmountStables] = useState(DEFAULT_BUILD_AMOUNT_TO_SHOW); |
||||
const [amountDevelopBuilds, updateAmountDevelopBuilds] = useState(DEFAULT_BUILD_AMOUNT_TO_SHOW); |
||||
|
||||
const showMoreStableReleases = () => { |
||||
updateAmountStables(amountStableReleases+10) |
||||
} |
||||
updateAmountStables(amountStableReleases + 10); |
||||
}; |
||||
|
||||
const showMoreDevelopBuilds = () => { |
||||
updateAmountDevelopBuilds(amountDevelopBuilds+10) |
||||
} |
||||
updateAmountDevelopBuilds(amountDevelopBuilds + 10); |
||||
}; |
||||
|
||||
return ( |
||||
<> |
||||
{/* TODO: add PageMetadata */} |
||||
|
||||
<main> |
||||
<Stack spacing={4}> |
||||
{/* TODO: replace hardcoded strings with build information */} |
||||
<DownloadsHero |
||||
currentBuildName={'Sentry Omega'} |
||||
currentBuildVersion={'v1.10.23'} |
||||
linuxBuildURL={'https://gethstore.blob.core.windows.net/builds/geth-linux-amd64-1.10.25-69568c55.tar.gz'} |
||||
macOSBuildURL={'https://gethstore.blob.core.windows.net/builds/geth-darwin-amd64-1.10.25-69568c55.tar.gz'} |
||||
releaseNotesURL={''} |
||||
sourceCodeURL={'https://github.com/ethereum/go-ethereum/archive/v1.10.25.tar.gz'} |
||||
windowsBuildURL={'https://gethstore.blob.core.windows.net/builds/geth-windows-amd64-1.10.25-69568c55.exe'} |
||||
/> |
||||
|
||||
<DownloadsSection |
||||
imgSrc='/images/pages/gopher-home-side-desktop.svg' |
||||
imgAltText='Gopher facing right' |
||||
sectionTitle='Specific Versions' |
||||
id='specificversions' |
||||
> |
||||
<Stack p={4}> |
||||
<Text textStyle='quick-link-text'> |
||||
If you're looking for a specific release, operating system or architecture, below you will find: |
||||
</Text> |
||||
|
||||
<UnorderedList px={4}> |
||||
<ListItem> |
||||
<Text textStyle='quick-link-text'> |
||||
All stable and develop builds of Geth and tools |
||||
</Text> |
||||
</ListItem> |
||||
<ListItem> |
||||
<Text textStyle='quick-link-text'> |
||||
Archives for non-primary processor architectures |
||||
</Text> |
||||
</ListItem> |
||||
<ListItem> |
||||
<Text textStyle='quick-link-text'> |
||||
Android library archives and iOS XCode frameworks |
||||
{/* TODO: add PageMetadata */} |
||||
|
||||
<main> |
||||
<Stack spacing={4}> |
||||
{/* TODO: replace hardcoded strings with build information */} |
||||
<DownloadsHero |
||||
currentBuildName={'Sentry Omega'} |
||||
currentBuildVersion={'v1.10.23'} |
||||
linuxBuildURL={ |
||||
'https://gethstore.blob.core.windows.net/builds/geth-linux-amd64-1.10.25-69568c55.tar.gz' |
||||
} |
||||
macOSBuildURL={ |
||||
'https://gethstore.blob.core.windows.net/builds/geth-darwin-amd64-1.10.25-69568c55.tar.gz' |
||||
} |
||||
releaseNotesURL={''} |
||||
sourceCodeURL={'https://github.com/ethereum/go-ethereum/archive/v1.10.25.tar.gz'} |
||||
windowsBuildURL={ |
||||
'https://gethstore.blob.core.windows.net/builds/geth-windows-amd64-1.10.25-69568c55.exe' |
||||
} |
||||
/> |
||||
|
||||
<DownloadsSection |
||||
imgSrc='/images/pages/gopher-home-side-desktop.svg' |
||||
imgAltText='Gopher facing right' |
||||
sectionTitle='Specific Versions' |
||||
id='specificversions' |
||||
> |
||||
<Stack p={4}> |
||||
<Text textStyle='quick-link-text'> |
||||
If you're looking for a specific release, operating system or architecture, |
||||
below you will find: |
||||
</Text> |
||||
|
||||
<UnorderedList px={4}> |
||||
<ListItem> |
||||
<Text textStyle='quick-link-text'> |
||||
All stable and develop builds of Geth and tools |
||||
</Text> |
||||
</ListItem> |
||||
<ListItem> |
||||
<Text textStyle='quick-link-text'> |
||||
Archives for non-primary processor architectures |
||||
</Text> |
||||
</ListItem> |
||||
<ListItem> |
||||
<Text textStyle='quick-link-text'> |
||||
Android library archives and iOS XCode frameworks |
||||
</Text> |
||||
</ListItem> |
||||
</UnorderedList> |
||||
|
||||
<Text textStyle='quick-link-text'> |
||||
Please select your desired platform from the lists below and download your bundle of |
||||
choice. Please be aware that the MD5 checksums are provided by our binary hosting |
||||
platform (Azure Blobstore) to help check for download errors. For security |
||||
guarantees please verify any downloads via the attached PGP signature files (see{' '} |
||||
<Link href={'#pgpsignatures'} variant='light'> |
||||
OpenPGP |
||||
</Link>{' '} |
||||
Signatures for details). |
||||
</Text> |
||||
</Stack> |
||||
</DownloadsSection> |
||||
|
||||
<DownloadsSection sectionTitle='Stable releases' id='stablereleases'> |
||||
<Stack p={4} borderBottom='2px solid' borderColor='brand.light.primary'> |
||||
<Text textStyle='quick-link-text'> |
||||
These are the current and previous stable releases of go-ethereum, updated |
||||
automatically when a new version is tagged in our{' '} |
||||
<Link href={GETH_REPO_URL} isExternal variant='light'> |
||||
GitHub repository. |
||||
</Link> |
||||
</Text> |
||||
</Stack> |
||||
|
||||
{/* TODO: swap test data for real data */} |
||||
<DownloadsTable data={testDownloadData.slice(0, amountStableReleases)} /> |
||||
|
||||
<Stack sx={{ mt: '0 !important' }}> |
||||
<Link as='button' variant='button-link-secondary' onClick={showMoreStableReleases}> |
||||
<Text |
||||
fontFamily='"JetBrains Mono", monospace' |
||||
fontWeight={700} |
||||
textTransform='uppercase' |
||||
textAlign='center' |
||||
p={4} |
||||
> |
||||
Show older releases |
||||
</Text> |
||||
</ListItem> |
||||
</UnorderedList> |
||||
|
||||
<Text textStyle='quick-link-text'> |
||||
Please select your desired platform from the lists below and download your bundle of choice. Please be aware that the MD5 checksums are provided by our binary hosting platform (Azure Blobstore) to help check for download errors. For security guarantees please verify any downloads via the attached PGP signature files (see{' '} |
||||
<Link |
||||
href={'#pgpsignatures'} |
||||
variant='light' |
||||
> |
||||
OpenPGP |
||||
</Link>{' '} |
||||
Signatures for details). |
||||
</Text> |
||||
</Stack> |
||||
</DownloadsSection> |
||||
|
||||
<DownloadsSection sectionTitle='Stable releases' id='stablereleases'> |
||||
<Stack p={4} borderBottom='2px solid' borderColor='brand.light.primary'> |
||||
<Text textStyle='quick-link-text'> |
||||
These are the current and previous stable releases of go-ethereum, updated automatically when a new version is tagged in our{' '} |
||||
<Link |
||||
href={GETH_REPO_URL} |
||||
isExternal |
||||
variant='light' |
||||
> |
||||
GitHub repository. |
||||
</Link> |
||||
</Text> |
||||
</Stack> |
||||
|
||||
{/* TODO: swap test data for real data */} |
||||
<DownloadsTable data={testDownloadData.slice(0, amountStableReleases)}/> |
||||
|
||||
<Stack sx={{ mt: '0 !important' }}> |
||||
<Link as='button' variant='button-link-secondary' onClick={showMoreStableReleases}> |
||||
<Text |
||||
fontFamily='"JetBrains Mono", monospace' |
||||
fontWeight={700} |
||||
textTransform='uppercase' |
||||
textAlign='center' |
||||
p={4} |
||||
> |
||||
Show older releases |
||||
</Stack> |
||||
</DownloadsSection> |
||||
|
||||
<DownloadsSection sectionTitle='Develop builds' id='developbuilds'> |
||||
<Stack p={4} borderBottom='2px solid' borderColor='brand.light.primary'> |
||||
<Text textStyle='quick-link-text'> |
||||
These are the develop snapshots of go-ethereum, updated automatically when a new |
||||
commit is pushed into our{' '} |
||||
<Link href={GETH_REPO_URL} isExternal variant='light'> |
||||
GitHub repository. |
||||
</Link> |
||||
</Text> |
||||
</Link> |
||||
</Stack> |
||||
</DownloadsSection> |
||||
|
||||
<DownloadsSection sectionTitle='Develop builds' id='developbuilds'> |
||||
<Stack p={4} borderBottom='2px solid' borderColor='brand.light.primary'> |
||||
<Text textStyle='quick-link-text'> |
||||
These are the develop snapshots of go-ethereum, updated automatically when a new commit is pushed into our{' '} |
||||
<Link |
||||
href={GETH_REPO_URL} |
||||
isExternal |
||||
variant='light' |
||||
> |
||||
GitHub repository. |
||||
</Stack> |
||||
|
||||
{/* TODO: swap for real data */} |
||||
<DownloadsTable data={testDownloadData.slice(0, amountDevelopBuilds)} /> |
||||
|
||||
<Stack sx={{ mt: '0 !important' }}> |
||||
<Link as='button' variant='button-link-secondary' onClick={showMoreDevelopBuilds}> |
||||
<Text |
||||
fontFamily='"JetBrains Mono", monospace' |
||||
fontWeight={700} |
||||
textTransform='uppercase' |
||||
textAlign='center' |
||||
p={4} |
||||
> |
||||
Show older releases |
||||
</Text> |
||||
</Link> |
||||
</Text> |
||||
</Stack> |
||||
|
||||
{/* TODO: swap for real data */} |
||||
<DownloadsTable data={testDownloadData.slice(0, amountDevelopBuilds)} /> |
||||
|
||||
<Stack sx={{ mt: '0 !important' }}> |
||||
<Link as='button' variant='button-link-secondary' onClick={showMoreDevelopBuilds}> |
||||
<Text |
||||
fontFamily='"JetBrains Mono", monospace' |
||||
fontWeight={700} |
||||
textTransform='uppercase' |
||||
textAlign='center' |
||||
p={4} |
||||
> |
||||
Show older releases |
||||
</Stack> |
||||
</DownloadsSection> |
||||
|
||||
<DownloadsSection sectionTitle='OpenPGP Signatures' id='pgpsignatures'> |
||||
<Stack p={4} borderBottom='2px solid' borderColor='brand.light.primary'> |
||||
<Text textStyle='quick-link-text'> |
||||
All the binaries available from this page are signed via our build server PGP keys: |
||||
</Text> |
||||
</Stack> |
||||
|
||||
{/* TODO: swap for real data */} |
||||
<Stack borderBottom='2px solid' borderColor='brand.light.primary'> |
||||
<DataTable columnHeaders={DOWNLOAD_OPENPGP_BUILD_HEADERS} data={pgpBuildTestData} /> |
||||
</Stack> |
||||
|
||||
{/* TODO: swap for real data */} |
||||
<Stack> |
||||
<DataTable |
||||
columnHeaders={DOWNLOAD_OPENPGP_DEVELOPER_HEADERS} |
||||
data={pgpDeveloperTestData} |
||||
/> |
||||
</Stack> |
||||
</DownloadsSection> |
||||
|
||||
<DownloadsSection sectionTitle='Importing keys and verifying builds' id='importingkeys'> |
||||
<Stack p={4} borderBottom='2px solid' borderColor='brand.light.primary'> |
||||
<Text textStyle='quick-link-text'> |
||||
You can import the build server public keys by grabbing the individual keys directly |
||||
from the keyserver network: |
||||
</Text> |
||||
|
||||
{/* TODO: These keys depends on the binary */} |
||||
<Code p={4}>gpg --recv-keys F9585DE6 C2FF8BBF 9BA28146 7B9E2481 D2A67EAC</Code> |
||||
</Stack> |
||||
|
||||
<Stack p={4} borderBottom='2px solid' borderColor='brand.light.primary'> |
||||
<Text textStyle='quick-link-text'> |
||||
Similarly you can import all the developer public keys by grabbing them directly |
||||
from the keyserver network: |
||||
</Text> |
||||
</Link> |
||||
</Stack> |
||||
</DownloadsSection> |
||||
|
||||
<DownloadsSection sectionTitle='OpenPGP Signatures' id='pgpsignatures'> |
||||
<Stack p={4} borderBottom='2px solid' borderColor='brand.light.primary'> |
||||
<Text textStyle='quick-link-text'> |
||||
All the binaries available from this page are signed via our build server PGP keys: |
||||
</Text> |
||||
</Stack> |
||||
|
||||
{/* TODO: swap for real data */} |
||||
<Stack borderBottom='2px solid' borderColor='brand.light.primary'> |
||||
<DataTable |
||||
columnHeaders={DOWNLOAD_OPENPGP_BUILD_HEADERS} |
||||
data={pgpBuildTestData} |
||||
/> |
||||
</Stack> |
||||
|
||||
{/* TODO: swap for real data */} |
||||
<Stack> |
||||
<DataTable |
||||
columnHeaders={DOWNLOAD_OPENPGP_DEVELOPER_HEADERS} |
||||
data={pgpDeveloperTestData} |
||||
/> |
||||
</Stack> |
||||
</DownloadsSection> |
||||
|
||||
<DownloadsSection sectionTitle='Importing keys and verifying builds' id='importingkeys'> |
||||
<Stack p={4} borderBottom='2px solid' borderColor='brand.light.primary'> |
||||
<Text textStyle='quick-link-text'> |
||||
You can import the build server public keys by grabbing the individual keys directly from the keyserver network: |
||||
</Text> |
||||
|
||||
{/* TODO: These keys depends on the binary */} |
||||
<Code p={4}> |
||||
gpg --recv-keys F9585DE6 C2FF8BBF 9BA28146 7B9E2481 D2A67EAC |
||||
</Code> |
||||
</Stack> |
||||
|
||||
<Stack p={4} borderBottom='2px solid' borderColor='brand.light.primary'> |
||||
<Text textStyle='quick-link-text'> |
||||
Similarly you can import all the developer public keys by grabbing them directly from the keyserver network: |
||||
</Text> |
||||
|
||||
{/* TODO: These are developer keys, do we need to change? */} |
||||
<Code p={4}> |
||||
gpg --recv-keys E058A81C 05A5DDF0 1CCB7DD2 |
||||
</Code> |
||||
</Stack> |
||||
|
||||
<Stack p={4}> |
||||
<Text textStyle='quick-link-text'> |
||||
From the download listings above you should see a link both to the downloadable archives as well as detached signature files. To verify the authenticity of any downloaded data, grab both files and then run: |
||||
</Text> |
||||
|
||||
{/* TODO: These keys depends on the binary */} |
||||
<Code p={4}> |
||||
gpg --verify geth-linux-amd64-1.5.0-d0c820ac.tar.gz.asc |
||||
</Code> |
||||
</Stack> |
||||
</DownloadsSection> |
||||
</Stack> |
||||
</main> |
||||
|
||||
{/* TODO: These are developer keys, do we need to change? */} |
||||
<Code p={4}>gpg --recv-keys E058A81C 05A5DDF0 1CCB7DD2</Code> |
||||
</Stack> |
||||
|
||||
<Stack p={4}> |
||||
<Text textStyle='quick-link-text'> |
||||
From the download listings above you should see a link both to the downloadable |
||||
archives as well as detached signature files. To verify the authenticity of any |
||||
downloaded data, grab both files and then run: |
||||
</Text> |
||||
|
||||
{/* TODO: These keys depends on the binary */} |
||||
<Code p={4}>gpg --verify geth-linux-amd64-1.5.0-d0c820ac.tar.gz.asc</Code> |
||||
</Stack> |
||||
</DownloadsSection> |
||||
</Stack> |
||||
</main> |
||||
</> |
||||
) |
||||
} |
||||
); |
||||
}; |
||||
|
||||
export default DownloadsPage |
||||
export default DownloadsPage; |
||||
|
@ -1,3 +1,3 @@ |
||||
export const shadows = { |
||||
linkBoxShadow: '0 0 0 1px #11866f !important' |
||||
} |
||||
}; |
||||
|
Loading…
Reference in new issue