Leçon 3

Escrever um Contrato Inteligente Básico

Variáveis, funções e modificadores são componentes essenciais nos contratos inteligentes Solidity. Solidity tem dois tipos de variáveis: variáveis de estado e variáveis locais.

Nesta secção, iremos discutir o processo de escrita de um contrato inteligente básico utilizando Solidity. Iremos abordar componentes essenciais como variáveis, funções e modificadores. Em seguida, iremos passar por um exemplo de implementação de um contrato de token simples.

Variáveis, funções e modificadores

  • Variáveis: Em Solidity, existem dois tipos de variáveis - variáveis de estado e variáveis locais. As variáveis de estado são armazenadas permanentemente no blockchain, enquanto as variáveis locais são temporárias e existem apenas dentro do escopo de uma função.
  • Funções: As funções são os blocos de construção dos contratos inteligentes. São utilizadas para realizar tarefas específicas, como criar transações e executar lógica personalizada. As funções podem ter parâmetros de entrada e valores de retorno, permitindo uma maior personalização e flexibilidade.
  • Modificadores: Os modificadores são únicos no Solidity e são usados para modificar o comportamento de uma função. Eles podem melhorar a legibilidade e a facilidade de gestão do código e podem ser usados para autenticar os valores recebidos ou executar condicionalmente uma função chamada.

Exemplo1: Implementação de um contrato de token simples

Vamos criar um contrato de token simples usando Solidity. Este contrato permitirá aos usuários transferir tokens entre contas e verificar o saldo do token de qualquer conta.

Tipo de contrato TypeScript pragma solidez ^0.8.0;contrato SimpleToken {    // Declarar variáveis de estado    endereço público proprietário;    mapeamento(endereço => uint256) públicas saldos;    // Inicializar o contrato de token    construtor(uint256 ofertaInicial) {        proprietário = msg.sender;        saldos[proprietário] = ofertaInicial;    }    // Função para transferir tokens    função transferir(endereço para, uint256 montante) públicos {        exigir(saldos[msg.sender] >= montante, "Saldo insuficiente");        saldos[msg.sender] -= montante;        saldos[para] += montante;    }    // Função para verificar o saldo de token de uma conta    função saldoDe(endereço conta) públicos ver retorna (uint256) {        return saldos[conta];    }}

Neste contrato, temos:

  • Variáveis de estadoproprietárioesaldospara armazenar o endereço do proprietário do contrato e os saldos de tokens de todos os endereços, respetivamente.
  • A construtorfunção que define o fornecimento inicial de tokens e os atribui ao proprietário do contrato.
  • Um transferirfunção que permite aos utilizadores transferir tokens para outras contas. Ele utiliza o exigirdeclaração para garantir que o remetente tem tokens suficientes para transferir.
  • Um saldoDefunção que devolve o saldo do token de uma conta especificada.
  • Este contrato de token básico demonstra como utilizar variáveis, funções e modificadores em Solidity para criar um contrato inteligente simples e funcional.

Exemplo2: Implementação de um sistema de votação simples

Tipo de scriptpragma solidez ^0.8.0;contrato Sistema de Votação {    mapeamento (bytes32 => uint256) public votesReceived;    bytes32[] public candidateList;    constructor(bytes32[] memory candidateNames) {        candidateList = candidateNames;    }    função voteForCandidate(bytes32 candidato) público {        exigir candidato válido(candidato), "Candidato inválido.");        votesReceived[candidato] += 1;    }    função totalVotesFor(bytes32 candidato) público view returns (uint256) {        exigir candidato válido(candidato), "Candidato inválido.");        return votesReceived[candidato];    }    função candidato válido(bytes32 candidato) público view returns (bool) {        for (uint256 i = 0; i < candidateList.length; i++) {            if (candidateList[i] == candidato) {                return true;            }        }        return false;    }}

Neste exemplo, o Sistema de Votaçãoo contrato permite aos usuários votar em um dos vários candidatos ligando para o votarNoCandidatofunção. O contrato mantém o controle do número de votos recebidos para cada candidato usando um votosRecebidosmapeamento, onde a chave é o nome do candidato e o valor é o número de votos. O lista de candidatosa variável armazena a lista de candidatos válidos. O totalVotesFora função pode ser chamada para verificar o número de votos que um candidato específico recebeu e o candidato válidoA função verifica se um candidato é válido. Este é um exemplo simples de como o Solidity pode ser usado para construir aplicações descentralizadas com lógica complexa.

Destaque
Variáveis, funções e modificadores são componentes essenciais nos contratos inteligentes Solidity.
Solidity tem dois tipos de variáveis: variáveis de estado e variáveis locais.
As funções são usadas para realizar tarefas e podem ter parâmetros de entrada e valores de retorno.
Os modificadores são usados para modificar o comportamento de uma função e melhorar a legibilidade e a facilidade de gestão do código.
O contrato SimpleToken permite aos utilizadores transferir tokens e verificar saldos de tokens.
O contrato SimpleToken demonstra o uso de variáveis de estado, uma função construtora e funções como transferência e balanceOf.
O contrato VotingSystem permite aos usuários votar em candidatos e rastrear contagens de votos.
O contrato VotingSystem mostra o uso de mapeamentos, arrays e funções como voteForCandidate, totalVotesFor e validCandidate.

Clause de non-responsabilité
* Les investissements en cryptomonnaies comportent des risques importants. Veuillez faire preuve de prudence. Le cours n'est pas destiné à fournir des conseils en investissement.
* Ce cours a été créé par l'auteur qui a rejoint Gate Learn. Toute opinion partagée par l'auteur ne représente pas Gate Learn.
Catalogue
Leçon 3

Escrever um Contrato Inteligente Básico

Variáveis, funções e modificadores são componentes essenciais nos contratos inteligentes Solidity. Solidity tem dois tipos de variáveis: variáveis de estado e variáveis locais.

Nesta secção, iremos discutir o processo de escrita de um contrato inteligente básico utilizando Solidity. Iremos abordar componentes essenciais como variáveis, funções e modificadores. Em seguida, iremos passar por um exemplo de implementação de um contrato de token simples.

Variáveis, funções e modificadores

  • Variáveis: Em Solidity, existem dois tipos de variáveis - variáveis de estado e variáveis locais. As variáveis de estado são armazenadas permanentemente no blockchain, enquanto as variáveis locais são temporárias e existem apenas dentro do escopo de uma função.
  • Funções: As funções são os blocos de construção dos contratos inteligentes. São utilizadas para realizar tarefas específicas, como criar transações e executar lógica personalizada. As funções podem ter parâmetros de entrada e valores de retorno, permitindo uma maior personalização e flexibilidade.
  • Modificadores: Os modificadores são únicos no Solidity e são usados para modificar o comportamento de uma função. Eles podem melhorar a legibilidade e a facilidade de gestão do código e podem ser usados para autenticar os valores recebidos ou executar condicionalmente uma função chamada.

Exemplo1: Implementação de um contrato de token simples

Vamos criar um contrato de token simples usando Solidity. Este contrato permitirá aos usuários transferir tokens entre contas e verificar o saldo do token de qualquer conta.

Tipo de contrato TypeScript pragma solidez ^0.8.0;contrato SimpleToken {    // Declarar variáveis de estado    endereço público proprietário;    mapeamento(endereço => uint256) públicas saldos;    // Inicializar o contrato de token    construtor(uint256 ofertaInicial) {        proprietário = msg.sender;        saldos[proprietário] = ofertaInicial;    }    // Função para transferir tokens    função transferir(endereço para, uint256 montante) públicos {        exigir(saldos[msg.sender] >= montante, "Saldo insuficiente");        saldos[msg.sender] -= montante;        saldos[para] += montante;    }    // Função para verificar o saldo de token de uma conta    função saldoDe(endereço conta) públicos ver retorna (uint256) {        return saldos[conta];    }}

Neste contrato, temos:

  • Variáveis de estadoproprietárioesaldospara armazenar o endereço do proprietário do contrato e os saldos de tokens de todos os endereços, respetivamente.
  • A construtorfunção que define o fornecimento inicial de tokens e os atribui ao proprietário do contrato.
  • Um transferirfunção que permite aos utilizadores transferir tokens para outras contas. Ele utiliza o exigirdeclaração para garantir que o remetente tem tokens suficientes para transferir.
  • Um saldoDefunção que devolve o saldo do token de uma conta especificada.
  • Este contrato de token básico demonstra como utilizar variáveis, funções e modificadores em Solidity para criar um contrato inteligente simples e funcional.

Exemplo2: Implementação de um sistema de votação simples

Tipo de scriptpragma solidez ^0.8.0;contrato Sistema de Votação {    mapeamento (bytes32 => uint256) public votesReceived;    bytes32[] public candidateList;    constructor(bytes32[] memory candidateNames) {        candidateList = candidateNames;    }    função voteForCandidate(bytes32 candidato) público {        exigir candidato válido(candidato), "Candidato inválido.");        votesReceived[candidato] += 1;    }    função totalVotesFor(bytes32 candidato) público view returns (uint256) {        exigir candidato válido(candidato), "Candidato inválido.");        return votesReceived[candidato];    }    função candidato válido(bytes32 candidato) público view returns (bool) {        for (uint256 i = 0; i < candidateList.length; i++) {            if (candidateList[i] == candidato) {                return true;            }        }        return false;    }}

Neste exemplo, o Sistema de Votaçãoo contrato permite aos usuários votar em um dos vários candidatos ligando para o votarNoCandidatofunção. O contrato mantém o controle do número de votos recebidos para cada candidato usando um votosRecebidosmapeamento, onde a chave é o nome do candidato e o valor é o número de votos. O lista de candidatosa variável armazena a lista de candidatos válidos. O totalVotesFora função pode ser chamada para verificar o número de votos que um candidato específico recebeu e o candidato válidoA função verifica se um candidato é válido. Este é um exemplo simples de como o Solidity pode ser usado para construir aplicações descentralizadas com lógica complexa.

Destaque
Variáveis, funções e modificadores são componentes essenciais nos contratos inteligentes Solidity.
Solidity tem dois tipos de variáveis: variáveis de estado e variáveis locais.
As funções são usadas para realizar tarefas e podem ter parâmetros de entrada e valores de retorno.
Os modificadores são usados para modificar o comportamento de uma função e melhorar a legibilidade e a facilidade de gestão do código.
O contrato SimpleToken permite aos utilizadores transferir tokens e verificar saldos de tokens.
O contrato SimpleToken demonstra o uso de variáveis de estado, uma função construtora e funções como transferência e balanceOf.
O contrato VotingSystem permite aos usuários votar em candidatos e rastrear contagens de votos.
O contrato VotingSystem mostra o uso de mapeamentos, arrays e funções como voteForCandidate, totalVotesFor e validCandidate.

Clause de non-responsabilité
* Les investissements en cryptomonnaies comportent des risques importants. Veuillez faire preuve de prudence. Le cours n'est pas destiné à fournir des conseils en investissement.
* Ce cours a été créé par l'auteur qui a rejoint Gate Learn. Toute opinion partagée par l'auteur ne représente pas Gate Learn.