Web3.js, JavaScript kullanarak yerel veya uzak bir Ethereum düğümüyle etkileşim kurmanıza izin veren bir kütüphanedir. İşlem gönderme, hesap bakiyelerini kontrol etme ve akıllı sözleşmeleri dağıtma ve bunlarla etkileşim kurma gibi Ethereum blokzinciri verileriyle çalışmayı kolaylaştıran bir dizi işlev sunar. Web3.js, Ethereum blokzinciri ile iletişim kurmalarını sağlamak için Ethereum platformu üzerine inşa edilmiş merkezi olmayan uygulamalarda (DApps) yaygın olarak kullanılır.
Web3.js Ne İçin Kullanılır?
DApp’lerde yapılan işlemler arka tarafta blockchain üzerinde gerçekleştirildiği için uygulamaların blockchain ile etkileşime girmesi gerekir. Web3.js, Ethreum üzerinde inşa edilmiş olan dApp’lerin Ethereum ile iletişim kurabilmeleri için kullanılır. Ethereum verileriyle çalışmak için basit ve tutarlı bir arayüz sağlayarak, geliştiricilerin Ethereum platformunun temel ayrıntıları hakkında endişelenmek yerine DApp‘lerinin özelliklerini oluşturmaya odaklanmalarına olanak tanır.
Web3.js’in ne için kullanılabileceğine dair birkaç örnek şöyledir:
- İşlem gönderme: Web3.js, Ethereum ağında işlem (transaction) göndermeyi kolaylaştıran, örneğin Ether’in bir hesaptan diğerine aktarılması veya akıllı bir sözleşmedeki işlevlerin çağrılması gibi işlevler sağlar.
- Hesap bakiyelerini kontrol etme: Web3.js, belirli bir Ethereum hesabının bakiyesini kontrol etmenize izin veren işlevler sağlar. Örneğin, DApp’ideki bir kullanıcının hesabının mevcut bakiyesini görüntülemek için Web3.js’yi kullanılabilir.
- Akıllı sözleşmeleri dağıtma ve bunlarla etkileşim kurma: Web3.js, yeni akıllı sözleşmeleri Ethereum blok zincirine dağıtmayı kolaylaştıran ve mevcut sözleşmelerde çağrı fonksiyonları sağlar.
Web3.js’de JavaScript Kodu Nasıl Çalıştırılır?
Web3.js bir JavaScript kütüphanesidir, dolayısıyla onu Ethereum blok zinciriyle etkileşime giren JavaScript kodunu çalıştırmak için kullanabilirsiniz. İşte bunu nasıl yapabileceğinize dair basit bir örnek:
- Öncelikle Web3.js kütüphanesini yüklemeniz gerekir. Bu, aşağıdaki komutu çalıştırarak npm paket yöneticisi kullanılarak yapılır:
npm install web3
- Ardından, Web3.js’i JavaScript koduna aktarmanız için “require” ifadesi kullanılır.:
const Web3 = require('web3');
- Web3.js kütüphanesini içe aktardıktan sonra, Ethereum blok zinciriyle etkileşim kurmak için kullananılacak Web3 nesnesinin yeni bir örneği oluşturulur. Tipik olarak, bağlanmak istenen bir Ethereum düğümünün URL’sinin şu şekilde belirtilmesi gerekir:
const web3 = new Web3('https://mainnet.infura.io/v3/YOUR_API_KEY');
- Artık web3 nesnesi, Ethereum blok zinciriyle etkileşime giren herhangi bir JavaScript kodunu çalıştırmak için kullanabilir. Örneğin, Web3.js tarafından sağlanan web3.eth.sendTransaction fonksiyonuyla bir adresten diğerine 0,1 Ether göndermek şu şekildedir:
const txHash = await web3.eth.sendTransaction({
from: '0xYOUR_ACCOUNT_ADDRESS',
to: '0xANOTHER_ACCOUNT_ADDRESS',
value: web3.utils.toWei('0.1', 'ether'),
});
Kullanıcıların Hesap Bakiyesini Kontrol Eden Basit Web3.js Program Örneği
Web3.js’in nasıl kullanılacağını daha iyi anlayabilmek için basit bir program üzerinden gidelim. Aşağıda bir kullanıcının Ethereum hesabının bakiyesini kontrol eden basit bir Web3.js program örneği vardır.
const Web3 = require('web3');
// Ethereum ağına bağlanmak için web3 nesnesini kur
const web3 = new Web3(new Web3.providers.HttpProvider('https://mainnet.infura.io/v3/YOUR-PROJECT-ID'));
// Kullanıcının hesabının adresi
const userAddress = '0x...';
// Kullanıcının hesap bakiyesini kontrol et
web3.eth.getBalance(userAddress, (error, balance) => {
if (error) {
console.error(error);
} else {
console.log(`The user's account balance is: ${balance} wei`);
}
});
Programlarının bileşenlerini incelediğimizde öncelikle ‘web3’ kütüphanesinden Web3 modülü import edilmiştir. Bu modül, Ethereum ağına bağlanan bir web3 nesnesi oluşturmak için kullanılan Web3 sınıfını sağlar.
Daha sonra program, Web3.providers.HttpProvider yapıcısına argüman olarak bir Ethereum düğümünün URL’sini ileterek Web3 sınıfının yeni bir örneğini oluşturur. Yani, web3 nesnesine blok zincirine erişmek için hangi Ethereum düğümünün bağlanacağını söyler.
Ardından kullanıcının zaten bilindiğini varsaydığımız Ethereum hesabının adresini belirtir. Bu adres, 0x ile başlayan bir onaltılık karakter dizisidir. Kullanıcının hesabının bakiyesini kontrol etmek için web3.eth.getBalance metodu kullanır. Bu metot, kullanıcının adresini bir argüman olarak alır ve bakiyeyi eterin en küçük birimi olan wei’de döndürür. Ayrıca, bakiye alındığında yürütülen bir call back (geri çağırma) fonksiyonunu argüman olarak alır. Call back fonksiyonu, bakiyeyi konsola veya bir sorun varsa bir hata mesajına kaydeder.
En son gelişmelerden haberdar olmak için Twitter, Instagram, YouTube ve LinkedIn üzerinden bizi takip edebilirsiniz. Soru ve görüşlerinizi Telegram kanalından bize iletebilirsiniz.