Análise do código Uniswap: 7 dicas de desenvolvimento de contratos para ajudar projetos de Finanças Descentralizadas

robot
Geração do resumo em andamento

Ideias inovadoras para o desenvolvimento de contratos: inspirando-se no código do Uniswap

Recentemente, enquanto escrevia um tutorial de desenvolvimento de uma exchange descentralizada, estudei profundamente a implementação do código do Uniswap V3 e aprendi bastante. Como um desenvolvedor que já criou contratos NFT simples, esta é a minha primeira incursão no campo dos contratos DeFi. Abaixo estão algumas dicas que resumi, que acredito que serão inspiradoras para novatos no 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 implantação de contrato previsível

Normalmente, o endereço obtido após a implantação do contrato parece aleatório, pois está relacionado ao nonce. No entanto, em certos cenários, precisamos inferir o endereço do contrato através de pares de negociação e informações relacionadas. O Uniswap cria contratos utilizando o método CREATE2, adicionando o parâmetro salt, tornando o endereço do contrato gerado previsível. Este método é muito útil na determinação de permissões de negociação ou na obtenção do endereço do pool.

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

Uso inteligente de funções de callback

Em Solidity, os contratos podem chamar uns aos outros. O método swap da Uniswap utiliza um mecanismo de callback para garantir a execução completa da lógica da transação, sem a necessidade de registros de variáveis complicados para garantir a segurança.

Informação de transmissão anormal e previsão de transações

No contrato Quoter da Uniswap, a execução do método swap é envolvida em um bloco try-catch, capturando erros específicos para estimar os tokens necessários para a transação. Este método é prático e conciso, não sendo necessário modificar o método swap apenas para prever a demanda.

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

Resolução de problemas de precisão com grandes números

O Uniswap usa frequentemente a operação de deslocamento à esquerda de 96 bits (equivalente a multiplicar por 2^96) durante os cálculos, para garantir precisão sem estouros. Este método é especialmente eficaz ao lidar com cálculos de preços e liquidez.

Cálculo de Lucros no Modo de Compartilhamento

Para evitar a necessidade de registrar a taxa de transação para cada fornecedor de liquidez (LP) a cada transação, o Uniswap adotou um método semelhante ao pagamento de dividendos de ações. Ao registrar a taxa total e a taxa que cada liquidez deve receber, os LPs podem calcular os lucros a que têm direito no momento da retirada com base na liquidez que possuem.

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

Estratégia de Obtenção de Informações na Blockchain

Nem todas as informações precisam ser obtidas da cadeia. Por exemplo, listas de pools de negociação, informações de pools de negociação, etc., podem ser armazenadas em bancos de dados tradicionais e sincronizadas periodicamente com a cadeia. Este método pode aumentar significativamente a eficiência e o desempenho.

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

Grandes projetos podem incluir vários contratos realmente implantados ou dividir um contrato em vários por meio de herança. O contrato NonfungiblePositionManager da Uniswap é um ótimo exemplo, pois herdou vários contratos e utilizou o contrato ERC721 padrão da OpenZeppelin.

A prática traz o verdadeiro conhecimento. Ao implementar manualmente uma versão simplificada de uma exchange descentralizada, você entenderá mais profundamente a implementação do código do Uniswap e ganhará uma experiência valiosa em projetos reais. Quer você seja um entusiasta do Web3 ou um desenvolvedor de projetos DeFi, acredito que essas dicas serão úteis para você.

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

UNI0.19%
DEFI-1.9%
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
  • Repostar
  • Compartilhar
Comentário
0/400
LuckyBlindCatvip
· 07-19 21:04
Este código é compreensível?
Ver originalResponder0
AirdropHuntressvip
· 07-19 01:08
Vale a pena estudar, o código tem algo.
Ver originalResponder0
MEVEyevip
· 07-18 19:39
Um pouco interessante: segredos e dicas sobre contratos.
Ver originalResponder0
UncleWhalevip
· 07-18 19:39
Guardei para depois, será útil para aprender a desenvolver.
Ver originalResponder0
MetaMaximalistvip
· 07-18 19:34
uma visão fascinante sobre a sustentabilidade do protocolo. mas para ser honesto, isso é coisa de web3 101...
Ver originalResponder0
SpeakWithHatOnvip
· 07-18 19:23
Aprendendo, aprendendo, tudo faz cair cabelo, é muito difícil.
Ver originalResponder0
FUD_Vaccinatedvip
· 07-18 19:11
É bem hardcore, mas realmente útil.
Ver originalResponder0
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)