w3b3d3v / gitbook-solidity

gitbook-solidity.vercel.app
42 stars 20 forks source link

Planning Quiz YT - Solidity #36

Open JennyT3 opened 1 month ago

JennyT3 commented 1 month ago

Solidity

1. Em Solidity, o que acontece quando uma função marca explicitamente um erro com revert?

a) A execução da função continua normalmente, mas um aviso é gerado no console. b) A execução da função é revertida imediatamente e todas as alterações de estado são desfeitas. c) A função retorna um valor de erro que pode ser tratado pelo contrato chamador.

Resposta correta: b) A execução da função é revertida imediatamente e todas as alterações de estado são desfeitas.

JennyT3 commented 1 month ago

2. Qual é a principal razão para usar revert em contratos inteligentes?

a) Para interromper a execução do contrato e lançar um erro personalizado. b) Para forçar uma exceção não tratada e encerrar o contrato abruptamente. c) Para notificar o usuário sobre erros de execução do contrato.

Resposta correta: a) Para interromper a execução do contrato e lançar um erro personalizado.

JennyT3 commented 1 month ago

3. Quando você pode utilizar require em vez de revert em Solidity?

a) Quando você quer retornar um valor específico ao invés de lançar uma exceção. b) Quando você quer apenas registrar um aviso no console, mas continuar a execução. c) Quando você quer impor condições para a execução de uma função e reverter se essas condições não forem atendidas.

Resposta correta: c) Quando você quer impor condições para a execução de uma função e reverter se essas condições não forem atendidas.

JennyT3 commented 1 month ago

4. O que o modificador required faz em Solidity? a) Ele verifica se uma variável foi inicializada corretamente antes de permitir a execução de uma função. b) Ele define um requisito que deve ser cumprido para que a função seja executada com sucesso. c) Ele reverte a execução de uma função se uma condição específica não for atendida.

Resposta correta: b) Ele define um requisito que deve ser cumprido para que a função seja executada com sucesso.

JennyT3 commented 1 month ago

5. Qual é a diferença principal entre required e assert em Solidity? a) required é usado para verificar condições de entrada em uma função, enquanto assert é usado para verificar invariantes internas do contrato. b) required é usado para interromper a execução de uma função se uma condição não for atendida, enquanto assert é usado para validar expressões internas do contrato. c) required e assert são sinônimos em Solidity e podem ser usados de forma intercambiável.

Resposta correta: a) required é usado para verificar condições de entrada em uma função, enquanto assert é usado para verificar invariantes internas do contrato.

JennyT3 commented 1 month ago

6. Quando é mais apropriado usar required em vez de revert em Solidity? a) Quando a verificação é sobre condições externas, como entradas de usuário. b) Quando a validação está relacionada a invariantes internos do contrato. c) Não há diferença significativa entre eles em termos de uso apropriado.

Resposta correta: a) Quando a verificação é sobre condições externas, como entradas de usuário.

JennyT3 commented 1 month ago

7. Como o bloco de código a seguir, em Solidity, trata a validação de um índice de um array? Copy if (index >= mensagens.length) revert ERRORInvalidIndex(index); a) Reverte a execução do contrato se o índice fornecido for maior ou igual ao comprimento do array, lançando uma exceção com uma mensagem de erro personalizada. b) Ignora a condição do índice e continua a execução do contrato normalmente, independentemente do valor fornecido. c) Retorna um aviso no console se o índice estiver fora dos limites do array, mas não reverte a execução do contrato.

Resposta correta: a) Reverte a execução do contrato se o índice fornecido for maior ou igual ao comprimento do array, lançando uma exceção com uma mensagem de erro personalizada.

JennyT3 commented 1 month ago

8. Como o bloco de código a seguir, em Solidity, trata a validação de um índice de um array? Copy require(index <= mensagens.length, "INDEX INVALID"); a) Interrompe a execução do contrato se o índice fornecido for maior do que o comprimento do array, lançando uma exceção com a mensagem "INDEX INVALID". b) Continua a execução do contrato mesmo se o índice estiver fora dos limites do array, mas imprime um aviso no console. c) Retorna um valor booleano indicando se o índice fornecido é válido ou não, sem interromper a execução do contrato.

Resposta correta: a) Interrompe a execução do contrato se o índice fornecido for maior do que o comprimento do array, lançando uma exceção com a mensagem "INDEX INVALID".

https://valter-lobo.gitbook.io/fase-1-solidity-basico/v/material-encontro-4/quiz-required-and-revert