İlk olarak sunucumuzun root kısmına 'dist' ismiyle bir klasör oluşturalım. (Ben Visual Studio Code kullandım, tercih sizin.)
Ardından bu 'dist' klasörü içine: (app.html ve degen.jpeg dosyalarını) ekleyelim. (Sonuç, görseldeki gibi)
![Ekran Resmi 2024-06-29 14 28 39](https://private-user-images.githubusercontent.com/98455323/344388504-ceabe228-0b2a-4a24-9e59-7ecdf968d367.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjAyNDAyMzcsIm5iZiI6MTcyMDIzOTkzNywicGF0aCI6Ii85ODQ1NTMyMy8zNDQzODg1MDQtY2VhYmUyMjgtMGIyYS00YTI0LTllNTktN2VjZGY5NjhkMzY3LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzA2VDA0MjUzN1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTBmMmMwNmQwMjVlY2FiOTQ4YTE0YzMyZTI5Nzk3NTdmZmUzNDkxMTViZWJiMjEzZDk5ZWM3ODgzYjIzYTViM2MmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.sO1iN9cAemvi9aS7fFq3Yl1cPl2Wjs-5euKZFhOgMkw)
<html>
<head>
<script>
async function fetchData() {
const url = 'web3://0xf14e64285Db115D3711cC5320B37264708A47f89:11155111/greeting';
const response = await fetch(url);
const data = await response.text();
document.getElementById('content').textContent = data;
}
window.onload = fetchData;
</script>
</head>
<body>
<div id="content"> Loading greeting... </div>
<br>
<img src="./degen.jpeg" alt="">
</body>
</html>
'Dikkat edelim fotoğrafın uzantısı jpeg olmalı yoksa ileride hata alırsınız' (Denendi) :)
Eğer hazırsanız kemerlerinizi bağlayın, dApp oluşturmaya başlıyoruz.
İlk olarak ufak bir contract deploy işlemimiz olacak. Bunu Remix üzerinden rahatlıkla yapabilirsiniz. Deploy Sepolia
pragma solidity >=0.8.2 <0.9.0;
contract App {
function greeting() public pure returns (string memory) {
return "LFG, Degen!";
}
}
npm i -g ethfs-cli
🐅 Önemli: "Seçilen cüzdan adresimizin Private Key'ini giriyoruz." (Tabii tırnakları silmeden olmaz.)
🐅 (Bu kod bize ileride kullanacağımız FlatDirectory adresimizi ve ip adresini verecek. Kaydetmeyi unutmayın.)
ethfs-cli create -p "Private Key" -c 11155111
Uygulamamızı Deploy edelim. Bunun için hesabımızda 2 civarı SepoliaETH bulunduralım. (Parantezler 😁)
ethfs-cli upload -f dist -a (flat-adresimiz) -c 11155111 -p (private-keyimiz) -t 1
![Ekran Resmi 2024-06-29 15 36 33](https://private-user-images.githubusercontent.com/98455323/344392649-7b1cdd8c-eb19-4c12-9922-690792d4b17e.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjAyNDAyMzcsIm5iZiI6MTcyMDIzOTkzNywicGF0aCI6Ii85ODQ1NTMyMy8zNDQzOTI2NDktN2IxY2RkOGMtZWIxOS00YzEyLTk5MjItNjkwNzkyZDRiMTdlLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzA2VDA0MjUzN1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTJhMzM3NjZmMTM2OTdmYmQ0ZGZiNDgxNTVmZTU2ZmRiOWUzNjUzZDQ5YTJjMWZjMjc3OTMwNDY2OTE1MDVlNTUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.Ywj2jCcB056_3toebwvavmrvQr0V5bC0qEp7B9gzfNc)
Bu şekilde tx çıktısı almamız gerekiyor. Birkaç defa bu işlemi yapsak güzel olur. En azından ben öyle yaptım.
web3://flat-adresimiz:11155111/app.html
Normalde link üzerinden bağlanması gerekiyor ama Chrome gibi tarayıcılarda sorun çıkıyor. Şöyle deneyelim 😁
flat-adresimiz.sep.w3link.io/app.html
LFG, Degen! yazısı ile birlikte en başta oluşturduğunuz degen.jpeg dosyasındaki fotoğrafın görünüyor olması gerekiyor. 🐅
![Ekran Resmi 2024-06-29 15 58 56](https://private-user-images.githubusercontent.com/98455323/344393993-513580d0-a27a-4ecd-a5e6-33564f9527eb.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjAyNDAyMzcsIm5iZiI6MTcyMDIzOTkzNywicGF0aCI6Ii85ODQ1NTMyMy8zNDQzOTM5OTMtNTEzNTgwZDAtYTI3YS00ZWNkLWE1ZTYtMzM1NjRmOTUyN2ViLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzA2VDA0MjUzN1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTk4ZTA0ZDc1NmFkMTRiMmQ3N2MyYmQ1YjY3ODkyNjY3OWY4ZGI3Mjk2NDA5NGNiMjdlZGFhOWYzNmRiMTQ1MzUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.XmEbfHNago3TVr-yNMOq0Z1i36K1qyfavvnKRzwpJvI)
Sonlara yaklaşıyoruz 🐈
-
Maaliyetleri azaltmak için EIP-4844 BLOB kullanalım.
-
Bunun için Eth-Blob-Uploader'ı yüklememiz gerekiyor.
npm i -g eth-blob-uploader
eth-blob-uploader -r (Sepolia RPC) -p (Private-Key) -f dist/app.html -t (FlatDirectoryAdres)
eth-blob-uploader -r (Sepolia RPC) -p (Private-Key) -f dist/degen.jpeg -t (FlatDirectoryAdres)
![Ekran Resmi 2024-06-29 16 14 47](https://private-user-images.githubusercontent.com/98455323/344394915-0e60beeb-4bd7-42c4-8031-37ea2f918fe8.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjAyNDAyMzcsIm5iZiI6MTcyMDIzOTkzNywicGF0aCI6Ii85ODQ1NTMyMy8zNDQzOTQ5MTUtMGU2MGJlZWItNGJkNy00MmM0LTgwMzEtMzdlYTJmOTE4ZmU4LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzA2VDA0MjUzN1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWQ3MDY0ZmQ5YWE1ODA3YjE1MDFiYWJlZDZiNjFiZjQzZDEzZGQ2M2E0Yzk4MjdkZjU2ODljMzNiYWZhM2YwMTcmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.C1cTE-1tyDDO7j07XCKbBBfI09xfXCI6Y5UZujoDY9g)
ethfs-cli create -p (Private-Key) -c 11155111
ethfs-cli upload -f dist -a (yeni-flat-directory-adres) -c 11155111 -p (Private-Key) -t 2
![Ekran Resmi 2024-06-29 16 30 00](https://private-user-images.githubusercontent.com/98455323/344395795-c236adba-b446-4b1f-bf55-dfe814718104.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjAyNDAyMzcsIm5iZiI6MTcyMDIzOTkzNywicGF0aCI6Ii85ODQ1NTMyMy8zNDQzOTU3OTUtYzIzNmFkYmEtYjQ0Ni00YjFmLWJmNTUtZGZlODE0NzE4MTA0LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzA2VDA0MjUzN1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTUwYzZkYjNlOGU4YjA4YWUyYTk4NzRkYjM0M2NhMmU0ZWM0NGRkYTc1ODVhZmY5MmUxNmM1NDIxNjM4NTgxNmEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.BcKH_2GGFgxgFel7Ty8uzG-jzh6LDlhmyGoVEnToBLY)
İLKFLATADRESİMİZ.3333.w3link.io/app.html
Daha Sonra: Twitter'da bir tweet paylaşmamız gerekiyor. w3link ve işlemleri yaptığımız (twitterda seçilen) adresimizi bu tweete ekleyelim ve EthStorage'yi etiketleyelim.
Son olarak Bu forma gelip paylaştığımız tweet'in Url'sini ekleyip mail bırakalım.
Onayladıkları zaman 5000 puan kazanmış olacağız. Buradan kontrol edebilirsiniz.
- 🐅 Sanırım başardın 🐅