Uniswap kodunun sırları: 7 büyük akıllı sözleşmeler geliştirme ipucu detaylı açıklaması

robot
Abstract generation in progress

Uniswap kodundan öğrenilen akıllı sözleşme geliştirme ipuçları

Son zamanlarda bir merkeziyetsiz borsa geliştirme kılavuzu yazarken, Uniswap V3'ün kod uygulamasını inceledim ve birçok değerli bilgi edindim. Defi sözleşmesi geliştirmeye ilk kez giriş yapan bir geliştirici olarak, bu teknikler sözleşme geliştirmeyi öğrenmek isteyen yeni başlayanlar için çok faydalı olacaktır.

Web3 Yeni Başlayanlar Serisi: Uniswap Kodundan Öğrendiğim Sözleşme Geliştirme İpuçları

Tahmin Edilebilir Sözleşme Dağıtım Adresi

Genellikle dağıtılan sözleşmelerin elde edilen adresleri nonce ile ilgili olduğundan rastgele görünür. Ancak bazı durumlarda, işlem çiftleri ve ilgili bilgileri kullanarak sözleşme adresini çıkarma ihtiyacı duyuyoruz. Uniswap, oluşturulan sözleşme adresinin tahmin edilebilir olmasını sağlamak için CREATE2 yöntemini kullanarak salt parametresi ekler. Adres oluşturma mantığı şudur: Yeni adres = hash("0xFF", oluşturucu adresi, salt, initcode).

![Web3 Yeni Başlayanlar Serisi: Uniswap Kodundan Öğrendiğim Sözleşme Geliştirme İpuçları](https://img-cdn.gateio.im/webp-social/moments-0aaa61a4d43aba7fdeddbc55e3665305.webp01

Geri Çağırma Fonksiyonlarını Akıllıca Kullanma

Bazı senaryolarda, sözleşmeler arasındaki karşılıklı çağrılar ve geri çağırmalar çok faydalıdır. Örneğin, Uniswap'ın swap yönteminde, swapCallback geri çağrılır ve gerekli Token miktarı iletilir. Çağrıyı yapan taraf, geri çağırma sırasında gerekli Token'ı havuza aktarmalıdır, böylece tüm işlem mantığının bütünlüğü ve güvenliği sağlanır.

Hata ile bilgi iletme, try catch kullanarak işlemi tahmin etme

Uniswap'ın Quoter sözleşmesinde, swap yöntemini tahmin etmek için try catch ile sarmalanmış bir şekilde çalıştırılır. Geri çağırma fonksiyonu içinde özel bir hata fırlatarak, ardından hatayı yakalayıp hata bilgisini çözümleyerek, tahmin işlevi gerçekleştirilmiştir; bu sayede tahmin ihtiyacı için swap yönteminin özel olarak değiştirilmesine gerek kalmamıştır.

Büyük Sayılar Hassasiyet Sorununu Çözer

Uniswap'taki hesaplama mantığı sık sık 96 bit sola kaydırma (2^96 ile çarpma) işlemini kullanmaktadır. Bu yöntem, normal işlemlerin taşma yapmadan gerçekleştirilmesini sağlarken aynı zamanda hassasiyeti de garanti eder. Teorik olarak hala çok küçük bir hassasiyet kaybı olsa da, pratik uygulamada kabul edilebilir durumdadır.

![Web3 Yeni Başlayanlar Serisi: Uniswap Kodlarından Öğrendiğim Sözleşme Geliştirme İpuçları])https://img-cdn.gateio.im/webp-social/moments-b0c3d4eb7e8ca88cc4cfc9476a34437a.webp(

Share mekanizması kazancı hesaplama

LP'nin işlem ücreti gelirlerini verimli bir şekilde kaydetmek için Uniswap, hisse benzeri bir yöntem kullanmıştır. Toplam işlem ücretini ve her birim likiditenin dağıtılması gereken işlem ücretini kaydederek, LP'ler çekim yaptıklarında yalnızca sahip oldukları likiditeye göre çekilebilecek işlem ücretini hesaplamakta, bu da gaz tüketimini büyük ölçüde azaltmaktadır.

![Web3 Yeni Başlayanlar Serisi: Uniswap Kodundan Öğrendiğim Sözleşme Geliştirme İpuçları])https://img-cdn.gateio.im/webp-social/moments-45e66af69435e6d4412ae506e77ab893.webp(

Zincir Dışı Bilgilerin Akıllıca Kullanımı

Zincir üzerindeki depolamanın yüksek maliyetlerini göz önünde bulundurarak, tüm bilgilerin zincire alınması veya zincirden alınması gerekmemektedir. Örneğin, işlem havuzu listeleri, havuz bilgileri vb. geleneksel veritabanlarında saklanabilir ve düzenli olarak zincir üzerindeki verilerle senkronize edilebilir. Bu yöntem verimliliği artırabilir ve maliyetleri düşürebilir.

Sözleşme Bölme ve Standart Sözleşme Yeniden Kullanımı

Bir proje, birden fazla gerçek dağıtılan sözleşme içerebilir; tek bir sözleşme dağıtılmış olsa bile, kodu miras alma yoluyla birden fazla sözleşmeye ayırarak bakım yapılabilir. Ayrıca, mevcut standart sözleşmeleri (örneğin ERC721) kullanmak geliştirme verimliliğini artırabilir ve sözleşmenin güvenilirliğini güçlendirebilir.

Sonuç

Pratik en iyi öğrenme yöntemidir. Basit bir merkeziyetsiz borsa uygulaması oluşturarak Uniswap'ın kod uygulamasını daha derinlemesine anlayabilir ve gerçek projelerdeki değerli deneyimleri öğrenebilirsiniz. Web3 ve Defi proje geliştirme konusuna derinlemesine ilgi duyan geliştiriciler için, uygulamalı kurslara katılmak harika bir seçenek olacaktır.

![Web3 Yeni Başlangıç Serisi: Uniswap Kodundan Öğrendiğim Sözleşme Geliştirme İpuçları])https://img-cdn.gateio.im/webp-social/moments-f95ddc9d89809cf11dbe65b9bafda157.webp(

UNI2.32%
View Original
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
  • Reward
  • 6
  • Share
Comment
0/400
GateUser-9ad11037vip
· 15h ago
Çaylak bir pozisyon girin tutorialı
View OriginalReply0
WalletManagervip
· 15h ago
Sözleşmeden önceki titiz denetim, temel mühendisliktir... Bir dalga öğren.
View OriginalReply0
SmartContractRebelvip
· 15h ago
Geliştirici artık eski kazanımlarını yemeye başladı.
View OriginalReply0
GateUser-a606bf0cvip
· 15h ago
Bu mu? Çok temel görünüyor.
View OriginalReply0
BlockchainBouncervip
· 15h ago
Uçup gidiyor, anlayamıyorum.
View OriginalReply0
GasGuzzlervip
· 16h ago
On kez daha anlatsan da yazamam.
View OriginalReply0
Trade Crypto Anywhere Anytime
qrCode
Scan to download Gate app
Community
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)