# Questionário: Pragmas Solidity: Segurança e Flexibilidade

**Instruções:**

* Responda às perguntas com base no conteúdo apresentado sobre pragmas Solidity.
* Seja honesto e objetivo em suas respostas.
* Utilize este questionário como uma ferramenta de autoavaliação e aprendizado.

**Perguntas:**

1. Qual é a função principal da diretiva pragma em Solidity?

   a) Definir o nome do contrato inteligente. b) Especificar a versão do compilador Solidity a ser utilizada. c) Importar bibliotecas externas para o contrato. d) Definir a estrutura de dados do contrato.
2. Qual a vantagem de usar a compilação rigorosa (pragma solidity 0.8.25)?

   a) Maior flexibilidade para utilizar as últimas funcionalidades do Solidity.&#x20;

&#x20;        b) Maior segurança ao garantir a compilação com um conjunto de regras e recursos bem definidos.&#x20;

&#x20;     c) Facilidade de replicação do ambiente de compilação em diferentes máquinas.&#x20;

&#x20;     d) Redução da necessidade de atualizações frequentes do pragma.

1. Qual a desvantagem de usar a compilação com faixa de versões (pragma solidity ^0.8.20)?

   a) Menor controle sobre a versão do compilador utilizada. b) Maior risco de incompatibilidades entre versões do Solidity. c) Maior necessidade de manutençãoo do pragma a longo prazo. d) Menor reprodutibilidade do ambiente de compilação em diferentes máquinas.
2. Qual a vantagem de usar a compilação em intervalo especificado (pragma solidity >=0.8.0 <=0.9.0)?

   a) Permite definir um intervalo de versões que atenda às suas necessidades de segurança e compatibilidade. b) Oferece mais flexibilidade do que a compilação com faixa de versões. c) Elimina a necessidade de atualizações frequentes do pragma. d) Garante a compilação com a versão específica do Solidity que atende às suas necessidades.
3. Qual a recomendação geral para a escolha do pragma Solidity?

   a) Utilizar sempre a compilação rigorosa com a versão mais recente do Solidity. b) Utilizar a compilação com faixa de versões, definindo um intervalo que abranja as funcionalidades desejadas e minimize riscos de incompatibilidades. c) Utilizar a compilação em intervalo específico, definindo um intervalo que atenda às suas necessidades de compatibilidade e recursos. d) Não existe uma recomendação geral, pois a escolha depende dos requisitos específicos de cada projeto.
4. Qual a versão mínima do compilador Solidity compatível com o pragma `pragma solidity ^0.8.20`?

   a) 0.8.20 b) 0.8.21 c) 0.8.0 d) Qualquer versão do Solidity
5. Se o compilador Solidity 0.8.25 for utilizado com o pragma `pragma solidity ^0.8.20`, o que acontecerá?

   a) O contrato será compilado com sucesso. b) O contrato será compilado com sucesso, mas com avisos sobre recursos desatualizados. c) O contrato não será compilado e uma mensagem de erro será exibida. d) O contrato será compilado com sucesso, mas com funcionalidades limitadas.
6. Qual a principal vantagem de utilizar o pragma `pragma solidity ^0.8.20` em conjunto com o compilador Solidity 0.8.25?

   a) Permite utilizar as últimas funcionalidades do Solidity, mesmo que o compilador seja uma versão anterior. b) Garante a máxima segurança do contrato, pois o compilador irá verificar compatibilidade com versões futuras. c) Facilita a replicação do ambiente de compilação em diferentes máquinas. d) Reduz a necessidade de atualizações frequentes do pragma.
7. Qual a principal desvantagem de utilizar o pragma `pragma solidity ^0.8.20` em conjunto com o compilador Solidity 0.8.25?

   a) Pode haver incompatibilidades com recursos introduzidos em versões posteriores do Solidity. b) Diminui a segurança do contrato, pois o compilador pode ignorar erros em versões futuras. c) Aumenta a complexidade do processo de compilação. d) Dificulta a manutenção do código a longo prazo.
8. Qual a recomendação geral para a escolha do pragma Solidity em conjunto com o compilador Solidity 0.8.25?

   a) Sempre utilizar o pragma `pragma solidity ^0.8.20` para ter acesso às últimas funcionalidades. b) Utilizar o pragma `pragma solidity 0.8.25` para garantir a máxima segurança e compatibilidade com a versão específica do compilador. c) Avaliar os requisitos específicos do projeto e escolher o pragma que melhor atenda às suas necessidades. d) Não existe uma recomendação geral, pois a escolha depende de diversos fatores, como experiência do desenvolvedor e maturidade do projeto.

**Dicas Adicionais:**

* Revise o conteúdo apresentado sobre pragmas Solidity para esclarecer dúvidas e aprofundar seus conhecimentos.
* Participe do Grupo de Estudos Solidity toda quinta-feiras as 14:00 para discutir suas dúvidas e trocar experiências com outros desenvolvedores Solidity.
