Sete grandes dicas para ajudá-lo a dominar o desenvolvimento de contratos inteligentes

Dicas e experiências de desenvolvimento de contratos

Recentemente, ao participar de um projeto de tutorial de desenvolvimento de uma exchange descentralizada, aprendi muitas técnicas valiosas de desenvolvimento de contratos ao estudar a implementação do código do Uniswap V3. Como um novato que acaba de entrar no desenvolvimento de contratos DeFi, essas técnicas me trouxeram muita inspiração e acredito que também serão úteis para outros novatos que desejam aprender sobre desenvolvimento de contratos.

Série para iniciantes em Web3: Dicas de desenvolvimento de contratos que aprendi com o código do Uniswap

Endereço de contrato preditivo

Normalmente, o endereço de um contrato implantado é aleatório, mas em certos cenários precisamos ser capazes de prever o endereço do contrato. O Uniswap utiliza o método CREATE2 para criar contratos, adicionando um parâmetro salt, o que torna possível prever o endereço do contrato criado. Isso é muito útil em cenários como a verificação de permissões de transação ou a obtenção do endereço de um pool.

Série para iniciantes em Web3: Dicas de desenvolvimento de contratos que aprendi com o código do Uniswap

Uso inteligente de funções de retorno

Em certos cenários, a chamada mútua entre contratos é muito útil. Por exemplo, no Uniswap, quando se chama o método swap do contrato UniswapV3Pool, ele irá chamar o swapCallback, passando a quantidade real de Tokens necessária calculada. O chamador precisa transferir os Tokens para o UniswapV3Pool na callback, o que garante a execução completa e a segurança do método swap.

Usar exceções para transmitir informações

No contrato Quoter da Uniswap, utiliza-se try-catch para envolver a execução do método swap do UniswapV3Pool. Isso é feito para simular a troca e estimar os Tokens necessários para a transação, capturando erros específicos e analisando as mensagens de erro para obter os dados necessários. Este método evita a necessidade de modificar o método swap especificamente para a estimativa de transações, tornando a lógica mais simples.

Série para Novatos em Web3: Dicas de Desenvolvimento de Contratos que Aprendi com o Código do Uniswap

Garantia de precisão nos cálculos de grandes números

No Uniswap, envolve-se uma grande quantidade de cálculos. Para evitar a perda de precisão durante operações de divisão, frequentemente se utiliza uma deslocação à esquerda de 96 bits, onde ( equivale a multiplicar por 2^96). Assim, em condições normais de transação sem estouro, é possível garantir a precisão dos cálculos. Embora teoricamente ainda haja uma pequena perda de precisão, esta já é considerada aceitável.

Cálculo de rendimento por meio de compartilhamento

Para evitar o consumo excessivo de Gas ao registrar a taxa de transação para cada LP a cada transação, a Uniswap adotou um método semelhante ao pagamento de dividendos de ações. Apenas é necessário registrar a taxa total e a taxa que deve ser atribuída a cada unidade de liquidez, e a taxa que o LP deve receber pode ser calculada com base na liquidez mantida no momento da retirada.

Web3 Novato Série: Dicas de Desenvolvimento de Contratos que Aprendi com o Código do Uniswap

Combinação de dados on-chain e off-chain

Nem toda a informação precisa ser obtida da cadeia. Por exemplo, listas de pools de negociação, informações de pools, etc., podem ser armazenadas em bancos de dados comuns e sincronizadas periodicamente com a cadeia. As transações-chave são realizadas na cadeia, enquanto informações não críticas podem ser obtidas de forma mais eficiente para melhorar o desempenho e a eficiência.

Divisão de contratos e reutilização de contratos padrão

Grandes projetos geralmente incluem múltiplos contratos implementados na prática, mesmo que apenas um contrato seja implementado, ele pode ser dividido em vários contratos por meio de herança para manutenção. Ao mesmo tempo, utilizar contratos padrão existentes ( como o ERC721) pode aumentar a eficiência do desenvolvimento e simplificar a gestão.

Série para Novatos em Web3: Dicas de Desenvolvimento de Contratos que Aprendi com o Código do Uniswap

A prática é a melhor forma de aprender. Ao implementar manualmente uma versão simplificada de uma exchange descentralizada, não só se consegue entender melhor a implementação do código do Uniswap, como também se aprende mais sobre pontos de conhecimento em projetos reais. Espero que essas experiências compartilhadas ajudem na sua jornada de desenvolvimento de contratos.

UNI2.61%
Ver original
Esta página pode conter conteúdo de terceiros, que é fornecido apenas para fins informativos (não para representações/garantias) e não deve ser considerada como um endosso de suas opiniões pela Gate nem como aconselhamento financeiro ou profissional. Consulte a Isenção de responsabilidade para obter detalhes.
  • Recompensa
  • 7
  • Compartilhar
Comentário
0/400
LiquidityOraclevip
· 08-02 23:11
Integra mais um artigo introdutório sobre fritar arroz frio
Ver originalResponder0
WhaleWatchervip
· 08-02 19:29
É um pouco difícil de entender, quem pode explicar o create2?
Ver originalResponder0
RetailTherapistvip
· 07-31 02:40
Enviar isso não é melhor do que escrever um dex para fazer as pessoas de parvas.
Ver originalResponder0
gas_guzzlervip
· 07-31 02:40
Prever Endereço esta jogada é hilário, Santa Mãe uniswap
Ver originalResponder0
DeFiGraylingvip
· 07-31 02:35
Sem palavras, mais um treinamento que engana os novatos...
Ver originalResponder0
DEXRobinHoodvip
· 07-31 02:35
DOGE o pai do DOGE está certo! Sentar na prisão não é um sonho!
Ver originalResponder0
NightAirdroppervip
· 07-31 02:34
Falar durante meio dia não é tão saboroso quanto um Empréstimos Flash~
Ver originalResponder0
  • Marcar
Faça trade de criptomoedas em qualquer lugar e a qualquer hora
qrCode
Escaneie o código para baixar o app da Gate
Comunidade
Português (Brasil)
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)