Ana içeriğe atla
Change page

JavaScript API kütüphaneleri

Bir web uygulamasının Ethereum blokzinciri ile etkileşime girebilmesi (yani blokzincir verilerini okuması ve/veya ağa işlemler göndermesi) için bir Ethereum düğümüne bağlanması gerekir.

Bu amaçla, her Ethereum istemcisi JSON-RPC spesifikasyonunu uygular, böylece uygulamaların güvenebileceği tek tip bir yöntemler seti bulunur.

Bir Ethereum düğümüne bağlanmak için JavaScript kullanmak istiyorsanız, saf (vanilla) JavaScript kullanmak mümkündür ancak ekosistemde bunu çok daha kolaylaştıran çeşitli kolaylık kütüphaneleri mevcuttur. Bu kütüphanelerle geliştiriciler, Ethereum ile etkileşime giren JSON-RPC isteklerini (arka planda) başlatmak için sezgisel, tek satırlık yöntemler yazabilirler.

Lütfen Birleşme'den bu yana, bir düğümü çalıştırmak için birbirine bağlı iki Ethereum yazılımı parçasının (bir yürütme istemcisi ve bir fikir birliği istemcisi) gerekli olduğunu unutmayın. Lütfen düğümünüzün hem bir yürütme hem de fikir birliği istemcisi içerdiğinden emin olun. Düğümünüz yerel makinenizde değilse (örneğin, düğümünüz bir AWS bulut sunucusunda çalışıyorsa) eğitimdeki IP adreslerini buna göre güncelleyin. Daha fazla bilgi için lütfen bir düğüm çalıştırma sayfamıza bakın.

Ön koşullar

JavaScript'i anlamanın yanı sıra, Ethereum yığınını ve Ethereum istemcilerini anlamak da faydalı olabilir.

Neden bir kütüphane kullanmalısınız?

Bu kütüphaneler, doğrudan bir Ethereum düğümüyle etkileşime girmenin karmaşıklığının çoğunu soyutlar. Ayrıca yardımcı işlevler (örneğin, ETH'yi Gwei'ye dönüştürmek) sağlarlar, böylece bir geliştirici olarak Ethereum istemcilerinin incelikleriyle uğraşmak için daha az, uygulamanızın benzersiz işlevselliğine odaklanmak için daha fazla zaman harcayabilirsiniz.

Kütüphane özellikleri

Ethereum düğümlerine bağlanma

Sağlayıcıları kullanarak bu kütüphaneler, ister JSON-RPC, ister INFURA, Etherscan, Alchemy veya MetaMask üzerinden olsun, Ethereum'a bağlanmanıza ve verilerini okumanıza olanak tanır.

Uyarı: Web3.js, 4 Mart 2025'te arşivlendi. Duyuruyu okuyun (opens in a new tab). Yeni projeler için ethers.js (opens in a new tab) veya viem (opens in a new tab) gibi alternatif kütüphaneler kullanmayı düşünün.

Ethers örneği

// Bir BrowserProvider, standart bir Web3 sağlayıcısını sarar, ki bu
// MetaMask'ın her sayfaya window.ethereum olarak enjekte ettiği şeydir
const provider = new ethers.BrowserProvider(window.ethereum)

// MetaMask eklentisi ayrıca şunlar için işlemleri imzalamaya olanak tanır:
// ether göndermek ve Blokzincir içindeki durumu değiştirmek için ödeme yapmak.
// Bunun için hesap imzalayıcısına ihtiyacımız var...
const signer = provider.getSigner()

Web3js örneği

Kurulum tamamlandıktan sonra blokzinciri şunlar için sorgulayabileceksiniz:

  • blok numaraları
  • gaz tahminleri
  • akıllı sözleşme olayları
  • ağ kimliği
  • ve daha fazlası...

Cüzdan işlevselliği

Bu kütüphaneler size cüzdan oluşturma, anahtarları yönetme ve işlemleri imzalama işlevselliği sunar.

İşte Ethers'tan bir örnek

Tüm belgeleri okuyun (opens in a new tab)

Kurulum tamamlandıktan sonra şunları yapabileceksiniz:

  • hesaplar oluşturmak
  • işlemler göndermek
  • işlemleri imzalamak
  • ve daha fazlası...

Akıllı sözleşme işlevleriyle etkileşim

JavaScript istemci kütüphaneleri, derlenmiş bir sözleşmenin Uygulama İkili Arabirimini (ABI) okuyarak uygulamanızın akıllı sözleşme işlevlerini çağırmasına olanak tanır.

ABI temel olarak sözleşmenin işlevlerini JSON formatında açıklar ve onu normal bir JavaScript nesnesi gibi kullanmanıza olanak tanır.

Yani aşağıdaki Solidity sözleşmesi:

Aşağıdaki JSON ile sonuçlanacaktır:

Bu şu anlama gelir:

  • Akıllı sözleşmeye bir işlem gönderip yöntemini yürütebilirsiniz
  • EVM'de yürütüldüğünde bir yöntem yürütmesinin alacağı gazı tahmin etmek için çağrı yapabilirsiniz
  • Bir sözleşme dağıtabilirsiniz
  • Ve daha fazlası...

Yardımcı işlevler

Yardımcı işlevler, Ethereum ile geliştirmeyi biraz daha kolaylaştıran kullanışlı kısayollar sunar.

ETH değerleri varsayılan olarak Wei cinsindendir. 1 ETH = 1.000.000.000.000.000.000 WEI – bu, çok sayıda rakamla uğraştığınız anlamına gelir! web3.utils.toWei, Ether'i sizin için Wei'ye dönüştürür.

Ve ethers'ta şu şekilde görünür:

// Bir hesabın bakiyesini alma (adres veya ENS adına göre)
balance = await provider.getBalance("ethers.eth")
// { BigNumber: "2337132817842795605" }

// Genellikle çıktıyı, değerleri ether (Wei yerine) cinsinden
// görmeyi tercih eden kullanıcı için biçimlendirmeniz gerekecektir
ethers.utils.formatEther(balance)
// '2.337132817842795605'

Mevcut kütüphaneler

Web3.js - Ethereum JavaScript API.

Ethers.js - JavaScript ve TypeScript'te eksiksiz Ethereum cüzdan uygulaması ve yardımcı programları.

The Graph - Ethereum ve IPFS verilerini indekslemek ve GraphQL kullanarak sorgulamak için bir protokol.

Alchemy SDK - Gelişmiş API'lere sahip Ethers.js sarmalayıcısı.

viem - Ethereum için TypeScript Arayüzü.

Codex - Düzinelerce zincirde gerçek zamanlı, zenginleştirilmiş blokzincir veri API'si.

Drift - Yerleşik önbelleğe alma, kancalar (hooks) ve test taklitleri (mocks) içeren TypeScript meta kütüphanesi.

Daha fazla bilgi

Size yardımcı olan bir topluluk kaynağı mı biliyorsunuz? Bu sayfayı düzenleyin ve ekleyin!

Eğitimler: Ethereum'da JavaScript API'leri ve WebSocket'ler

  • WebSocket'leri Kullanma – Ethereum olaylarına abone olmak ve gerçek zamanlı JSON-RPC istekleri yapmak için Alchemy ile WebSocket'lerin nasıl kullanılacağı.