Lompat ke konten utama
Change page

Pustaka API JavaScript

Agar aplikasi web dapat berinteraksi dengan rantai blok Ethereum (yaitu, membaca data rantai blok dan/atau mengirim transaksi ke jaringan), aplikasi tersebut harus terhubung ke sebuah node Ethereum.

Untuk tujuan ini, setiap klien Ethereum mengimplementasikan spesifikasi JSON-RPC, sehingga terdapat serangkaian metode seragam yang dapat diandalkan oleh aplikasi.

Jika Anda ingin menggunakan JavaScript untuk terhubung dengan node Ethereum, Anda bisa menggunakan JavaScript murni, tetapi ada beberapa pustaka praktis di dalam ekosistem yang membuatnya jauh lebih mudah. Dengan pustaka-pustaka ini, pengembang dapat menulis metode satu baris yang intuitif untuk menginisialisasi permintaan JSON-RPC (secara internal) yang berinteraksi dengan Ethereum.

Harap perhatikan bahwa sejak The Merge, dua perangkat lunak Ethereum yang saling terhubung - klien eksekusi dan klien konsensus - diperlukan untuk menjalankan sebuah node. Pastikan node Anda mencakup klien eksekusi dan konsensus. Jika node Anda tidak berada di mesin lokal Anda (misalnya, node Anda berjalan di instans AWS), perbarui alamat IP dalam tutorial yang sesuai. Untuk informasi lebih lanjut, silakan lihat halaman kami tentang menjalankan node.

Prasyarat

Selain memahami JavaScript, mungkin akan membantu jika Anda memahami tumpukan Ethereum dan klien Ethereum.

Mengapa menggunakan pustaka?

Pustaka-pustaka ini mengabstraksi banyak kerumitan dalam berinteraksi langsung dengan node Ethereum. Pustaka ini juga menyediakan fungsi utilitas (misalnya, mengonversi ETH ke Gwei) sehingga sebagai pengembang, Anda dapat menghabiskan lebih sedikit waktu untuk menangani kerumitan klien Ethereum dan lebih banyak waktu berfokus pada fungsionalitas unik aplikasi Anda.

Fitur pustaka

Terhubung ke node Ethereum

Menggunakan penyedia (provider), pustaka-pustaka ini memungkinkan Anda untuk terhubung ke Ethereum dan membaca datanya, baik itu melalui JSON-RPC, Infura, Etherscan, Alchemy, atau MetaMask.

Peringatan: Web3.js telah diarsipkan pada 4 Maret 2025. Baca pengumumannya (opens in a new tab). Pertimbangkan untuk menggunakan pustaka alternatif seperti Ethers.js (opens in a new tab) atau Viem (opens in a new tab) untuk proyek baru.

Contoh Ethers

// Sebuah BrowserProvider membungkus penyedia Web3 standar, yaitu
// apa yang disuntikkan MetaMask sebagai window.ethereum ke setiap halaman
const provider = new ethers.BrowserProvider(window.ethereum)

// Plugin MetaMask juga memungkinkan penandatanganan transaksi untuk
// mengirim ether dan membayar untuk mengubah status di dalam rantai blok.
// Untuk ini, kita memerlukan penandatangan akun...
const signer = provider.getSigner()

Contoh Web3js

Setelah disiapkan, Anda akan dapat meminta data (query) dari rantai blok untuk:

  • nomor blok
  • estimasi gas
  • peristiwa kontrak pintar
  • id jaringan
  • dan banyak lagi...

Fungsionalitas dompet

Pustaka-pustaka ini memberi Anda fungsionalitas untuk membuat dompet, mengelola kunci, dan menandatangani transaksi.

Berikut adalah contoh dari Ethers

Baca dokumentasi lengkapnya (opens in a new tab)

Setelah disiapkan, Anda akan dapat:

  • membuat akun
  • mengirim transaksi
  • menandatangani transaksi
  • dan banyak lagi...

Berinteraksi dengan fungsi kontrak pintar

Pustaka klien JavaScript memungkinkan aplikasi Anda untuk memanggil fungsi kontrak pintar dengan membaca Antarmuka Biner Aplikasi (Application Binary Interface/ABI) dari kontrak yang telah dikompilasi.

ABI pada dasarnya menjelaskan fungsi-fungsi kontrak dalam format JSON dan memungkinkan Anda untuk menggunakannya seperti objek JavaScript biasa.

Jadi, kontrak Solidity berikut:

Akan menghasilkan JSON berikut:

Ini berarti Anda dapat:

  • Mengirim transaksi ke kontrak pintar dan mengeksekusi metodenya
  • Memanggil untuk mengestimasi gas yang akan dibutuhkan oleh eksekusi metode saat dijalankan di EVM
  • Menyebarkan kontrak
  • Dan banyak lagi...

Fungsi utilitas

Fungsi utilitas memberi Anda pintasan praktis yang membuat proses membangun dengan Ethereum menjadi sedikit lebih mudah.

Nilai ETH secara bawaan berada dalam Wei. 1 ETH = 1.000.000.000.000.000.000 WEI – ini berarti Anda berurusan dengan banyak angka! web3.utils.toWei mengonversi Ether ke Wei untuk Anda.

Dan di Ethers tampilannya seperti ini:

// Dapatkan saldo akun (berdasarkan alamat atau nama ENS)
balance = await provider.getBalance("ethers.eth")
// { BigNumber: "2337132817842795605" }

// Sering kali Anda perlu memformat keluaran untuk pengguna
// yang lebih suka melihat nilai dalam ether (alih-alih Wei)
ethers.utils.formatEther(balance)
// '2.337132817842795605'

Pustaka yang tersedia

Web3.js - API JavaScript Ethereum.

Ethers.js - Implementasi dompet Ethereum lengkap dan utilitas dalam JavaScript dan TypeScript.

The Graph - Sebuah protokol untuk mengindeks data Ethereum dan IPFS serta melakukan kueri menggunakan GraphQL.

Alchemy SDK - Pembungkus (wrapper) untuk Ethers.js dengan API yang ditingkatkan.

viem - Antarmuka TypeScript untuk Ethereum.

Codex - API data rantai blok yang diperkaya dan waktu nyata (real-time) di puluhan rantai.

Drift - Meta-pustaka TypeScript dengan caching bawaan, hooks, dan mock pengujian.

Bacaan lebih lanjut

Tahu tentang sumber daya komunitas yang membantu Anda? Edit halaman ini dan tambahkan!

Tutorial: API JavaScript & WebSocket di Ethereum

  • Menggunakan WebSocket – Cara menggunakan WebSocket dengan Alchemy untuk berlangganan peristiwa Ethereum dan membuat permintaan JSON-RPC secara waktu nyata.