JavaScript'te Ethereum blok zincirini kullanmak için web3.js'yi kurun
Bu öğreticide, Ethereum blok zinciri ile etkileşime geçmek için web3.js(opens in a new tab) ile nasıl başlayacağımızı göreceğiz. Web3.js, blok zincirinden veri okumak veya işlem yapmak ve hatta akıllı sözleşmeleri dağıtmak için hem ön uçlarda hem de arka uçlarda kullanılabilir.
İlk adım, projenize web3.js'yi dahil etmektir. Bir web sayfasında kullanmak için, JSDeliver gibi bir CDN kullanarak kütüphaneyi doğrudan içe aktarabilirsiniz.
1<script src="https://cdn.jsdelivr.net/npm/web3@latest/dist/web3.min.js"></script>
Arka ucunuzda kullanmak üzere kütüphaneyi veya derleme kullanan bir ön uç projesini kurmayı tercih ederseniz, onu npm kullanarak kurabilirsiniz:
npm install web3 --save
Ardından Web3.js'yi bir Node.js komut dosyasına veya Browserify ön uç projesine içe aktarmak için aşağıdaki JavaScript satırını kullanabilirsiniz:
1const Web3 = require("web3")Kopyala
Şimdi projeye kütüphaneyi dahil ettiğimize göre, onu başlatmamız gerekiyor. Projenizin blok zinciri ile iletişim kurabilmesi gerekiyor. Çoğu Ethereum kütüphanesi bir düğüm ile RPC çağrıları aracılığıyla iletişim kurar. Web3 sağlayıcımızı başlatmak için, sağlayıcının URL'sini yapıcı olarak geçen bir Web3 örneğini başlatacağız. Eğer bir düğümünüz veya bilgisayarınızda çalışan bir ganache örneği(opens in a new tab) varsa şu şekilde gözükecektir:
1const web3 = new Web3("http://localhost:8545")Kopyala
Barındırılan bir düğüme doğrudan erişmek isterseniz, bununla ilgili seçenekleri bir hizmet olarak düğümler içinde bulabilirsiniz.
1const web3 = new Web3("https://cloudflare-eth.com")Kopyala
Web3 örneğimizi doğru şekilde yapılandırdığımızı test etmek için getBlockNumber
fonksiyonunu kullanarak en son blok numarasını almaya çalışacağız. Bu fonksiyon parametre olarak bir geri aramayı kabul eder ve blok numarasını bir tamsayı olarak döndürür.
1var Web3 = require("web3")2const web3 = new Web3("https://cloudflare-eth.com")34web3.eth.getBlockNumber(function (error, result) {5 console.log(result)6})Kopyala
Bu programı çalıştırırsanız, sadece en son blok numarasını yazdıracaktır: blok zincirinin tepesi. Kodunuzda iç içe geri aramaları önlemek için await/async
fonksiyon çağrılarını da kullanabilirsiniz:
1async function getBlockNumber() {2 const latestBlockNumber = await web3.eth.getBlockNumber()3 console.log(latestBlockNumber)4 return latestBlockNumber5}67getBlockNumber()Kopyala
Web3 örneğinde kullanılabilen tüm fonksiyonları, resmi web3.js belgelerinde(opens in a new tab) görebilirsiniz.
Web3 kütüphanelerinin çoğu eşzamansızdır çünkü arka planda kütüphane, sonucu geri gönderen düğüme JSON RPC çağrıları yapar.
Tarayıcıda çalışıyorsanız, bazı cüzdanlar doğrudan bir Web3 örneği enjekte eder ve özellikle işlem yapmak için kullanıcının Ethereum adresiyle etkileşim kurmayı planlıyorsanız, mümkün olduğunda onu kullanmaya çalışmalısınız.
İşte bir MetaMask cüzdanının mevcut olup olmadığını tespit etmek ve varsa onu etkinleştirmeye çalışmak için bir parçacık. Daha sonra, kullanıcının bakiyesini okumanıza ve Ethereum blok zincirinde yapmak istediğiniz işlemleri doğrulamalarına olanak tanır:
1if (window.ethereum != null) {2 state.web3 = new Web3(window.ethereum)3 try {4 // Request account access if needed5 await window.ethereum.enable()6 // Accounts now exposed7 } catch (error) {8 // User denied account access...9 }10}Tümünü gösterKopyala
Ethers.js(opens in a new tab) gibi web3.js alternatifleri de mevcuttur ve sıklıkla kullanılır. Bir sonraki öğreticide, blok zincirindeki yeni gelen blokları kolayca nasıl dinleyeceğinizi ve neler içerdiklerini görmeyi öğreneceğiz(opens in a new tab).
Son düzenleme: @corwintines(opens in a new tab), 28 Haziran 2024