Staří lidé říkali, že na medvědím trhu více čtěte a více studujte. Bez dalších řečí se s vámi Heixiazi podělí o relevantní znalosti o blokových transakčních informacích API a ABI v ETH smart contract development language solidity. Doufám, že mě podpoříte a těšíme se na další buly trh pro ETH prolomí 10 000 amerických dolarů🙌 $ETH

1. Jaká jsou běžně používaná API pro bloky a transakce?

blockhash(uint blockNumber) Vrací hodnotu hash daného čísla bloku, podporuje pouze posledních 256 bloků

block.coinbase returns(address) Adresa aktuálního těžaře bloků

block.difficulty returns(uint) Obtížnost aktuálního bloku

block.gaslimit vrací (uint) gaslimit aktuálního bloku

block.number returns(uint) Číslo bloku aktuálního bloku

block.timestamp vrací (uint) časové razítko aktuálního bloku

gasleft se vrací (uint) Získejte zbývající plyn

msg.data returns(uint256) Kompletní data hovoru (calldata)

msg.sender returns(address) Adresa aktuálního volajícího

msg.sig returns(bytes4) První čtyři bajty dat volání (calldata), jako je identifikátor funkce

msg.value returns(uint) Ethereum připojené k této zprávě ve wei

tx.gasprice returns(uint) Cena plynu transakce

tx.origin returns(address) Odesílatel transakce

2. Kódování ABI

Úplný název ABI je Application Binary Interface Zahájíme transakci (volání funkce) na adresu smlouvy a obsahem transakce jsou data zakódovaná v ABI. Na obrázku níže je ABI

Funkce kódování související s ABI

abi.encode(...) returns(bytes) ABI kódování parametrů výpočtu

abi.encodePacked(...) returns(bytes) Pevně ​​zabalené kódování parametrů výpočtu

abi.encodeWithSelector(...) returns(bytes) Vypočítá ABI kódování selektorů funkcí a parametrů

abi.encodeWithSignature(...) returns(bytes) Vypočítá ABI kódování selektorů funkcí a parametrů

3. Související kódová cvičení