Přejít na hlavní obsah
Change page

Knihovny JavaScript API

Aby mohla webová aplikace komunikovat s blockchainem Etherea (tj. číst data z blockchainu a/nebo odesílat transakce do sítě), musí se připojit k uzlu Etherea.

Za tímto účelem implementuje každý klient Etherea specifikaci JSON-RPC, takže existuje jednotná sada metod, na které se aplikace mohou spolehnout.

Pokud chcete k připojení k uzlu Etherea použít JavaScript, je možné použít čistý (vanilla) JavaScript, ale v ekosystému existuje několik užitečných knihoven, které to mnohem usnadňují. S těmito knihovnami mohou vývojáři psát intuitivní, jednořádkové metody pro inicializaci požadavků JSON-RPC (na pozadí), které komunikují s Ethereem.

Vezměte prosím na vědomí, že od Merge jsou ke spuštění uzlu vyžadovány dvě propojené části softwaru Etherea – exekuční klient a konsensuální klient. Ujistěte se prosím, že váš uzel obsahuje jak exekučního, tak konsensuálního klienta. Pokud váš uzel neběží na vašem lokálním počítači (např. váš uzel běží na instanci AWS), aktualizujte odpovídajícím způsobem IP adresy v tutoriálu. Pro více informací se prosím podívejte na naši stránku o provozování uzlu.

Předpoklady

Kromě porozumění JavaScriptu může být užitečné porozumět technologickému zásobníku Etherea a klientům Etherea.

Proč používat knihovnu?

Tyto knihovny abstrahují velkou část složitosti přímé komunikace s uzlem Etherea. Poskytují také pomocné funkce (např. převod ETH na Gwei), takže jako vývojář můžete strávit méně času řešením složitostí klientů Etherea a více času se soustředit na jedinečnou funkcionalitu vaší aplikace.

Funkce knihoven

Připojení k uzlům Etherea

Pomocí poskytovatelů (providers) vám tyto knihovny umožňují připojit se k Ethereu a číst jeho data, ať už přes JSON-RPC, Infura, Etherscan, Alchemy nebo MetaMask.

Varování: Knihovna Web3.js byla archivována 4. března 2025. Přečtěte si oznámení (opens in a new tab). Pro nové projekty zvažte použití alternativních knihoven, jako jsou Ethers.js (opens in a new tab) nebo Viem (opens in a new tab).

Příklad v Ethers

// BrowserProvider obaluje standardního poskytovatele Web3, což je
// to, co MetaMask vkládá jako window.ethereum do každé stránky
const provider = new ethers.BrowserProvider(window.ethereum)

// Plugin MetaMask také umožňuje podepisovat transakce pro
// odesílání etheru a placení za změnu stavu v rámci blockchainu.
// K tomu potřebujeme podepisovatele účtu...
const signer = provider.getSigner()

Příklad ve Web3.js

Po nastavení budete moci dotazovat blockchain na:

  • čísla bloků
  • odhady gasu
  • události chytrých kontraktů
  • ID sítě
  • a další...

Funkcionalita peněženky

Tyto knihovny vám poskytují funkcionalitu pro vytváření peněženek, správu klíčů a podepisování transakcí.

Zde je příklad z Ethers

Přečtěte si celou dokumentaci (opens in a new tab)

Po nastavení budete moci:

  • vytvářet účty
  • odesílat transakce
  • podepisovat transakce
  • a další...

Interakce s funkcemi chytrých kontraktů

Klientské knihovny v JavaScriptu umožňují vaší aplikaci volat funkce chytrých kontraktů čtením aplikačního binárního rozhraní (ABI) zkompilovaného kontraktu.

ABI v podstatě popisuje funkce kontraktu ve formátu JSON a umožňuje vám jej používat jako běžný objekt v JavaScriptu.

Takže následující kontrakt v Solidity:

By vedl k následujícímu JSONu:

To znamená, že můžete:

  • Odeslat transakci do chytrého kontraktu a provést jeho metodu
  • Zavolat odhad gasu, který si vyžádá spuštění metody při provedení v EVM
  • Nasadit kontrakt
  • A další...

Pomocné funkce

Pomocné funkce vám poskytují šikovné zkratky, které trochu usnadňují vývoj na Ethereu.

Hodnoty v ETH jsou ve výchozím nastavení ve Wei. 1 ETH = 1 000 000 000 000 000 000 Wei – to znamená, že pracujete s velkými čísly! web3.utils.toWei za vás převede ether na Wei.

A v Ethers to vypadá takto:

// Získání zůstatku účtu (podle adresy nebo jména ENS)
balance = await provider.getBalance("ethers.eth")
// { BigNumber: "2337132817842795605" }

// Často budete muset formátovat výstup pro uživatele,
// kteří preferují vidět hodnoty v etherech (místo Wei)
ethers.utils.formatEther(balance)
// '2.337132817842795605'

Dostupné knihovny

Web3.js - JavaScript API pro Ethereum.

Ethers.js - Kompletní implementace peněženky Etherea a nástroje v JavaScriptu a TypeScriptu.

The Graph - Protokol pro indexování dat z Etherea a IPFS a jejich dotazování pomocí GraphQL.

Alchemy SDK - Wrapper kolem Ethers.js s vylepšenými API.

Viem - Rozhraní TypeScriptu pro Ethereum.

Codex - API pro obohacená blockchainová data v reálném čase napříč desítkami sítí.

Drift - Meta-knihovna v TypeScriptu s vestavěným cachováním, hooky a testovacími mocky.

Další čtení

Znáte komunitní zdroj, který vám pomohl? Upravte tuto stránku a přidejte ho!

Tutoriály: JavaScript API a WebSockets na Ethereu

  • Použití WebSockets – Jak používat WebSockets s Alchemy k odběru událostí Etherea a provádění požadavků JSON-RPC v reálném čase.