Les sept conseils pour le développement de contrats Uniswap Guide à lire absolument pour les Débutants

robot
Création du résumé en cours

Guide du Débutant Web3 : Partage de conseils sur le développement de contrats Uniswap

Récemment, en écrivant un tutoriel sur le développement d'un échange décentralisé, j'ai consulté le code d'Uniswap V3 et appris de nombreux points intéressants. En tant que développeur qui essaie pour la première fois de développer un contrat Defi, ces techniques seront très utiles pour les débutants qui souhaitent apprendre le développement de contrats.

Web3 Débutant série : Les astuces de développement de contrats que j'ai apprises à partir du code Uniswap

Adresse de déploiement de contrat prévisible

Les adresses de contrat généralement déployées semblent aléatoires en raison du nonce. Cependant, dans certains cas, nous devons déduire l'adresse du contrat à partir des paires de transactions et des informations connexes. Uniswap utilise la méthode CREATE2 pour créer des contrats, en ajoutant un paramètre salt pour rendre l'adresse générée prévisible. La logique de génération de la nouvelle adresse est : hash("0xFF", adresse du créateur, salt, initcode).

![Web3 Débutant série : Les petits trucs de développement de contrats que j'ai appris du code Uniswap](https://img-cdn.gateio.im/webp-social/moments-0aaa61a4d43aba7fdeddbc55e3665305.webp01

Utilisation astucieuse des fonctions de rappel

Dans certains cas, l'appel mutuel entre les contrats est très utile. Par exemple, lorsque l'on appelle la méthode swap d'une plateforme de trading, cela déclenche un retour d'appel swapCallback, en passant le nombre de Token réellement nécessaire. L'appelant doit transférer le Token requis dans la piscine de trading lors du retour d'appel, afin de garantir l'intégrité et la sécurité de l'ensemble de la logique de transaction.

Utiliser l'exception pour transmettre des informations

Lors de l'estimation des transactions, certaines plateformes enveloppent l'exécution de la méthode swap avec un try catch. Étant donné que l'estimation ne génère pas réellement d'échange de Token, cela déclenche une erreur. En lançant une erreur spéciale dans la fonction de rappel, puis en capturant et en analysant les informations sur l'erreur, on peut obtenir les données nécessaires. Cette méthode évite le besoin de modifier la méthode swap pour l'estimation des transactions.

Garantir la précision des calculs de grands nombres

Lors du calcul des prix et de la liquidité, pour éviter la perte de précision due aux opérations de division, on peut utiliser l'opération de décalage à gauche (équivalente à multiplier par 2^96). Cela garantit la précision tant que les transactions normales ne débordent pas. Bien qu'il existe toujours une légère perte de précision sur le plan théorique, elle est considérée comme acceptable.

![Web3 Débutant série : Les astuces de développement de contrats que j'ai apprises du code Uniswap])https://img-cdn.gateio.im/webp-social/moments-b0c3d4eb7e8ca88cc4cfc9476a34437a.webp(

Calcul des revenus du mécanisme de partage

Pour économiser sur la consommation de Gas, il n'est pas possible d'enregistrer les frais de transaction pour chaque fournisseur de liquidité à chaque transaction. Il est possible d'enregistrer les frais totaux et les frais à attribuer à chaque liquidité, et lors du retrait des LP, les frais récupérables sont calculés en fonction de la liquidité détenue. Cela ressemble à un mécanisme de dividende d'actions.

![Web3 Débutant série : les petites astuces de développement de contrats que j'ai apprises du code Uniswap])https://img-cdn.gateio.im/webp-social/moments-45e66af69435e6d4412ae506e77ab893.webp(

Utilisation raisonnable des données hors chaîne

Toutes les informations n'ont pas besoin d'être récupérées sur la chaîne. Par exemple, la liste des pools de transactions, les informations sur les pools de transactions, etc. peuvent être stockées dans une base de données traditionnelle et synchronisées régulièrement avec la chaîne. Certains fournisseurs de RPC blockchain proposent des interfaces avancées qui permettent d'obtenir des données plus rapidement et à moindre coût.

Fractionnement de contrat et application de contrat standard

Le projet peut inclure plusieurs contrats déployés en pratique, ou diviser un contrat unique en plusieurs par héritage. L'utilisation de contrats standard existants (comme ERC721) peut améliorer l'efficacité du développement. Par exemple, certaines plateformes utilisent des contrats ERC721 pour gérer des positions, ce qui facilite la gestion et améliore l'efficacité du développement.

La pratique est la meilleure méthode d'apprentissage. Essayer de réaliser une version simplifiée d'une bourse décentralisée peut permettre de mieux comprendre l'implémentation du code des DEX populaires et d'apprendre davantage de points de connaissance dans des projets réels. Il est conseillé aux développeurs intéressés de consulter des cours open source pertinents et de compléter le développement de la bourse simplifiée étape par étape.

![Web3 Débutant série : Les petites astuces de développement de contrats que j'ai apprises du code Uniswap])https://img-cdn.gateio.im/webp-social/moments-f95ddc9d89809cf11dbe65b9bafda157.webp(

UNI-9.8%
Voir l'original
Cette page peut inclure du contenu de tiers fourni à des fins d'information uniquement. Gate ne garantit ni l'exactitude ni la validité de ces contenus, n’endosse pas les opinions exprimées, et ne fournit aucun conseil financier ou professionnel à travers ces informations. Voir la section Avertissement pour plus de détails.
  • Récompense
  • 6
  • Partager
Commentaire
0/400
BagHolderTillRetirevip
· 07-08 01:52
Les contrats me donnent mal à la tête.
Voir l'originalRépondre0
RugDocScientistvip
· 07-05 04:24
C'est un peu impressionnant, le grand frère sait vraiment résumer.
Voir l'originalRépondre0
SeasonedInvestorvip
· 07-05 04:20
Hehe Débutant amical n'apprend pas, alors ne l'apprends pas.
Voir l'originalRépondre0
SatoshiLegendvip
· 07-05 04:17
Les détails techniques ne sont pas entièrement complets, il existe encore plusieurs vulnérabilités au niveau de la traçabilité... Il est conseillé de se référer au code source de v2.
Voir l'originalRépondre0
governance_ghostvip
· 07-05 04:03
informations précieuses à conserver pour une utilisation future
Voir l'originalRépondre0
UnluckyValidatorvip
· 07-05 04:00
Je ne peux plus supporter autant de détails.
Voir l'originalRépondre0
  • Épingler
Trader les cryptos partout et à tout moment
qrCode
Scan pour télécharger Gate app
Communauté
Français (Afrique)
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)