tradingview

JavaScript

JavaScript (JS) to język programowania, w którym działa interaktywna część stron internetowych. Wykonuje go każda przeglądarka, a dzięki środowisku Node.js także serwery. W świecie kryptowalut JavaScript jest językiem „frontu”: to w nim napisane są interfejsy giełd zdecentralizowanych, rozszerzenia portfeli i większość bibliotek, przez które aplikacje rozmawiają z blockchainem.

JavaScript nie ma nic wspólnego z Javą poza podobieństwem nazwy. Jego rozszerzeniem jest TypeScript, który dodaje statyczne typy i dominuje w nowych projektach Web3.

Gdzie JavaScript spotyka krypto

Obszar Rola JavaScriptu
Portfele w przeglądarce MetaMask i podobne rozszerzenia są napisane w JS/TypeScript i wstrzykują do strony obiekt dostawcy, przez który dApp prosi o podpis.
Interfejsy dApps Strony DEX-ów, protokołów pożyczkowych i marketplace’ów NFT to aplikacje JS (najczęściej React).
Biblioteki blockchain ethers.js i viem do sieci EVM, @solana/web3.js dla Solany – odczyt sald, budowa i wysyłka transakcji.
Narzędzia deweloperskie Hardhat do testów i wdrażania smart kontraktów pisanych w Solidity.
Boty i skrypty Node.js obsługuje API giełd i websockety z danymi rynkowymi.

Sam smart kontrakt na Ethereum nie jest pisany w JavaScripcie, tylko w Solidity lub Vyperze. JS jest warstwą, która z kontraktem rozmawia.

Biblioteki web3 – co się zmieniło

Przez lata standardem była biblioteka web3.js. Jej opiekun, firma ChainSafe, zakończył jej rozwój w marcu 2025 roku i zalecił przejście na inne rozwiązania. Nowe projekty korzystają głównie z ethers.js (wersja 6) lub viem, często w parze z biblioteką wagmi dla Reacta. Jeśli trafisz na tutorial oparty na web3.js, traktuj go jako materiał historyczny.

Podobnie z Lisk SDK – frameworkiem do budowy własnych blockchainów w JavaScripcie. Lisk w 2024 roku przeszedł na model warstwy L2 w ekosystemie Optimism, więc jego SDK nie jest już głównym kierunkiem rozwoju projektu.

Przykład: dlaczego kwoty tokenów to BigInt

Zwykła liczba w JavaScripcie (typ Number) jest dokładna tylko do 9 007 199 254 740 991, czyli 253 − 1. Tymczasem blockchain zapisuje kwoty w najmniejszych jednostkach.

Kwota Miejsca po przecinku Zapis w jednostkach bazowych Mieści się w Number?
1 500,25 USDC 6 1 500 250 000 tak
12,5 ETH 18 12 500 000 000 000 000 000 wei nie

Załóżmy, że skrypt liczy kwotę do wysłania na typie Number. Dla 12,5 ETH wynik może zostać zaokrąglony, a transakcja wyśle inną kwotę niż zamierzona lub zostanie odrzucona. Dlatego ethers.js i viem operują na typie BigInt i funkcjach w rodzaju parseUnits i formatUnits. Klasyczny sygnał ostrzegawczy: w konsoli wyrażenie 0.1 + 0.2 daje 0.30000000000000004. Przy pieniądzach nie liczysz na liczbach zmiennoprzecinkowych.

Bezpieczeństwo – JavaScript jako wektor ataku

  • Podmieniony front-end. Nawet bezpieczny kontrakt nie pomoże, jeśli ktoś przejmie domenę lub serwer strony i podmieni skrypt – ten poprosi Cię o podpis zgody na wydanie tokenów.
  • Zainfekowane paczki npm. Ataki na łańcuch dostaw polegają na wstrzyknięciu złośliwego kodu do popularnej biblioteki, np. podmieniającego adres odbiorcy.
  • Złośliwe rozszerzenia. Fałszywe wersje portfeli w sklepach z rozszerzeniami kradną frazę seed.
  • Drainery. Skrypty na stronach phishingowych, które po podpisie wyprowadzają środki z portfela.

Najczęstsze błędy

  • Liczenie kwot tokenów na typie Number zamiast BigInt.
  • Trzymanie klucza prywatnego lub klucza API w kodzie front-endu, który widzi każdy użytkownik.
  • Kopiowanie kodu ze starych tutoriali opartych na nierozwijanych bibliotekach.
  • Instalowanie paczek o nazwach łudząco podobnych do oryginału.
  • Podpisywanie transakcji bez czytania, co dokładnie wyświetla portfel.

Perspektywa tradera

Nie musisz programować, żeby korzystać z wiedzy o JavaScripcie. Wystarczy świadomość, że interfejs dApp to tylko strona internetowa – może być podmieniona, a ostatnią linią obrony jest ekran potwierdzenia w portfelu. Sprawdzaj adres strony, typ podpisu i kwotę zgody (approve). Jeśli piszesz własne skrypty w Node.js do obsługi API giełdy, zacznij od konta z małym saldem i kluczy bez prawa wypłaty. Do analizy danych i backtestów częściej wybiera się Pythona, a JavaScript sprawdza się w narzędziach działających w przeglądarce i w integracji z portfelami. Wykresy i alerty często łatwiej zbudujesz bez kodu – np. w TradingView, który ma własny język skryptów Pine Script.

Najczęstsze pytania

Czy smart kontrakty pisze się w JavaScripcie?

Na Ethereum i sieciach EVM nie – używa się Solidity lub Vypera. JavaScript służy do testowania, wdrażania i obsługi kontraktów z poziomu aplikacji.

ethers.js czy viem?

Obie są aktywnie rozwijane. ethers.js ma dłuższą historię i wiele przykładów, viem jest nowszy, lżejszy i mocno typowany w TypeScripcie.

Czy web3.js jeszcze działa?

Istniejący kod działa, ale biblioteka nie jest rozwijana od 2025 roku. W nowych projektach lepiej wybrać ethers.js lub viem.

Czym JavaScript różni się od TypeScriptu?

TypeScript to JavaScript z typami, sprawdzanymi przed uruchomieniem. Pomaga wyłapać błędy, np. pomylenie kwoty w ETH z kwotą w wei.

Czy mogę napisać bota tradingowego w JavaScripcie?

Tak, Node.js dobrze obsługuje API i websockety giełd. Do analizy danych i backtestów częściej wybiera się jednak Pythona.

Tekst ma charakter edukacyjny i nie stanowi rekomendacji inwestycyjnej.

Zaktualizowano: