Criar um contrato inteligente com outro que herda certas funções vitais é complicado. Além disso, analisaremos por que os contratos aninhados são essenciais.
Contratos inteligentes são regras e políticas que protegem as transações na blockchain; cada contrato implantado não pode ser revertido ou alterado, a menos que pelo construtor, o qual é o criador do contrato.
No entanto, a criação de um contrato filho permite que o contrato principal seja independente e não facilmente modificado, evitando possíveis erros.
Neste tutorial, mostrarei como criar um contrato aninhado que herda uma função e também modifica essa função.
Primeiro vamos mergulhar no Remix.
Crie seu primeiro contrato e preencha-o com o seguinte.
https://gist.github.com/Scofield-Idehen/42250627e790fc2440719fc0bbfe7ba7
Criamos duas funções
- A função store — armazena valor
- A função retrieve — permite ver os valores armazenados.
Podemos ver as duas funções que criamos à esquerda quando a implantamos.
Armazenamos o número 10 em nosso contrato e o recuperamos através das funções de recuperação.
Herança
Vamos criar um contrato filho a partir do test1
Crie outro contrato, mas desta vez queremos que, sempre que chamarmos a função store, ele deverá adicionar + 5 ao valor quando chamarmos a função retrieve.
Aqui importamos o contrato do test1. Lembre-se de que os dois arquivos devem estar no mesmo diretório para serem chamados dessa maneira.
Em seguida, criamos nosso contrato e dizemos que o contrato test é food, o que significa que estamos herdando tudo do contrato Food.
Se executarmos este contrato, ele mostrará a mesma coisa em nosso contrato test1.
Por fim, copiamos a função store do test1 e notamos o aviso vermelho à esquerda que mostra um erro.
O Solidity está avisando que temos duas funções de contrato idênticas, e recomenda que substituamos a função no test1 para podermos usá-la no test2.
Para fazermos isso, volte ao test1 e adicione :
function store(uint _NewFunction) public virtual
Em seguida, no contrato test2, adicione a substituição
O erro se foi, podemos implantar nosso contrato novamente.
Certifique-se de alterar o contrato para test2 antes de implantar. Agora, vamos armazenar um valor ao seu contrato e perceber que há cinco a mais no valor original quando o recuperamos.
Conclusão
Neste tutorial, aprendemos a criar contratos filhos, herdar de outro contrato usando o valor is e substituir uma função do contrato pai.
Se você tem um projeto ou precisa de ajuda para começar com Solidity, envie uma mensagem ou deixe-me saber sobre o que você acha que devo escrever a seguir.
Este artigo foi escrito por Scofield O. Idehen e traduzido por Adriano P. de Araujo. O original em inglês pode ser encontrado aqui.
Latest comments (0)