Maktaba za JavaScript API
Ukurasa ulihaririwa mwisho: 15 Februari 2026
Ili programu ya wavuti iweze kuingiliana na mnyororo wa bloku wa Ethereum (yaani, kusoma data ya mnyororo wa bloku na/au kutuma miamala kwenye mtandao), lazima iunganishwe na nodi ya Ethereum.
Kwa madhumuni haya, kila mteja wa Ethereum hutekeleza vipimo vya JSON-RPC, kwa hivyo kuna seti sare ya mbinu ambazo programu zinaweza kutegemea.
Ikiwa unataka kutumia JavaScript kuungana na nodi ya Ethereum, inawezekana kutumia JavaScript tupu lakini maktaba kadhaa za kurahisisha zipo ndani ya mfumo ikolojia zinazofanya hili kuwa rahisi zaidi. Kwa maktaba hizi, wasanidi programu wanaweza kuandika njia angavu, za mstari mmoja ili kuanzisha maombi ya JSON-RPC (chini ya pazia) yanayoingiliana na Ethereum.
Tafadhali kumbuka kuwa tangu Muungano, sehemu mbili zilizounganishwa za programu ya Ethereum - mteja wa utekelezaji na mteja wa makubaliano - zinahitajika ili kuendesha nodi. Tafadhali hakikisha nodi yako inajumuisha mteja wa utekelezaji na mteja wa makubaliano. Ikiwa nodi yako haiko kwenye mashine yako ya karibu (k.m., nodi yako inaendeshwa kwenye kielelezo cha AWS) sasisha anwani za IP katika mafunzo ipasavyo. Kwa maelezo zaidi tafadhali angalia ukurasa wetu kuhusu kuendesha nodi.
Mahitaji ya awali
Pamoja na kuelewa JavaScript, inaweza kusaidia kuelewa rundo la Ethereum na wateja wa Ethereum.
Kwa nini utumie maktaba?
Maktaba hizi hurahisisha sehemu kubwa ya utata wa kuingiliana moja kwa moja na nodi ya Ethereum. Pia hutoa kazi za matumizi (k.m., kubadilisha ETH kwenda Gwei) hivyo kama msanidi programu unaweza kutumia muda mfupi kushughulikia ugumu wa wateja wa Ethereum na muda mwingi zaidi kulenga utendaji wa kipekee wa programu yako.
Vipengele vya maktaba
Ungana na nodi za Ethereum
Kwa kutumia watoa huduma, maktaba hizi zinakuruhusu kuungana na Ethereum na kusoma data yake, iwe ni kupitia JSON-RPC, INFURA, Etherscan, Alchemy au MetaMask.
Onyo: Web3.js iliwekwa kwenye kumbukumbu tarehe 4 Machi 2025. Soma tangazoopens in a new tab. Fikiria kutumia maktaba mbadala kama ethers.jsopens in a new tab au viemopens in a new tab kwa miradi mipya.
Mfano wa Ethers
1// A BrowserProvider wraps a standard Web3 provider, which is2// what MetaMask injects as window.ethereum into each page3const provider = new ethers.BrowserProvider(window.ethereum)45// The MetaMask plugin also allows signing transactions to6// send ether and pay to change state within the blockchain.7// For this, we need the account signer...8const signer = provider.getSigner()Mfano wa Web3js
1var web3 = new Web3("http://localhost:8545")2// or3var web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545"))45// change provider6web3.setProvider("ws://localhost:8546")7// or8web3.setProvider(new Web3.providers.WebsocketProvider("ws://localhost:8546"))910// Using the IPC provider in node.js11var net = require("net")12var web3 = new Web3("/Users/myuser/Library/Ethereum/geth.ipc", net) // mac os path13// or14var web3 = new Web3(15 new Web3.providers.IpcProvider("/Users/myuser/Library/Ethereum/geth.ipc", net)16) // mac os path17// on windows the path is: "\\\\.\\pipe\\geth.ipc"18// on linux the path is: "/users/myuser/.ethereum/geth.ipc"Onyesha yoteBaada ya kusanidi utaweza kuuliza mnyororo wa bloku kwa:
- nambari za bloku
- makadirio ya gesi
- matukio ya mkataba-erevu
- kitambulisho cha mtandao
- na zaidi...
Utendaji wa mkoba
Maktaba hizi hukupa utendaji wa kuunda mikoba, kusimamia funguo na kusaini miamala.
Huu hapa ni mfano kutoka kwa Ethers
1// Create a wallet instance from a mnemonic...2mnemonic =3 "announce room limb pattern dry unit scale effort smooth jazz weasel alcohol"4walletMnemonic = Wallet.fromPhrase(mnemonic)56// ...or from a private key7walletPrivateKey = new Wallet(walletMnemonic.privateKey)89walletMnemonic.address === walletPrivateKey.address10// true1112// The address as a Promise per the Signer API13walletMnemonic.getAddress()14// { Promise: '0x71CB05EE1b1F506fF321Da3dac38f25c0c9ce6E1' }1516// A Wallet address is also available synchronously17walletMnemonic.address18// '0x71CB05EE1b1F506fF321Da3dac38f25c0c9ce6E1'1920// The internal cryptographic components21walletMnemonic.privateKey22// '0x1da6847600b0ee25e9ad9a52abbd786dd2502fa4005dd5af9310b7cc7a3b25db'23walletMnemonic.publicKey24// '0x04b9e72dfd423bcf95b3801ac93f4392be5ff22143f9980eb78b3a860c4843bfd04829ae61cdba4b3b1978ac5fc64f5cc2f4350e35a108a9c9a92a81200a60cd64'2526// The wallet mnemonic27walletMnemonic.mnemonic28// {29// locale: 'en',30// path: 'm/44\'/60\'/0\'/0/0',31// phrase: 'announce room limb pattern dry unit scale effort smooth jazz weasel alcohol'32// }3334// Note: A wallet created with a private key does not35// have a mnemonic (the derivation prevents it)36walletPrivateKey.mnemonic37// null3839// Signing a message40walletMnemonic.signMessage("Hello World")41// { Promise: '0x14280e5885a19f60e536de50097e96e3738c7acae4e9e62d67272d794b8127d31c03d9cd59781d4ee31fb4e1b893bd9b020ec67dfa65cfb51e2bdadbb1de26d91c' }4243tx = {44 to: "0x8ba1f109551bD432803012645Ac136ddd64DBA72",45 value: utils.parseEther("1.0"),46}4748// Signing a transaction49walletMnemonic.signTransaction(tx)50// { Promise: '0xf865808080948ba1f109551bd432803012645ac136ddd64dba72880de0b6b3a7640000801ca0918e294306d177ab7bd664f5e141436563854ebe0a3e523b9690b4922bbb52b8a01181612cec9c431c4257a79b8c9f0c980a2c49bb5a0e6ac52949163eeb565dfc' }5152// The connect method returns a new instance of the53// Wallet connected to a provider54wallet = walletMnemonic.connect(provider)5556// Querying the network57wallet.getBalance()58// { Promise: { BigNumber: "42" } }59wallet.getTransactionCount()60// { Promise: 0 }6162// Sending ether63wallet.sendTransaction(tx)Onyesha yoteSoma hati kamiliopens in a new tab
Baada ya kusanidi utaweza:
- kuunda akaunti
- kutuma miamala
- kusaini miamala
- na zaidi...
Ingiliana na utendaji wa mkataba-erevu
Maktaba za wateja za JavaScript huruhusu programu yako kuita utendaji wa mkataba-erevu kwa kusoma Kiolesura cha Binary cha Programu (ABI) ya mkataba uliokusanywa.
Kimsingi ABI inaelezea utendaji wa mkataba katika muundo wa JSON na hukuruhusu kuitumia kama kitu cha kawaida cha JavaScript.
Kwa hivyo mkataba ufuatao wa Solidity:
1contract Test {2 uint a;3 address d = 0x12345678901234567890123456789012;45 constructor(uint testInt) { a = testInt;}67 event Event(uint indexed b, bytes32 c);89 event Event2(uint indexed b, bytes32 c);1011 function foo(uint b, bytes32 c) returns(address) {12 Event(b, c);13 return d;14 }15}Onyesha yoteItasababisha JSON ifuatayo:
1[{2 "type":"constructor",3 "payable":false,4 "stateMutability":"nonpayable"5 "inputs":[{"name":"testInt","type":"uint256"}],6 },{7 "type":"function",8 "name":"foo",9 "constant":false,10 "payable":false,11 "stateMutability":"nonpayable",12 "inputs":[{"name":"b","type":"uint256"}, {"name":"c","type":"bytes32"}],13 "outputs":[{"name":"","type":"address"}]14 },{15 "type":"event",16 "name":"Event",17 "inputs":[{"indexed":true,"name":"b","type":"uint256"}, {"indexed":false,"name":"c","type":"bytes32"}],18 "anonymous":false19 },{20 "type":"event",21 "name":"Event2",22 "inputs":[{"indexed":true,"name":"b","type":"uint256"},{"indexed":false,"name":"c","type":"bytes32"}],23 "anonymous":false24}]Onyesha yoteHii inamaanisha unaweza:
- Tuma muamala kwa mkataba-erevu na utekeleze mbinu yake
- Piga simu ili kukadiria gesi ambayo utekelezaji wa mbinu utachukua unapotekelezwa katika EVM
- Sambaza mkataba
- Na zaidi...
Utendaji wa matumizi
Utendaji wa matumizi hukupa njia za mkato zinazofaa ambazo hufanya ujenzi na Ethereum kuwa rahisi kidogo.
Thamani za ETH ziko katika Wei kwa chaguo-msingi. ETH 1 = WEI 1,000,000,000,000,000,000 – hii inamaanisha unashughulika na nambari nyingi! web3.utils.toWei hubadilisha ether kuwa Wei kwa ajili yako.
Na katika ethers inaonekana kama hivi:
1// Get the balance of an account (by address or ENS name)2balance = await provider.getBalance("ethers.eth")3// { BigNumber: "2337132817842795605" }45// Often you will need to format the output for the user6// which prefer to see values in ether (instead of wei)7ethers.utils.formatEther(balance)8// '2.337132817842795605'Maktaba zinazopatikana
Web3.js - API ya JavaScript ya Ethereum.
Ethers.js - Utekelezaji kamili wa mkoba wa Ethereum na huduma katika JavaScript na TypeScript.
The Graph - Itifaki ya kuorodhesha data ya Ethereum na IPFS na kuiuliza kwa kutumia GraphQL.
- The Graphopens in a new tab
- Graph Exploreropens in a new tab
- Nyarakaopens in a new tab
- GitHubopens in a new tab
- Discordopens in a new tab
Alchemy SDK - Kifuniko karibu na Ethers.js na api zilizoboreshwa.
viem - Kiolesura cha TypeScript cha Ethereum.
Drift - Maktaba-meta ya TypeScript iliyo na kashe iliyojengewa ndani, ndoano, na dhihaka za majaribio.
Masomo zaidi
Unajua rasilimali ya jamii iliyokusaidia? Hariri ukurasa huu na uiongeze!_
Mada zinazohusiana
Mafunzo yanayohusiana
- Sanidi Web3js kutumia blockchain ya Ethereum katika JavaScript – Maagizo ya kusanidi web3.js katika mradi wako.
- Kuita mkataba-erevu kutoka JavaScript – Kwa kutumia tokeni ya DAI, ona jinsi ya kuita kazi za mikataba kwa kutumia JavaScript.
- Kutuma miamala kwa kutumia web3 na Alchemy – Mwongozo wa hatua kwa hatua kwa ajili ya kutuma miamala kutoka sehemu ya nyuma.