Variáveis especiais de solidity: informações de bloco e transação
Este artigo explicará algumas das variáveis especiais do Solidity mais usadas com exemplos, além de suas funções no desenvolvimento de contratos inteligentes.
A primeira categoria de variáveis especiais do Solidity são aquelas relacionadas a informações de bloco e transação.
Uma variável especial refere-se a uma variável disponível globalmente que contém informações sobre blockchains.
Essas variáveis fornecem dados importantes sobre o estado atual do blockchain Ethereum, incluindo o número do bloco atual, o timestamp do bloco atual e o endereço do remetente de uma transação.
As variáveis especiais estão listadas abaixo:
| Variáveis Especiais | Visão geral | 
| blockhash(uint blockNumber) retorna (bytes32) | Hash de bloco – funciona apenas para os 256 blocos mais recentes, excluindo os blocos atuais. | 
| block.coinbase (endereço pagável) | Mostra o endereço dos mineiros recentes. | 
| block.difficulty (uint) | Exibe a dificuldade do bloco. | 
| block.gaslimit (uint) | Mostra o gaslimit utilizado pelo respectivo bloco. | 
| block.number (uint) | O número recente do bloco é impresso. | 
| block.timestamp | Tempo desde a época do bloco unix medido em segundos. | 
| gasleft() retorna (uint256) | Emite o gás restante do bloco/contrato. | 
| msg.data (bytes calldata) | Faz uma instância de dados para a msg. | 
| msg.remetente (endereço a pagar) | Mostra o remetente do bloco. | 
| msg.sig (bytes4) | Exibe os primeiros 4 bytes da msg. | 
| msg.value (uint) | Calcula o número de wei enviados pela mensagem. | 
| agora (uint) | Exibe a hora atual do bloco | 
| tx.gasprice (uint) | Exibe o preço do gás utilizado no bloco. | 
| tx.origin (endereço a pagar) | Mostra os remetentes de todo o blockchain. | 
O exemplo a seguir mostra o uso de variáveis especiais:
Example:
Conclusão
As variáveis especiais Solidity são um recurso essencial que permite acessar e usar informações cruciais durante a execução do contrato inteligente.
Desde fornecer detalhes sobre o número do bloco atual até acessar o endereço do remetente da transação original, essas variáveis especiais oferecem uma variedade de funcionalidades que tornam o desenvolvimento de contratos inteligentes no Ethereum mais eficiente e seguro.
