WEB3DEV

Cover image for Criar um contrato filho, que herda funções em Solidity
Adriano P. Araujo
Adriano P. Araujo

Posted on

Criar um contrato filho, que herda funções em Solidity

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.

Top comments (0)