7 técnicas de desenvolvimento de contratos que te ajudarão a tornar-te um especialista em DEX

robot
Geração de resumo em curso

As habilidades e truques na desenvolvimento de contratos

Recentemente, ao estudar o desenvolvimento de exchanges descentralizadas, descobri algumas técnicas interessantes de desenvolvimento de contratos. Essas técnicas vêm de um estudo do código de uma DEX conhecida e devem ser muito úteis para iniciantes que desejam entrar no desenvolvimento de contratos inteligentes.

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

Endereço de contrato previsível

Normalmente, o endereço obtido ao implantar um contrato parece aleatório, sendo difícil de prever. No entanto, em certos cenários, precisamos deduzir o endereço do contrato através de informações de pares de troca, o que é muito útil para avaliar permissões de transação ou obter endereços de pools.

Pode-se criar contratos usando o método CREATE2 adicionando o parâmetro salt, tornando o endereço gerado previsível. A lógica de cálculo do novo endereço é: hash("0xFF", endereço do criador, salt, initcode).

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 callback

Em certos cenários, é útil que o contrato A chame o método do contrato B, e o B, por sua vez, faça uma chamada de retorno ao método do A. Por exemplo, durante uma transação, o contrato do pool chamará swapCallback, passando a quantidade real de Tokens necessários, e o chamador transferirá os Tokens durante a chamada de retorno. Isso garante a integridade e a segurança de toda a lógica da transação.

Transmitir informações através de exceções

Ao estimar uma transação, pode-se envolver a execução do método swap em um try-catch. Como a estimativa não resulta em uma troca real de Tokens, ocorrerá um erro. Pode-se lançar um erro especial no callback e, em seguida, capturá-lo e analisar os dados necessários a partir da mensagem de erro. Assim, não é necessário modificar especificamente o método swap para atender à necessidade de estimativa, tornando a lógica mais simples.

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

A solução de precisão para grandes números

Ao lidar com cálculos de preço e liquidez, para evitar a perda de precisão em operações de divisão, pode-se primeiro deslocar 96 bits para a esquerda (, o que equivale a multiplicar por 2^96), e depois realizar o cálculo. Dessa forma, é possível garantir a precisão sem transbordo. Embora, teoricamente, ainda haja uma perda de precisão na unidade mínima, essa perda é aceitável na prática.

Cálculo de lucros no modo Share

Ao registrar os ganhos de taxas de LP, não é necessário registrar para cada LP em cada transação, pois isso consumiria uma grande quantidade de Gas. Pode-se apenas registrar a taxa total e a taxa devida por unidade de liquidez, e o valor que pode ser retirado é calculado com base na liquidez mantida no momento da retirada. Isso é semelhante ao princípio de dividendos de ações.

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

Armazenamento de dados off-chain

Nem todas as informações precisam ser colocadas na blockchain ou obtidas a partir dela. Listas de pools de transações, informações sobre pools, etc., podem ser armazenadas em bancos de dados tradicionais e sincronizadas regularmente com a blockchain. Isso pode aumentar a eficiência de acesso e reduzir custos. Claro, transações importantes ainda precisam ser realizadas na blockchain.

Divisão e Reutilização de Contratos

É possível dividir um projeto em vários contratos implantáveis, ou dividir o código em vários contratos para manutenção através de herança. Ao mesmo tempo, deve-se aproveitar os contratos padrão existentes, como o ERC721, para aumentar a eficiência do desenvolvimento.

Ver mais teoria não é tão útil quanto praticar pessoalmente. Tentar implementar uma versão simples de um DEX pode te ajudar a entender mais profundamente as várias técnicas de desenvolvimento de contratos. Espero que estas dicas sejam úteis na sua jornada de desenvolvimento de contratos inteligentes.

Web3 Novato: Dicas de desenvolvimento de contratos que aprendi com o código do Uniswap

UNI-5.96%
Ver original
Esta página pode conter conteúdos de terceiros, que são fornecidos apenas para fins informativos (sem representações/garantias) e não devem ser considerados como uma aprovação dos seus pontos de vista pela Gate, nem como aconselhamento financeiro ou profissional. Consulte a Declaração de exoneração de responsabilidade para obter mais informações.
  • Recompensa
  • 8
  • Partilhar
Comentar
0/400
CryptoGoldminevip
· 11h atrás
Os contratos são a chave, a estabilidade traz ROI.
Ver originalResponder0
DecentralizedEldervip
· 11h atrás
Sempre preso a aprender solidity
Ver originalResponder0
OnchainDetectivevip
· 12h atrás
Muito bom, codifique primeiro e depois alta repentina!
Ver originalResponder0
HalfBuddhaMoneyvip
· 12h atrás
Com estas algumas dicas, é garantido que você conseguirá aproveitar os benefícios do DEX.
Ver originalResponder0
GasFeeVictimvip
· 12h atrás
Basta um endereço de previsão, é suficiente.
Ver originalResponder0
0xSleepDeprivedvip
· 12h atrás
Leitura obrigatória para desenvolvedores!! É isso mesmo!!!
Ver originalResponder0
StrawberryIcevip
· 12h atrás
Desenvolvedor novato, considere os pontos básicos.
Ver originalResponder0
LightningPacketLossvip
· 12h atrás
Novato pergunta como começar de novo.
Ver originalResponder0
Negocie cripto em qualquer lugar e a qualquer hora
qrCode
Digitalizar para transferir a aplicação Gate
Novidades
Português (Portugal)
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)