cara menggunakan web3.js untuk berinteraksi dengan blockchain

Cara Menggunakan Web3.js untuk Berinteraksi dengan Blockchain

Web3.js adalah pustaka JavaScript yang memungkinkan pengembang untuk berinteraksi dengan blockchain berbasis Ethereum.

Dengan menggunakan Web3.js, kita dapat membaca data dari blockchain, mengirim transaksi, dan berinteraksi dengan smart contract.

Artikel ini akan membahas cara menginstal dan menggunakan Web3.js untuk berinteraksi dengan blockchain Ethereum.

Instalasi Web3.js

Sebelum memulai, pastikan Anda memiliki Node.js terinstal di komputer Anda. Kemudian, Anda dapat menginstal Web3.js menggunakan npm atau yarn:

npm install web3

atau dengan yarn:

yarn add web3

Setelah instalasi selesai, kita bisa mulai menggunakan Web3.js dalam proyek kita.

Menghubungkan ke Blockchain Ethereum

Untuk berinteraksi dengan blockchain Ethereum, kita memerlukan penyedia (provider). Salah satu cara termudah adalah menggunakan Infura atau MetaMask sebagai penyedia jaringan Ethereum.

Berikut adalah contoh kode untuk menghubungkan ke jaringan Ethereum menggunakan Infura:

const Web3 = require('web3');
const web3 = new Web3(new Web3.providers.HttpProvider('https://mainnet.infura.io/v3/YOUR_INFURA_PROJECT_ID'));

Jika Anda menggunakan MetaMask, Anda dapat menghubungkan Web3.js ke MetaMask dengan cara berikut:

const web3 = new Web3(window.ethereum);
await window.ethereum.request({ method: 'eth_requestAccounts' });

Membaca Data dari Blockchain

Kita bisa membaca saldo Ethereum dari suatu alamat menggunakan metode getBalance:

async function getBalance(address) {
    const balance = await web3.eth.getBalance(address);
    console.log(`Saldo: ${web3.utils.fromWei(balance, 'ether')} ETH`);
}

getBalance('0x742d35Cc6634C0532925a3b844Bc454e4438f44e');

Mengirim Transaksi di Ethereum

Untuk mengirim transaksi, kita perlu memiliki alamat pengirim dan kunci privatnya. Berikut adalah contoh mengirim Ethereum ke alamat lain:

async function sendTransaction() {
    const account = web3.eth.accounts.privateKeyToAccount('YOUR_PRIVATE_KEY');
    web3.eth.accounts.wallet.add(account);

    const tx = {
        from: account.address,
        to: '0xRecipientAddress',
        value: web3.utils.toWei('0.1', 'ether'),
        gas: 21000,
        gasPrice: await web3.eth.getGasPrice(),
    };

    const signedTx = await account.signTransaction(tx);
    const receipt = await web3.eth.sendSignedTransaction(signedTx.rawTransaction);
    console.log('Transaction Hash:', receipt.transactionHash);
}

sendTransaction();

Berinteraksi dengan Smart Contract

Untuk berinteraksi dengan smart contract, kita memerlukan ABI (Application Binary Interface) dan alamat kontraknya. Berikut adalah contoh membaca data dari smart contract ERC-20:

const contractABI = [ /* ABI kontrak di sini */ ];
const contractAddress = '0xContractAddress';
const contract = new web3.eth.Contract(contractABI, contractAddress);

async function getTokenBalance(address) {
    const balance = await contract.methods.balanceOf(address).call();
    console.log(`Token Balance: ${balance}`);
}

getTokenBalance('0xYourEthereumAddress');

Kesimpulan

Web3.js adalah alat yang sangat berguna untuk mengembangkan aplikasi berbasis blockchain Ethereum. Dengan Web3.js, kita bisa membaca saldo, mengirim transaksi, dan berinteraksi dengan smart contract dengan mudah.

Jika Anda tertarik mengembangkan aplikasi berbasis blockchain, Web3.js adalah pustaka yang wajib dipelajari!

Semoga artikel ini bermanfaat! Jika ada pertanyaan, jangan ragu untuk bertanya di kolom komentar.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top