Uniswap sözleşme geliştirme yedi büyük ipucu Çaylaklar için okunması gereken kılavuz

robot
Abstract generation in progress

Web3 Çaylak Rehberi: Uniswap sözleşme geliştirme ipuçları paylaşımı

Son zamanlarda merkeziyetsiz bir borsa geliştirme kılavuzu yazarken, Uniswap V3'ün kod uygulamasını inceledim ve birçok ilginç bilgi öğrendim. Defi sözleşmeleri geliştirme konusunda ilk kez deneme yapan bir geliştirici olarak, bu teknikler sözleşme geliştirmek isteyen Çaylaklar için çok yardımcı olacaktır.

Web3 Çaylak serisi: Uniswap kodundan öğrendiğim akıllı sözleşme geliştirme ipuçları

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

Genellikle dağıtılan sözleşme adresleri rastgele görünüyor çünkü nonce ile ilgili. Ancak bazı durumlarda, işlem çiftleri ve ilgili bilgiler aracılığıyla sözleşme adresini çıkarıyoruz. Uniswap, oluşturulan adresin tahmin edilebilir olmasını sağlamak için CREATE2 yöntemini kullanarak sözleşme oluşturur ve bir salt parametresi ekler. Yeni adresin oluşturulma mantığı: hash("0xFF", oluşturucu adresi, salt, initcode).

Web3 Çaylak Serisi: Uniswap kodundan öğrendiğim sözleşme geliştirme ipuçları

Geri çağırma fonksiyonlarını etkili kullanma

Bazı senaryolarda, sözleşmeler arasındaki karşılıklı çağrılar çok faydalıdır. Örneğin, bir ticaret platformunun swap yöntemini çağırdığınızda, swapCallback'i geri arayarak, gerekli Token miktarını iletecektir. Çağrıyı yapan taraf, geri arama sırasında gerekli Token'ları ticaret havuzuna yatırmalıdır, böylece tüm işlem mantığının bütünlüğü ve güvenliği sağlanır.

Hata ile Bilgi İletimi

Tahmini işlemler sırasında bazı platformlar, swap yönteminin yürütülmesini try catch ile sarmalar. Tahminin gerçek bir Token değişimi yaratmayacağı için hata oluşur. Geri çağırma fonksiyonunda özel bir hata fırlatarak, ardından hatayı yakalayıp hata bilgilerini çözümleyerek gerekli verilere ulaşılabilir. Bu yöntem, tahmini işlemler için swap yöntemini değiştirme ihtiyacını ortadan kaldırır.

Büyük sayı işlemleri kesinlik garantisi

Fiyat ve likidite hesaplamalarında, bölme işleminin neden olduğu hassasiyet kaybını önlemek için, sola kaydırma işlemi (2^96 ile çarpmaya eşdeğer) kullanılabilir. Bu şekilde, normal işlemlerde taşma olmaması durumunda hassasiyet garanti altına alınır. Teorik olarak hala küçük bir hassasiyet kaybı olsa da, bu artık kabul edilebilir.

Web3 Çaylak Serisi: Uniswap kodundan öğrendiğim sözleşme geliştirme ipuçları

Share mekanizması kazancı hesaplama

Gas tüketimini azaltmak için, her işlemde her likidite sağlayıcısı için işlem ücretlerini kaydetmek mümkün değildir. Toplam işlem ücreti ve her likiditenin alması gereken işlem ücreti kaydedilebilir, LP çekimi sırasında sahip olunan likiditeye göre çekilebilecek işlem ücreti hesaplanır. Bu, hisse senedi temettü mekanizmasına benzer.

Web3 Çaylak Serisi: Uniswap kodundan öğrendiğim sözleşme geliştirme ipuçları

Zincir Dışı Verilerin Mantıklı Kullanımı

Tüm bilgiler zincir üstünden alınmak zorunda değildir. Örneğin, işlem havuzu listesi, işlem havuzu bilgileri gibi veriler geleneksel veritabanlarında saklanabilir ve düzenli olarak zincir üstünden senkronize edilebilir. Bazı blok zinciri RPC sağlayıcıları, verileri daha hızlı ve ekonomik bir şekilde almak için gelişmiş arayüzler sunar.

Sözleşme Bölme ve Standart Sözleşme Uygulamaları

Proje, birden fazla gerçek dağıtılmış sözleşme içerebilir veya tek bir sözleşmeyi miras alma yöntemiyle birden fazla parçaya bölebilir. Mevcut standart sözleşmeleri (örneğin, ERC721) kullanmak geliştirme verimliliğini artırabilir. Örneğin, bazı platformlar pozisyonları yönetmek için ERC721 sözleşmesini kullanır, bu da yönetimi kolaylaştırır ve geliştirme verimliliğini artırır.

Pratik, en iyi öğrenme yöntemidir. Basit bir merkeziyetsiz borsa uygulaması yapmayı deneyerek, yaygın DEX'in kod uygulamasını daha derinlemesine anlayabilir ve gerçek projelerde daha fazla bilgi edinebilirsiniz. İlgilenen geliştiricilerin ilgili açık kaynak kurslarına başvurması ve basit bir borsa geliştirmeyi adım adım tamamlaması önerilir.

Web3 Çaylak Serisi: Uniswap kodundan öğrendiğim sözleşme geliştirme ipuçları

UNI-10.3%
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
BagHolderTillRetirevip
· 07-08 01:52
Sözleşme bana başımı ağrıttı.
View OriginalReply0
RugDocScientistvip
· 07-05 04:24
Bir şeyler var, gerçekten özetleyebilen bir abimiz.
View OriginalReply0
SeasonedInvestorvip
· 07-05 04:20
Hehe Çaylak dostu, öğrenemezsen öğrenme.
View OriginalReply0
SatoshiLegendvip
· 07-05 04:17
Teknik detaylar tam olarak tamamlanmamış, izleme aşamasında hala birçok açık var... v2 kaynak kodunu referans almanızı öneririm.
View OriginalReply0
governance_ghostvip
· 07-05 04:03
değerli öngörüler koleksiyonu, sonraki öğrenim için
View OriginalReply0
UnluckyValidatorvip
· 07-05 04:00
Bu kadar fazla detaya daha fazla dayanamayacağım.
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)