Fundamentals·5 dk okuma

wei, gwei, ether: üretimde birimleri doğru yapmak

Crypto backend'lerdeki en yaygın tek hata bir birim hatasıdır — wei'yi ether olarak göstermek veya daha kötüsü, göndermek. Düzeltme sıkıcı ve mutlaktır: on-chain miktarlar için asla kayan nokta kullanmayın ve bir sayının hangi birimde olduğunu her zaman bilin.

Merdiven

Ether 18 ondalığa sahiptir. 1 ether = 10^9 gwei = 10^18 wei. Gwei (10^9 wei), gas fiyatlarının ifade edildiği birimdir; wei, her RPC değerinin cinsinden ifade edildiği temel birimdir. Bitcoin'in eşdeğeri satoshi'dir (10^-8 BTC), TRON'unki sun'dur (10^-6 TRX), TON'unki nanoton'dur (10^-9 TON). Her zincirin bir temel tam sayı birimi vardır — onun içinde çalışın.

Float'lar neden bozar

IEEE-754 double'lar 53 bit mantissa'ya, yaklaşık 15–16 anlamlı ondalık basamağa sahiptir. Bir wei değeri 19+ basamağa sahip olabilir, yani onu bir JavaScript number'a parse ettiğiniz an hassasiyeti kaybedersiniz — sessizce. Yuvarlama hatası göreli olarak minik ve bir defterde felaketvaridir. Uçtan uca native BigInt veya bir big-decimal kütüphanesi kullanın.

Yalnızca kenarlarda dönüştürün

Sisteminizde her yerde miktarları temel-birim tam sayıları olarak tutun — depolama, aritmetik, karşılaştırmalar. Yalnızca gösterim sınırında insan tarafından okunabilir bir ondalık string'e dönüştürün ve kullanıcı girdisini girişte hemen tekrar temel birime parse edin. Bu iki kenar arasında bir float bir miktara dokunursa, onu bir bug olarak değerlendirin.

1st Node Engineering

Sıkça sorulanlar

Küçük miktarlar için JavaScript number'ları kullanmak güvenli mi?

Hayır — çizgiyi boyutta değil, tipte çekin. Herhangi bir kod yolu miktarlar için float'lar kullanmaya başladığında, sonunda büyük bir değer onun içinden akacaktır. Büyüklüğünden bağımsız olarak tüm on-chain miktarlar için BigInt kullanın.

Bir wei değerini kütüphane olmadan ether olarak nasıl gösteririm?

Tam kısım için tam sayı/BigInt matematiği kullanarak 10^18'e bölün ve kalanı ondalık basamaklar olarak biçimlendirin — asla kayan nokta bölmesi aracılığıyla değil. Birim dönüştürücü araçlarımız tam olarak bunu yapar.

İlgili

Bakiye yükle, anahtarını al, yayına çık.

Self servis. Kripto ya da kartla öde. Krediyle ölçümlenir — ağır ilkel yapılar daha pahalı, basitler ucuz.

API anahtarı al