Akıllı sözleşmeler geliştirmeyi öğrenmenize yardımcı olacak yedi büyük ipucu

Sözleşme Geliştirme Teknikleri ve Deneyim Paylaşımı

Son zamanlarda bir merkeziyetsiz borsa geliştirme eğitimi projesine katıldığımda, Uniswap V3'ün kodunu inceleyerek oldukça değerli sözleşme geliştirme teknikleri öğrendim. Defi sözleşme geliştirmeye yeni başlayan biri olarak, bu teknikler bana birçok ilham verdi; diğer sözleşme geliştirmeyi öğrenmek isteyen yeni başlayanlar için de faydalı olacağına inanıyorum.

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

Tahmin edilebilir sözleşme adresi

Genellikle dağıtılan sözleşmeler rastgele adresler alır, ancak bazı senaryolarda sözleşme adreslerini tahmin edebilmemiz gerekir. Uniswap, CREATE2 yöntemini kullanarak sözleşme oluşturur, salt parametresini ekleyerek oluşturulan sözleşme adresinin tahmin edilebilir olmasını sağlar. Bu, işlem izinlerini belirleme veya havuz adreslerini alma gibi senaryolarda oldukça faydalıdır.

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

Geri Çağırma Fonksiyonlarının Akıllıca Kullanımı

Bazı senaryolarında, sözleşmeler arasında karşılıklı çağrılar çok faydalıdır. Örneğin, Uniswap'ta, UniswapV3Pool sözleşmesinin swap yöntemini çağırdığınızda, swapCallback geri çağrılır ve hesaplanan gerçek gereken Token miktarını iletir. Çağrıyı yapan taraf, geri çağırmada Token'ı UniswapV3Pool'a aktarmalıdır; bu, swap yönteminin tam olarak yürütülmesini ve güvenliğini sağlar.

Hata ile Bilgi İletimi

Uniswap'ın Quoter sözleşmesinde, UniswapV3Pool'un swap yöntemini çalıştırmak için try-catch kullanılır. Bu, takas simülasyonu yaparak gerekli Token'ları tahmin etmek içindir; belirli hataları yakalayarak ve hata mesajlarını çözümleyerek gereken veriyi elde eder. Bu yöntem, tahmini işlem için swap yöntemini özel olarak değiştirmekten kaçınarak mantığı daha sade hale getirir.

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

Büyük sayı hesaplaması doğruluğu garanti eder

Uniswap'ta büyük miktarda hesaplama yapılmaktadır. Bölme işlemi sırasında hassasiyet kaybını önlemek için genellikle 96 bit sola kaydırma işlemi kullanılır; (, 2^96) ile çarpma işlemine karşılık gelir. Bu şekilde normal işlemler sırasında taşma olmadan hesaplama hassasiyeti sağlanabilir. Teorik olarak hala çok küçük bir hassasiyet kaybı olsa da, kabul edilebilir düzeydedir.

Paylaşım Yöntemi ile Kazanç Hesaplama

Her işlemde her bir LP için işlem ücretlerini kaydetmek için büyük miktarda Gaz harcamamak adına, Uniswap hisse senedi temettüsü benzeri bir yöntem kullanmaktadır. Sadece toplam işlem ücretini ve her birim likiditenin alacağı işlem ücretini kaydetmek yeterlidir, LP'ler çekim yaptıklarında sahip oldukları likiditeye göre alacakları işlem ücreti hesaplanabilir.

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

Zincir Üstü ve Zincir Altı Verilerin Birleştirilmesi

Tüm bilgilerin zincir üzerinden alınması gerekmez. Örneğin, işlem havuzu listesi, havuz bilgileri gibi veriler, düzenli olarak zincirden senkronize edilmek üzere normal bir veritabanında saklanabilir. Anahtar işlemler zincir üzerinde gerçekleştirilirken, anahtar bilgiler daha verimli yollarla elde edilebilir, bu da performansı ve verimliliği artırır.

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

Büyük projeler genellikle birden fazla gerçek dağıtım sözleşmesi içerir. Tek bir sözleşme dağıtılsa bile, miras alma yoluyla birden fazla sözleşmeye bölünerek bakım yapılabilir. Aynı zamanda, var olan standart sözleşmeler ( gibi ERC721) kullanmak geliştirme verimliliğini artırabilir ve yönetimi basitleştirebilir.

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

Uygulama, en iyi öğrenme yoludur. Basit bir merkeziyetsiz borsa oluşturmak için pratik yaparak, Uniswap'ın kod uygulamasını daha derinlemesine anlayabilir ve gerçek projelerdeki daha fazla bilgiyi öğrenebilirsiniz. Bu deneyim paylaşımının, sözleşme geliştirme yolculuğunuzda yardımcı olmasını umuyorum.

UNI2.38%
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
  • 7
  • Share
Comment
0/400
LiquidityOraclevip
· 08-02 23:11
Bir başka giriş niteliğinde soğuk pilav pişirme makalesi.
View OriginalReply0
WhaleWatchervip
· 08-02 19:29
Biraz zor anlaşılıyor, create2 hakkında bana bilgi verebilir misiniz?
View OriginalReply0
RetailTherapistvip
· 07-31 02:40
Bunu göndermektense bir dex yazıp insanların enayi yerine koymasını sağlamak daha iyi.
View OriginalReply0
gas_guzzlervip
· 07-31 02:40
Tahmin adresi bu hamleyle güldürdü, Meryem Uniswap.
View OriginalReply0
DeFiGraylingvip
· 07-31 02:35
Ağzım açık, yine bu tür çaylakları kandıran bir eğitim mi...
View OriginalReply0
DEXRobinHoodvip
· 07-31 02:35
DOGE babası haklı! Hapis yatmak bir hayal değil!
View OriginalReply0
NightAirdroppervip
· 07-31 02:34
Konuşmak yerine geri dönen Flaş Krediler daha cazip.~
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)