diff --git a/docs/developers/security/bug-bounty.md b/docs/developers/security/bug-bounty.md index 34fe767..5ec6f1e 100644 --- a/docs/developers/security/bug-bounty.md +++ b/docs/developers/security/bug-bounty.md @@ -5,6 +5,6 @@ sidebar_position: 3 # Bug Bounty Program -Responsible disclosure of security vulnerabilities is rewarded through our [Immunefi](https://immunefi.com/bounty/ssvnetwork/) bug bounty program. The current program scope is focused on [the protocol’s smart contracts](https://github.com/ssvlabs/ssv-network), with rewards ranging from $1,500 up to $1,000,000. +Responsible disclosure of security vulnerabilities is rewarded through our [Immunefi](https://immunefi.com/bounty/ssvnetwork/) bug bounty program. The current program scope is focused on [the protocol’s smart contracts](https://github.com/ssvlabs/ssv-network), with rewards ranging from \$1,500 up to \$250,000. Follow the link for more details: [https://immunefi.com/bounty/ssvnetwork/](https://immunefi.com/bounty/ssvnetwork/) diff --git a/src/components/HomepageLanding/index.tsx b/src/components/HomepageLanding/index.tsx index 9c92e26..e30bcf0 100644 --- a/src/components/HomepageLanding/index.tsx +++ b/src/components/HomepageLanding/index.tsx @@ -4,31 +4,40 @@ import Heading from '@theme/Heading'; import styles from './styles.module.css'; -type Pathway = { +type InternalLink = { + to: string; + href?: never; +}; + +type ExternalLink = { + href: string; + to?: never; +}; + +type LinkTarget = InternalLink | ExternalLink; + +type Pathway = InternalLink & { title: string; description: string; - to: string; label: string; icon: ReactElement; iconTone: 'blue' | 'yellow' | 'red' | 'green'; - featured?: boolean; + titleHoverTone?: 'default' | 'green' | 'yellow' | 'red'; }; -type CardItem = { +type ToolItem = InternalLink & { title: string; description: string; - to: string; + icon: ReactElement; }; -type SectionData = { - id: string; +type OperationItem = InternalLink & { title: string; - items: CardItem[]; + icon: ReactElement; }; -type QuickLinkItem = { - label: string; - href: string; +type SecurityLinkItem = LinkTarget & { + title: string; icon: ReactElement; }; @@ -41,6 +50,18 @@ type SupportItem = { tone?: 'default' | 'highlight' | 'orange'; }; +function getLinkProps(target: LinkTarget) { + if ('href' in target) { + return { + href: target.href, + target: '_blank', + rel: 'noopener noreferrer', + }; + } + + return {to: target.to}; +} + export function SSVIcon(props: SVGProps) { return (
{label}
- + {title}

{description}

@@ -344,9 +435,12 @@ function PathwayCard({title, description, to, label, icon, iconTone, featured}: ); } -function SectionCard({title, description, to}: CardItem) { +function DeveloperToolCard({title, description, to, icon}: ToolItem) { return ( + {title} @@ -355,21 +449,14 @@ function SectionCard({title, description, to}: CardItem) { ); } -function ContentSection({id, title, items}: SectionData) { +function SectionHeader({title, note}: {title: string; note?: string}) { return ( -
-
- - {title} - - -
- {items.map((item) => ( - - ))} -
-
+
+ + {title} + + {note ?

{note}

: ); } @@ -378,55 +465,112 @@ export default function HomepageLanding(): ReactElement {
-
- - Build with SSV Network - -

- Use Distributed Validator Technology for secure, decentralized, and scalable staking infrastructure. -

+
+
+ + Build with SSV Network + +

+ Onboard validators across distributed operators using the SSV SDK, API, subgraph, and smart contracts. +

+
+ + Quickstart → + + + Introduction → + +
+
+
+              // Onboard a validator across 4 SSV operators
+              {'\n'}
+              import {'{'} SSVSDK {'}'} from{' '}
+              '@ssv-labs/ssv-sdk'
+              {'\n\n'}
+              const ssv = new SSVSDK({'{'} publicClient, walletClient{' '}
+              {'}'})
+              {'\n'}
+              await ssv.cluster.register({'{'} owner, operators, keyShares {'}'})
+            
-
- {pathways.map((pathway) => ( - - ))} +
+ +
+ {developerTools.map((item) => ( + + ))} +
- {sections.map((section) => ( - - ))} -
-
- - Quick Links - - -
- {quickLinks.map((item) => ( - - {item.icon} - {item.label} + +
+ {commonOperations.map((item) => ( + + + {item.title} ))}
+
+ +
+ {pathways.map((pathway) => ( + + ))} +
+
+
-
- - Connect with us - -
+ +
+
{supportItems.map((item) => (