ethers.js

使用 ethers.js v6 连接到 256 Blocks

ethers.js 是一个完整而紧凑的库,用于与以太坊区块链及其生态系统进行交互。本指南涵盖 ethers.js v6。

安装

npm install ethers

或使用 yarn:

yarn add ethers

快速开始

使用 FetchRequest 通过 X-API-Key 标头连接到 256 Blocks:

import { ethers, FetchRequest } from 'ethers';
 
// Create a FetchRequest with custom headers
const fetchRequest = new FetchRequest('https://rpc.256blocks.com/ethereum');
fetchRequest.setHeader('X-API-Key', 'your-api-key');
 
// Create the provider
const provider = new ethers.JsonRpcProvider(fetchRequest);
 
// Get the latest block number
const blockNumber = await provider.getBlockNumber();
console.log('Latest block:', blockNumber);

读取账户余额

import { ethers, FetchRequest } from 'ethers';
 
const fetchRequest = new FetchRequest('https://rpc.256blocks.com/ethereum');
fetchRequest.setHeader('X-API-Key', 'your-api-key');
 
const provider = new ethers.JsonRpcProvider(fetchRequest);
 
// Get account balance
const address = '0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb';
const balance = await provider.getBalance(address);
 
console.log('Balance:', ethers.formatEther(balance), 'ETH');

读取合约数据

import { ethers, FetchRequest } from 'ethers';
 
const fetchRequest = new FetchRequest('https://rpc.256blocks.com/ethereum');
fetchRequest.setHeader('X-API-Key', 'your-api-key');
 
const provider = new ethers.JsonRpcProvider(fetchRequest);
 
// ERC-20 ABI (minimal)
const erc20Abi = [
  'function balanceOf(address account) view returns (uint256)',
  'function decimals() view returns (uint8)',
  'function symbol() view returns (string)'
];
 
// USDC contract on Ethereum
const usdcAddress = '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48';
const contract = new ethers.Contract(usdcAddress, erc20Abi, provider);
 
const balance = await contract.balanceOf('0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb');
const decimals = await contract.decimals();
const symbol = await contract.symbol();
 
console.log(`Balance: ${ethers.formatUnits(balance, decimals)} ${symbol}`);

多链支持

通过更改端点连接到不同的链:

import { ethers, FetchRequest } from 'ethers';
 
function createProvider(chain: string, apiKey: string) {
  const fetchRequest = new FetchRequest(`https://rpc.256blocks.com/${chain}`);
  fetchRequest.setHeader('X-API-Key', apiKey);
  return new ethers.JsonRpcProvider(fetchRequest);
}
 
// Create providers for different chains
const ethProvider = createProvider('ethereum', 'your-api-key');
const baseProvider = createProvider('base', 'your-api-key');
const arbProvider = createProvider('arbitrum', 'your-api-key');
const polygonProvider = createProvider('polygon', 'your-api-key');

资源

ethers.js | 256 Blocks