SolidityLabs/solidity-require.sol

25 lines
1.4 KiB
Solidity
Raw Permalink Normal View History

2022-07-18 11:20:20 -03:00
/**
Requerer (Require)
Na lição 1, possibilitamos os usuários de criar novos zumbis chamando a função createRandomZombie e colocando um nome. Porém, se os usuários continuarem chamando esta função e de forma ilimitada criando zumbis em seus exércitos, o jogo não teria tanta graça.
Vamos fazer assim, cada jogador pode chamar esta função uma vez. Desta maneira novos jogadores irão chamar quando começarem o jogo pela primeira vez, para criar o primeiro zumbi do exército.
Como podemos fazer esta função ser chamada somente uma vez por jogador?
Para isso nós vamos usar o require (requerer). require faz com que a função lance um erro e pare a execução se alguma condição não for verdadeira:
*/
function sayHiToVitalik(string _name) public returns (string) {
// Compara se _name é igual à "Vitalik". Lança um erro e termina se não for verdade.
// (Lembrete: Solidity não tem uma forma nativa de comparar strings, então
// temos que comparar os hashes keccak256 para verificar a igualdade)
require(keccak256(_name) == keccak256("Vitalik"));
// Se é verdade, prossiga com a função:
return "Olá!";
}
/**
Se você chamar esta função com sayHiToVitalik("Vitalik"), ela irá retornar "Olá!". Se você chamar esta função com outra entrada, ela irá lançar um erro e não irá executar.
Sendo assim, require é muito útil para verificar certas condições que devem ser verdadeiras antes de executar uma função.
*/