Ruka hadi kwenye maudhui makuu
Change page

Maktaba za API za JavaScript

Ili programu ya wavuti iweze kuingiliana na mnyororo wa vitalu wa Ethereum (yaani, kusoma data ya mnyororo wa vitalu na/au kutuma miamala kwenye mtandao), lazima iunganishwe na nodi ya Ethereum.

Kwa madhumuni haya, kila kiteja cha Ethereum hutekeleza vipimo vya JSON-RPC, kwa hivyo kuna seti sawa ya njia ambazo programu zinaweza kutegemea.

Ikiwa unataka kutumia JavaScript kuunganisha na nodi ya Ethereum, inawezekana kutumia JavaScript ya kawaida lakini kuna maktaba kadhaa za urahisi ndani ya mfumo ikolojia ambazo hufanya hili kuwa rahisi zaidi. Kwa maktaba hizi, wasanidi programu wanaweza kuandika njia angavu za mstari mmoja ili kuanzisha maombi ya JSON-RPC (kiufundi) yanayoingiliana na Ethereum.

Tafadhali kumbuka kuwa tangu Unganisho, vipande viwili vilivyounganishwa vya programu ya Ethereum - kiteja cha utekelezaji na mteja wa mwafaka - vinahitajika ili kuendesha nodi. Tafadhali hakikisha nodi yako inajumuisha kiteja cha utekelezaji na mteja wa mwafaka. Ikiwa nodi yako haipo kwenye mashine yako ya ndani (k.m., nodi yako inaendeshwa kwenye mfumo wa AWS) sasisha anwani za IP katika mafunzo ipasavyo. Kwa maelezo zaidi tafadhali tazama ukurasa wetu kuhusu kuendesha nodi.

Mahitaji ya awali

Pamoja na kuelewa JavaScript, inaweza kusaidia kuelewa mrundikano wa Ethereum na viteja vya Ethereum.

Kwa nini utumie maktaba?

Maktaba hizi huondoa ugumu mwingi wa kuingiliana moja kwa moja na nodi ya Ethereum. Pia hutoa vitendaji vya matumizi (k.m., kubadilisha ETH kuwa Gwei) ili kama msanidi programu uweze kutumia muda mchache kushughulika na utata wa viteja vya Ethereum na muda mwingi kuzingatia utendaji wa kipekee wa programu yako.

Vipengele vya maktaba

Unganisha kwenye nodi za Ethereum

Kwa kutumia watoa huduma, maktaba hizi hukuruhusu kuunganisha kwenye Ethereum na kusoma data yake, iwe ni kupitia JSON-RPC, INFURA, Etherscan, Alchemy au MetaMask.

Onyo: Web3.js iliwekwa kwenye kumbukumbu mnamo Machi 4, 2025. Soma tangazo (opens in a new tab). Fikiria kutumia maktaba mbadala kama ethers.js (opens in a new tab) au viem (opens in a new tab) kwa miradi mipya.

Mfano wa Ethers

// BrowserProvider hufunika mtoa huduma wa kawaida wa Web3, ambaye ni
// kile ambacho MetaMask huingiza kama window.ethereum kwenye kila ukurasa
const provider = new ethers.BrowserProvider(window.ethereum)

// Programu-jalizi ya MetaMask pia inaruhusu kutia saini miamala ili
// kutuma ether na kulipa ili kubadilisha hali ndani ya mnyororo wa vitalu.
// Kwa hili, tunahitaji mtia saini wa akaunti...
const signer = provider.getSigner()

Mfano wa Web3js

Baada ya kusanidi utaweza kuuliza mnyororo wa vitalu kwa:

  • nambari za kitalu
  • makadirio ya gesi
  • matukio ya mkataba mahiri
  • kitambulisho cha mtandao
  • na zaidi...

Utendaji wa mkoba

Maktaba hizi hukupa utendaji wa kuunda mikoba, kudhibiti funguo na kutia saini miamala.

Huu hapa ni mfano kutoka Ethers

Soma hati kamili (opens in a new tab)

Baada ya kusanidi utaweza:

  • kuunda akaunti
  • kutuma miamala
  • kutia saini miamala
  • na zaidi...

Kuingiliana na vitendaji vya mkataba mahiri

Maktaba za kiteja za JavaScript huruhusu programu yako kuita vitendaji vya mkataba mahiri kwa kusoma kiolesura cha jozi cha programu (ABI) cha mkataba uliokusanywa.

Kimsingi ABI inaelezea vitendaji vya mkataba katika muundo wa JSON na inakuruhusu kuitumia kama kipengee cha kawaida cha JavaScript.

Kwa hivyo mkataba ufuatao wa Solidity:

Utasababisha JSON ifuatayo:

Hii inamaanisha unaweza:

  • Kutuma muamala kwenye mkataba mahiri na kutekeleza njia yake
  • Kuita ili kukadiria gesi ambayo utekelezaji wa njia utachukua unapofanywa katika EVM
  • Kusambaza mkataba
  • Na zaidi...

Vitendaji vya matumizi

Vitendaji vya matumizi hukupa njia za mkato zinazofaa ambazo hufanya kujenga na Ethereum kuwa rahisi kidogo.

Thamani za ETH ziko katika Wei kwa chaguo-msingi. 1 ETH = 1,000,000,000,000,000,000 WEI – hii inamaanisha unashughulika na nambari nyingi! web3.utils.toWei inabadilisha Etha kuwa Wei kwa ajili yako.

Na katika ethers inaonekana hivi:

// Pata salio la akaunti (kwa anwani au jina la ENS)
balance = await provider.getBalance("ethers.eth")
// { BigNumber: "2337132817842795605" }

// Mara nyingi utahitaji kupangilia matokeo kwa ajili ya mtumiaji
// ambaye anapendelea kuona thamani katika ether (badala ya Wei)
ethers.utils.formatEther(balance)
// '2.337132817842795605'

Maktaba zinazopatikana

Web3.js - API ya JavaScript ya Ethereum.

Ethers.js - Utekelezaji kamili wa mkoba wa Ethereum na matumizi katika JavaScript na TypeScript.

The Graph - Itifaki ya kuorodhesha data ya Ethereum na IPFS na kuiuliza kwa kutumia GraphQL.

Alchemy SDK - Kifuniko cha Ethers.js chenye API zilizoboreshwa.

viem - Kiolesura cha TypeScript cha Ethereum.

Codex - API ya data ya mnyororo wa vitalu iliyoboreshwa na ya wakati halisi katika minyororo mingi.

Drift - Maktaba kuu ya TypeScript yenye uakibishaji uliojengewa ndani, ndoano, na majaribio ya kuiga.

Usomaji zaidi

Unajua rasilimali ya jamii iliyokusaidia? Hariri ukurasa huu na uiongeze!

Mafunzo: API za JavaScript & WebSockets kwenye Ethereum

  • Kutumia WebSockets – Jinsi ya kutumia WebSockets na Alchemy ili kujiandikisha kwa matukio ya Ethereum na kufanya maombi ya JSON-RPC ya wakati halisi.