-
Notifications
You must be signed in to change notification settings - Fork 20
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #454 from elsoul/addFrontend
add SOL staking
- Loading branch information
Showing
57 changed files
with
11,766 additions
and
5,201 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
NEXT_PUBLIC_SOLANA_ENDPOINT=https://rpc.validators.solutions/rpc?api-key=<your-api-key> | ||
# NEXT_PUBLIC_SOLANA_PRICE_ENDPOINT= |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
{ | ||
"mechanism": { | ||
"title": "How it Works", | ||
"description": "elSOL is a Liquid Staking Token (LST) created using the official Solana Foundation Stake Pool Program.", | ||
"Why1SOLnot1elSOLRow": { | ||
"title": "Why is 1 SOL not 1 elSOL?", | ||
"summary": "elSOL is a reward-bearing token that increases in value over time as staking rewards accumulate.", | ||
"description": "When you stake your SOL, you receive elSOL in return. elSOL represents your staked SOL and the rights to earn staking rewards as a Liquid Staking Token (LST). The staked SOL is then distributed among high-quality validators through the elSOL stake pool, designed to achieve optimal yields. The rewards earned by these validators are added back into the pool, increasing the value of elSOL over time. This is why 1 SOL is not equal to 1 elSOL. By holding elSOL, you continue to accumulate rewards and can benefit more the longer you hold.", | ||
"button1": "Get elSOL", | ||
"button2": "What is elSOL?" | ||
}, | ||
"HavingLiquidityRow": { | ||
"title": "What is a Liquid Staking Token (LST)?", | ||
"summary": "Unlike traditional staking, LSTs can be swapped at any time and offer opportunities for additional yield.", | ||
"description": "A Liquid Staking Token (LST) represents the ownership of your staked tokens and the rewards they earn, while maintaining liquidity. As an LST, elSOL allows you to freely swap it for other tokens without locking them, unlike traditional staking. Additionally, you can provide elSOL to Liquidity Pools on DeFi platforms like Orca to potentially earn higher yields compared to regular staking. This allows you to earn staking rewards while also leveraging the DeFi ecosystem to maximize your assets' efficiency.", | ||
"button1": "Get elSOL", | ||
"button2": "DeFi" | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
{ | ||
"staking": { | ||
"title": "SOL Staking", | ||
"staking": "Staking", | ||
"unstaking": "Unstaking", | ||
"swap": "Swap", | ||
"balance": "Balance", | ||
"updated": "Updated!", | ||
"stakeSOL": "Stake SOL", | ||
"stakingInfo": "If you already have a stake account, you can convert it to elSOL with no fees.", | ||
"stakingFromAccount": "Convert Stake Account", | ||
"unstakingToAccount": "Unstake to Account", | ||
"unstakingCaution": "※ When you unstake, the SOL accumulated after rewards are added will be distributed to your wallet's stake account. By deactivating the stake account, the SOL will be unlocked in the next epoch. (Up to approximately 2 days)", | ||
"instantUnstaking": "Use Swap to unstake your SOL instantly.", | ||
"StakingHeroRow": { | ||
"title1": "Stake SOL to Earn", | ||
"title2": "Additional Incentives", | ||
"subtitle1": "Stake your SOL in the elSOL pool (created with Solana Foundation official Stake Pool Program) to earn staking rewards and additional incentives.", | ||
"subtitle2": "As an elSOL holder, you contribute to the decentralization and security enhancement of the Solana blockchain." | ||
}, | ||
"DirectStakingRow": { | ||
"title1": "Stake SOL", | ||
"title2": "for Max TrueAPY", | ||
"subtitle1": "To enhance the decentralization and security of the Solana network, we constantly operate and update high-performance, top-tier validators with zero downtime.", | ||
"subtitle2": "By minimizing downtime and selecting optimal regions for operation, we aim to maximize returns. With all fees set to 0%, we provide the highest TrueAPY among Solana validators." | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
{ | ||
"mechanism": { | ||
"title": "elSOL の仕組み", | ||
"description": "elSOL は Solana Foundation 公式の Stake Pool Program で作成された Liquid Staking Token (LST) です。", | ||
"Why1SOLnot1elSOLRow": { | ||
"title": "なぜ 1SOL は 1 elSOL ではないの?", | ||
"summary": "elSOLは時間の経過とともに報酬が蓄積され、その価値が増加するリワードベアリング型のトークンです。", | ||
"description": "あなたがSOLをステークする際、その対価としてelSOLを受け取ります。elSOLはステークされたSOLと、その報酬を受け取る権利を表すLiquid Staking Token (LST) です。その後、ステークされたSOLはelSOLステークプールを通じて高品質なバリデータに分散ステーキングされ、最適な利回りを得るように設計されています。バリデータから得られた報酬はプールに蓄積されるため、時間の経過とともにelSOLの価値が増加します。これが、1 SOLが1 elSOLと等価ではなくなる理由です。長期保有することでelSOLは報酬を蓄積し、より多くの利益を得ることが可能です。", | ||
"button1": "Get elSOL", | ||
"button2": "elSOL とは?" | ||
}, | ||
"HavingLiquidityRow": { | ||
"title": "Liquid Staking Token (LST) とは?", | ||
"summary": "通常のステーキングとは異なり、いつでもトークンスワップが可能であり、追加の利回りを狙うこともできます。", | ||
"description": "Liquid Staking Token (LST) とは、ステーキングされたトークンの所有権と報酬を表す、流動性のあるトークンです。elSOLはLSTであるため、通常のステーキングのようにトークンをロックする必要がなく、いつでも自由に他のトークンと交換可能です。また、elSOLをOrca等のDeFiプラットフォームのLiquidity Poolに提供することで、通常のステーキングよりも高い利回りを狙うことができます。これにより、ステーキング報酬を受け取りつつ、DeFiエコシステムで資産を効率的に運用することが可能となります。", | ||
"button1": "Get elSOL", | ||
"button2": "DeFi" | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
{ | ||
"staking": { | ||
"title": "SOL ステーキング", | ||
"staking": "ステーク", | ||
"unstaking": "アンステーク", | ||
"swap": "スワップ", | ||
"balance": "残高", | ||
"updated": "更新完了!", | ||
"stakeSOL": "SOLをステーク", | ||
"stakingInfo": "すでにステークアカウントをお持ちの方は手数料無料でelSOLと交換することができます。", | ||
"stakingFromAccount": "ステークアカウントを交換", | ||
"unstakingToAccount": "アカウントにアンステーク", | ||
"unstakingCaution": "※ アンステークを行うと、報酬追加後のSOLがステークアカウントとしてご利用のウォレットに払い出されます。ステークアカウントを解除することで次のエポックにSOLがアンロックされます。(最大約2日)", | ||
"instantUnstaking": "即時アンステークにはスワップをご利用ください", | ||
"StakingHeroRow": { | ||
"title1": "Stake SOL to Earn", | ||
"title2": "Additional Incentives", | ||
"subtitle1": "SOLをelSOLプール(Solana Foundation 公式の Stake Pool Program で作成)にステークし、ステーキング報酬と追加インセンティブを獲得しましょう。", | ||
"subtitle2": "elSOL ホルダーとして、Solanaブロックチェーンの分散化とセキュリティ向上に貢献できます。" | ||
}, | ||
"DirectStakingRow": { | ||
"title1": "Stake SOL", | ||
"title2": "for Max TrueAPY", | ||
"subtitle1": "Solana ネットワークの分散化とセキュリティ強化のため、私たちは常に高性能かつハイスコアのバリデータをノーダウンタイムで運用・アップデートしています。", | ||
"subtitle2": "ダウンタイムを最小化し、最適なエリアで運用することで、より高いリターンを追求します。すべての手数料は 0% に設定されており、Solana バリデータ最大の TrueAPY を実現しています。" | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
94 changes: 94 additions & 0 deletions
94
website/skeet-dev/src/app/[locale]/(default)/staking/DirectStakingRow.tsx
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,94 @@ | ||
'use client' | ||
|
||
import { | ||
OPOSOpenCube, | ||
SolanaFoundationLogoHorizontal, | ||
SolanaFoundationLogoInvertHorizontal | ||
} from '@/assets/img' | ||
import { mainShardGradation } from '@/lib/decoration' | ||
import { cn } from '@/lib/utils' | ||
import { Link } from '@/navigation' | ||
import { useLocale, useTranslations } from 'next-intl' | ||
import Image from 'next/image' | ||
import { useTheme } from '@/hooks/utils/useTheme' | ||
import { SOLANA_VALIDATOR_LINK } from '@/constants/links' | ||
import DirectStakingTabs from './DirectStakingTabs' | ||
|
||
const logos = [ | ||
{ | ||
title: 'SolanaFoundation', | ||
logo: SolanaFoundationLogoHorizontal, | ||
logoInvert: SolanaFoundationLogoInvertHorizontal, | ||
href: SOLANA_VALIDATOR_LINK | ||
} | ||
] | ||
|
||
export default function DirectStakingRow() { | ||
const t = useTranslations() | ||
const locale = useLocale() | ||
const { theme, mounted } = useTheme() | ||
if (!mounted) return null | ||
|
||
return ( | ||
<> | ||
<div className="relative mx-auto max-w-7xl p-3"> | ||
<div className="absolute left-0 top-0 -z-10 opacity-10 dark:opacity-20"> | ||
<Image | ||
src={OPOSOpenCube} | ||
alt="Background" | ||
className="h-48 w-48 sm:h-64 sm:w-64 md:h-96 md:w-96 lg:h-[440px] lg:w-[440px]" | ||
unoptimized | ||
width={256} | ||
height={256} | ||
/> | ||
</div> | ||
|
||
<div className="relative mx-auto grid items-center gap-24 py-24 md:grid-cols-2 md:py-48"> | ||
<div className="grid w-full gap-4 p-4"> | ||
<h2 | ||
className={cn( | ||
'py-2 text-5xl font-bold tracking-tighter sm:text-7xl lg:text-8xl', | ||
mainShardGradation | ||
)} | ||
> | ||
{t('staking.DirectStakingRow.title1')} <br /> | ||
{t('staking.DirectStakingRow.title2')} | ||
</h2> | ||
<p | ||
className={cn( | ||
'max-w-96 text-sm font-medium sm:max-w-lg sm:text-lg lg:-mt-2 lg:max-w-xl lg:text-xl', | ||
'text-zinc-500 dark:text-zinc-300' | ||
)} | ||
> | ||
{t('staking.DirectStakingRow.subtitle1')} <br /> | ||
{t('staking.DirectStakingRow.subtitle2')} | ||
</p> | ||
|
||
<div className="mt-3 flex flex-wrap items-center justify-start gap-4"> | ||
{logos.map((logo) => ( | ||
<Link | ||
key={logo.title} | ||
href={logo.href} | ||
className="hover:opacity-80" | ||
target="_blank" | ||
rel="noopener noreferrer" | ||
> | ||
<Image | ||
src={theme === 'light' ? logo.logo : logo.logoInvert} | ||
alt="Background" | ||
className="w-20 sm:w-24 md:w-28" | ||
unoptimized | ||
width={256} | ||
/> | ||
</Link> | ||
))} | ||
</div> | ||
</div> | ||
<div className="mx-auto w-full max-w-xl p-4"> | ||
<DirectStakingTabs /> | ||
</div> | ||
</div> | ||
</div> | ||
</> | ||
) | ||
} |
Oops, something went wrong.