web3.js
Kết nối với 256 Blocks bằng web3.js
web3.js là API JavaScript Ethereum gốc, cung cấp một bộ sưu tập các thư viện để tương tác với các node Ethereum. Hướng dẫn này bao gồm web3.js v4.
Cài đặt
npm install web3Hoặc với yarn:
yarn add web3Bắt đầu nhanh
Kết nối với 256 Blocks bằng header X-API-Key với HttpProvider:
import { Web3, HttpProvider } from 'web3';
// Configure provider with custom headers
const httpOptions = {
providerOptions: {
headers: {
'X-API-Key': 'your-api-key'
}
}
};
// Create the provider and Web3 instance
const provider = new HttpProvider('https://rpc.256blocks.com/ethereum', httpOptions);
const web3 = new Web3(provider);
// Get the latest block number
const blockNumber = await web3.eth.getBlockNumber();
console.log('Latest block:', blockNumber);Đọc Số dư Tài khoản
import { Web3, HttpProvider } from 'web3';
const httpOptions = {
providerOptions: {
headers: {
'X-API-Key': 'your-api-key'
}
}
};
const provider = new HttpProvider('https://rpc.256blocks.com/ethereum', httpOptions);
const web3 = new Web3(provider);
// Get account balance
const address = '0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb';
const balance = await web3.eth.getBalance(address);
console.log('Balance:', web3.utils.fromWei(balance, 'ether'), 'ETH');Đọc Dữ liệu Hợp đồng
import { Web3, HttpProvider } from 'web3';
const httpOptions = {
providerOptions: {
headers: {
'X-API-Key': 'your-api-key'
}
}
};
const provider = new HttpProvider('https://rpc.256blocks.com/ethereum', httpOptions);
const web3 = new Web3(provider);
// ERC-20 ABI (minimal)
const erc20Abi = [
{
name: 'balanceOf',
type: 'function',
stateMutability: 'view',
inputs: [{ name: 'account', type: 'address' }],
outputs: [{ name: '', type: 'uint256' }]
},
{
name: 'decimals',
type: 'function',
stateMutability: 'view',
inputs: [],
outputs: [{ name: '', type: 'uint8' }]
}
];
// USDC contract on Ethereum
const usdcAddress = '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48';
const contract = new web3.eth.Contract(erc20Abi, usdcAddress);
const balance = await contract.methods.balanceOf('0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb').call();
const decimals = await contract.methods.decimals().call();
// Convert balance to human-readable format
const formattedBalance = Number(balance) / Math.pow(10, Number(decimals));
console.log('USDC Balance:', formattedBalance);Hỗ trợ Đa chuỗi
Kết nối với các chuỗi khác nhau bằng cách thay đổi endpoint:
import { Web3, HttpProvider } from 'web3';
function createWeb3(chain, apiKey) {
const httpOptions = {
providerOptions: {
headers: {
'X-API-Key': apiKey
}
}
};
const provider = new HttpProvider(`https://rpc.256blocks.com/${chain}`, httpOptions);
return new Web3(provider);
}
// Create Web3 instances for different chains
const ethWeb3 = createWeb3('ethereum', 'your-api-key');
const baseWeb3 = createWeb3('base', 'your-api-key');
const arbWeb3 = createWeb3('arbitrum', 'your-api-key');
const polygonWeb3 = createWeb3('polygon', 'your-api-key');