Starożytni mówili, że podczas bessy czytaj więcej i studiuj więcej. Bez zbędnych ceregieli Heixiazi podzieli się z Tobą odpowiednią wiedzą na temat API i ABI informacji o transakcjach blokowych w solidności języka programowania inteligentnych kontraktów ETH. Kodowanie nie jest łatwe. Mam nadzieję, że będziesz mnie wspierać i nie mogę się doczekać kolejnej hossy aby ETH przebił barierę 10 000 dolarów amerykańskich🙌 $ETH

1. Jakie są powszechnie używane interfejsy API dla bloków i transakcji?

blockhash(uint blockNumber) Zwraca wartość skrótu podanego numeru bloku, obsługuje tylko ostatnie 256 bloków

block.coinbase zwraca (adres) Adres bieżącego górnika blokowego

block.difficulty zwraca(uint) Poziom trudności bieżącego bloku

block.gaslimit zwraca(uint) limit gazu bieżącego bloku

block.number zwraca(uint) Numer bieżącego bloku

block.timestamp zwraca(uint) znacznik czasu bieżącego bloku

gasleft zwraca (uint) Zdobądź pozostały gaz

msg.data zwraca (uint256) Kompletne dane połączenia (calldata)

msg.sender zwraca(adres) Adres bieżącego rozmówcy

msg.sig return(bytes4) Pierwsze cztery bajty danych połączenia (calldata), np. identyfikator funkcji

msg.value zwraca(uint) Ethereum dołączone do tej wiadomości, w formacie wei

tx.gasprice zwraca (uint) Cena gazu w transakcji

tx.origin zwraca (adres) Nadawca transakcji

2. Kodowanie ABI

Pełna nazwa ABI to Application Binary Interface. Inicjujemy transakcję (wywołanie funkcji) na adres kontraktu, a treścią transakcji są dane zakodowane w ABI. Poniższe zdjęcie przedstawia ABI

Funkcje kodowania związane z ABI

abi.encode(...) zwraca(bajty) Kodowanie ABI parametrów obliczeniowych

abi.encodePacked(...) zwraca(bajty) Ściśle upakowane kodowanie parametrów obliczeniowych

abi.encodeWithSelector(...) zwraca(bytes) Oblicza kodowanie ABI selektorów funkcji i parametrów

abi.encodeWithSignature(...) zwraca(bytes) Oblicza kodowanie ABI selektorów funkcji i parametrów

3. Powiązane ćwiczenia z kodem