Web3.js

Web3.js de EVM üzerindeki blockchain ağları ile etkileşim kurmak için kullanılan bir diğer popüler JavaScript kütüphanesidir.

DApp (Decentralized Application) geliştiricileri tarafından, smart contract'ler ile etkileşim, hesapların yönetimi, işlemlerin gönderilmesi ve blockchain verilerinin alınması gibi görevler için yaygın olarak kullanılır.

1 - Kurulum

Web3.js kütüphanesinin kurulumu için öncelikle bağımlılıkları projenize import etmeniz gerekmektedir.

npm install web3
//veya
yarn add web3

2 - Web3.js ile Temel İşlemler

Web3.js'i Projeye Dahil Etmek

Web3.js kurulumu yaptıktan sonra akıllı sözleşmenizin en üstünde kullandığınız frameworke göre (react.js, next.js, vanillaJS) aşağıdaki komutlardan uygun olanını kullanabilirsiniz.

const Web3 = require('web3');
// veya ES6 modülleri kullanıyorsanız
import Web3 from 'web3';

Bir Ethereum Cüzdanı Oluşturma

Akıllı sözleşmemizde create() fonksiyonu ile yeni bir cüzdan oluşturabiliriz.

Bir Cüzdanı Mevcut Bir Private Key ile İçe Aktarma

Oluşturduğumuz cüzdan adresini ve private key'i import etmemiz gerektiği durumlar olabilir.

Bir Ethereum Node'una Bağlanma

Web3.js, farklı provider'larla çalışabilir. Örneğin, Infura veya Alchemy gibi bir servis sağlayıcı ile Ethereum blockchain'e bağlanabilirsiniz.

Bir Hesap Bakiyesini Kontrol Etme

Bir Varlık Gönderme İşlemi/Transaction

Metamask arayüzünü kullanmadan kontrat üzerinden bakiye transferi de yapabilirsiniz.

Bir Smart Contract ile Etkileşim

Kullanıcılarınız akıllı sözleşmeleriniz ile sitenin ön yüzünden etkileşime geçebilmesi için web3.js de mükemmel bir araçtır. Tek lazım olan akıllı sözleşme adresi ve ABI kodu.

Sözleşmenizi deploy ederken otomatik oluşturulan bir ABI kodu bulunmaktadır. Bu ABI kodunu ister contractABI kısmına ekleyebilir isterseniz de bunu harici bir dosyadan çağırabilirsiniz.

3 - Web3.js Ekstra Araçlar ve Yardımcı Fonksiyonlar

BigNumber Kullanımı

Akıllı sözleşmelerde birimler ifade edilirken Wei kullanılır. Bu nedenle sayılar çok büyük olmakta ve bu yüzden BigNumber hatası almaktayız.

1 ether = 1000000000000000000 wei (19 hane)

Burada Web3.js'in bize sağladığı yerleşik BigNumber dönüşümü sayesinde büyük sayılarla çalışabilmekteyiz.

Event Dinleme

Bir akıllı sözleşmenin veya bireysel bir hesabın event'lerini aşağıdaki yöntemle dinleyebiliriz.

Hash Oluşturma

Last updated