Bu rehber, Algoritmik Stablecoin projesini sıfırdan kurmak, yapılandırmak, deploy etmek ve çalıştırmak için gereken tüm adımları içermektedir.
Bu proje, fiyatı 1 USD'ye sabitlenmiş, algoritmik olarak yönetilen bir stablecoin sistemidir. Sistem; akıllı kontratlar, bir backend API'si ve bir frontend kullanıcı arayüzünden oluşur.
- Smart Contracts (
/smart-contracts): Solidity ile yazılmış, Hardhat ile geliştirilmiş ve BNB Chain Testnet'e deploy edilecek olanStableTokenveStabilizerkontratları. - Backend (
/backend): Python (FastAPI) ile geliştirilmiş, mint/burn işlemleri ve rezerv sorgulamaları için bir REST API. - Frontend (
/frontend): Next.js, React ve TailwindCSS ile oluşturulmuş, kullanıcıların cüzdan bağlayıp sistemle etkileşime girebildiği arayüz.
Başlamadan önce sisteminizde aşağıdaki araçların kurulu olduğundan emin olun:
- Node.js (v18 veya üstü)
- Python (v3.8 veya üstü) ve
pippaket yöneticisi - MetaMask tarayıcı eklentisi (BNB Chain Testnet'e ayarlanmış ve test BNB'si yüklenmiş)
Projenin tüm parçaları için bağımlılıkları kurun.
Projenin ana dizininde ethers ve dotenv gibi genel bağımlılıkları kurun.
npm installsmart-contracts dizinine girerek Hardhat ve OpenZeppelin bağımlılıklarını kurun.
cd smart-contracts
npm install
cd ..frontend dizinine girerek Next.js ve diğer React bağımlılıklarını kurun.
cd frontend
npm install
cd ..Backend için bir sanal ortam (virtual environment) oluşturup Python bağımlılıklarını kurun.
# Sanal ortam oluştur (macOS/Linux)
python3 -m venv backend/venv
# Sanal ortamı aktive et (macOS/Linux)
source backend/venv/bin/activate
# Sanal ortam oluştur (Windows)
python -m venv backend\venv
# Sanal ortamı aktive et (Windows)
backend\venv\Scripts\activate
# Bağımlılıkları kur
pip install -r backend/requirements.txtNot: Backend komutlarını çalıştırırken sanal ortamın aktif olduğundan emin olun.
Akıllı kontratları deploy etmek için hassas bilgilerinizi içeren bir ortam değişkenleri dosyası oluşturmanız gerekir.
-
smart-contractsdizini içinde.envadında bir dosya oluşturun. -
Dosyanın içeriğini aşağıdaki gibi doldurun:
# BNB Chain Testnet için bir RPC URL'si. Alchemy veya Infura'dan alabilirsiniz. BSC_TESTNET_RPC_URL="https://data-seed-prebsc-1-s1.binance.org:8545/" # Deploy için kullanacağınız cüzdanın özel anahtarı (private key). # MetaMask'tan alabilirsiniz. DİKKAT: Bu anahtarı kimseyle paylaşmayın! PRIVATE_KEY="YOUR_METAMASK_PRIVATE_KEY" # Kontratları BscScan'de doğrulamak için API anahtarınız. BscScan'den alabilirsiniz. BSCSCAN_API_KEY="YOUR_BSCSCAN_API_KEY"
-
Kontratları Derleyin:
smart-contractsdizinindeyken aşağıdaki komutu çalıştırın:cd smart-contracts npx hardhat compile -
BNB Testnet'e Deploy Edin: Deploy betiğini çalıştırın. Bu işlem cüzdanınızdan küçük bir miktar test BNB'si harcayacaktır.
npx hardhat run scripts/deploy.js --network bscTestnet
-
Adresleri Güncelleyin: Deploy işlemi tamamlandığında, konsolda
StableTokenveStabilizerkontratlarının adreslerini göreceksiniz. Bu adresleri aşağıdaki dosyalara kopyalayın:deploy/bnb-testnet-config.json->stableTokenAddressvestabilizerAddressalanları.frontend/pages/mint-burn.tsx->stableTokenAddressvestabilizerAddresssabitleri.frontend/pages/wallet.tsx->stableTokenAddresssabiti.
Tüm servisleri ayrı terminallerde çalıştırın.
Projenin ana dizinindeyken (ve Python sanal ortamı aktifken) aşağıdaki komutu çalıştırın:
uvicorn backend.main:app --host 0.0.0.0 --port 8000 --reloadSunucu http://localhost:8000 adresinde çalışmaya başlayacaktır.
frontend dizinindeyken aşağıdaki komutu çalıştırın:
cd frontend
npm run devUygulama http://localhost:3000 adresinde açılacaktır. Tarayıcınızdan bu adrese giderek arayüzü görüntüleyebilirsiniz.
Fiyat dengeleme mekanizmasını test etmek için price-oracle-bot.js betiğini çalıştırabilirsiniz. Bu betik, Stabilizer kontratına sahte bir fiyat göndererek arz ayarlaması yapar.
Not: Bu betiği çalıştırmadan önce 4. adımda deploy ettiğiniz kontrat adreslerini deploy/bnb-testnet-config.json dosyasına eklediğinizden emin olun.
Projenin ana dizinindeyken aşağıdaki komutu çalıştırın:
node scripts/price-oracle-bot.jsBu adımları tamamladıktan sonra, tüm sistem çalışır durumda olacaktır. Frontend üzerinden cüzdanınızı bağlayabilir, rezervleri görüntüleyebilir ve (backend üzerinden simüle edilen) mint/burn işlemlerini gerçekleştirebilirsiniz.
