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.