This commit is contained in:
Sewmina 2025-08-20 22:12:25 +05:30
parent a27c31ce03
commit cefc70b686
5 changed files with 191 additions and 0 deletions

View File

@ -0,0 +1,75 @@
'use client';
import React from 'react';
import Image from 'next/image';
import { ENTRY_FEE_DINO } from '../shared';
const Flywheel: React.FC = () => {
return (
<div className="py-16 bg-gradient-to-b from-gray-50 to-white">
<div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<div className="text-center mb-12">
<h2 className="text-4xl font-bold text-gray-900 mb-4">
The <span className="text-green-600">$DINO</span> Ecosystem
</h2>
<p className="text-xl text-gray-600 max-w-2xl mx-auto">
A sustainable ecosystem that rewards players and builds value
</p>
</div>
<div className="flex justify-center">
<div className="relative w-[800px] h-[800px]">
{/* Center $DINO Logo */}
<div className="absolute inset-0 flex items-center justify-center">
<div className="w-48 h-48 bg-gradient-to-br from-green-500 to-emerald-600 rounded-full flex items-center justify-center shadow-2xl z-10 ring-4 ring-green-400/20">
<span className="text-5xl font-bold text-white">$DINO</span>
</div>
</div>
{/* Flywheel Image */}
<div className="absolute inset-0 flex items-center justify-center">
<Image
src="/dino_lifecycle.png"
alt="DINO Flywheel Ecosystem"
width={800}
height={800}
className="w-full h-full object-contain"
priority
/>
</div>
</div>
</div>
{/* Description below the flywheel */}
<div className="mt-12 text-center">
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6 max-w-4xl mx-auto">
<div className="bg-blue-50 p-6 rounded-lg border border-blue-200">
<div className="text-3xl mb-2">🎮</div>
<h3 className="font-semibold text-blue-800 mb-2">Enter Game</h3>
<p className="text-blue-600 text-sm">Players pay {`${ENTRY_FEE_DINO}`} $DINO to enter the game and compete for high scores</p>
</div>
<div className="bg-purple-50 p-6 rounded-lg border border-purple-200">
<div className="text-3xl mb-2">💰</div>
<h3 className="font-semibold text-purple-800 mb-2">5% Fees</h3>
<p className="text-purple-600 text-sm">A portion of entry fees is collected to fund the ecosystem</p>
</div>
<div className="bg-red-50 p-6 rounded-lg border border-red-200">
<div className="text-3xl mb-2">🔥</div>
<h3 className="font-semibold text-red-800 mb-2">Buy Back & Burn</h3>
<p className="text-red-600 text-sm">Fees are used to buy back $DINO tokens and permanently remove them</p>
</div>
<div className="bg-orange-50 p-6 rounded-lg border border-orange-200">
<div className="text-3xl mb-2">📉</div>
<h3 className="font-semibold text-orange-800 mb-2">Reduce Supply</h3>
<p className="text-orange-600 text-sm">Burning tokens reduces total supply, increasing scarcity and value</p>
</div>
</div>
</div>
</div>
</div>
);
};
export default Flywheel;

View File

@ -6,6 +6,7 @@ import { Connection, PublicKey, Transaction } from '@solana/web3.js';
import {createTransferInstruction, getAssociatedTokenAddress, createAssociatedTokenAccountInstruction } from '@solana/spl-token';
import Header, { HeaderRef } from './components/Header';
import Leaderboard from './components/Leaderboard';
import Flywheel from './components/Flywheel';
import { CLUSTER_URL, ENTRY_FEE_DINO } from './shared';
import { DINO_TOKEN_ADDRESS, FEE_COLLECTOR } from './constants';
@ -424,6 +425,9 @@ export default function Home() {
</div>
</main>
)}
{/* Flywheel Section - Always visible */}
<Flywheel />
</div>
);
}

112
public/arrow.svg Normal file
View File

@ -0,0 +1,112 @@
<svg width="320" height="320" viewBox="0 0 320 320" xmlns="http://www.w3.org/2000/svg">
<!-- Top to Right Arrow -->
<path
d="M 40 160 Q 160 40 280 160"
stroke="url(#gradient1)"
stroke-width="16"
fill="none"
stroke-linecap="round"
marker-end="url(#arrowhead1)"
/>
<!-- Right to Bottom Arrow -->
<path
d="M 160 40 Q 280 160 160 280"
stroke="url(#gradient2)"
stroke-width="16"
fill="none"
stroke-linecap="round"
marker-end="url(#arrowhead2)"
/>
<!-- Bottom to Left Arrow -->
<path
d="M 280 160 Q 160 280 40 160"
stroke="url(#gradient3)"
stroke-width="16"
fill="none"
stroke-linecap="round"
marker-end="url(#arrowhead3)"
/>
<!-- Left to Top Arrow -->
<path
d="M 160 280 Q 40 160 160 40"
stroke="url(#gradient4)"
stroke-width="16"
fill="none"
stroke-linecap="round"
marker-end="url(#arrowhead4)"
/>
<defs>
<!-- Blue to Purple Gradient -->
<linearGradient id="gradient1" x1="0%" y1="0%" x2="100%" y2="0%">
<stop offset="0%" stop-color="#3B82F6" />
<stop offset="100%" stop-color="#8B5CF6" />
</linearGradient>
<!-- Purple to Red Gradient -->
<linearGradient id="gradient2" x1="0%" y1="0%" x2="0%" y2="100%">
<stop offset="0%" stop-color="#8B5CF6" />
<stop offset="100%" stop-color="#EF4444" />
</linearGradient>
<!-- Red to Orange Gradient -->
<linearGradient id="gradient3" x1="100%" y1="0%" x2="0%" y2="0%">
<stop offset="0%" stop-color="#EF4444" />
<stop offset="100%" stop-color="#F97316" />
</linearGradient>
<!-- Orange to Blue Gradient -->
<linearGradient id="gradient4" x1="0%" y1="100%" x2="0%" y2="0%">
<stop offset="0%" stop-color="#F97316" />
<stop offset="100%" stop-color="#3B82F6" />
</linearGradient>
<!-- Arrowhead Markers -->
<marker
id="arrowhead1"
markerWidth="20"
markerHeight="16"
refX="18"
refY="8"
orient="auto"
>
<polygon points="0 0, 20 8, 0 16" fill="#8B5CF6" />
</marker>
<marker
id="arrowhead2"
markerWidth="20"
markerHeight="16"
refX="18"
refY="8"
orient="auto"
>
<polygon points="0 0, 20 8, 0 16" fill="#EF4444" />
</marker>
<marker
id="arrowhead3"
markerWidth="20"
markerHeight="16"
refX="18"
refY="8"
orient="auto"
>
<polygon points="0 0, 20 8, 0 16" fill="#F97316" />
</marker>
<marker
id="arrowhead4"
markerWidth="20"
markerHeight="16"
refX="18"
refY="8"
orient="auto"
>
<polygon points="0 0, 20 8, 0 16" fill="#3B82F6" />
</marker>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

BIN
public/dino_flywheel.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

BIN
public/dino_lifecycle.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 140 KiB