DEX projelerine yardımcı olacak 7 pratik akıllı sözleşmeler geliştirme ipucu

robot
Abstract generation in progress

Sözleşme Geliştirme Küçük İpuçları Paylaşımı

Son zamanlarda bir merkeziyetsiz borsa projesi geliştirirken, bazı tanınmış DEX'lerin kod uygulamalarını inceledim ve birçok ilginç sözleşme geliştirme tekniği öğrendim. DeFi geliştirmeye yeni başlayan biri olarak, bu teknikler bana birçok ilham verdi ve akıllı sözleşme geliştirmek isteyen diğer arkadaşlara da yardımcı olacağına inanıyorum.

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

Tahmin Sözleşmesi Adresi

Genellikle dağıtılan sözleşme adresleri nonce ile ilgili olduğu için rastgele gibi görünür. Ancak belirli senaryolar altında, sözleşme adresini işlem eş bilgilerini kullanarak çıkarmamız gerekir. Bu, sözleşmeyi CREATE2 yöntemiyle oluştururken salt parametresini ekleyerek gerçekleştirilebilir. Bu şekilde oluşturulan adres tahmin edilebilir olup, "yeni adres = hash('0xFF', oluşturucu adresi, salt, initcode)" mantığını takip eder.

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

Geri Çağırma Fonksiyonlarını Kullanma

Bazı senaryolarda, Kontrat A'nın Kontrat B'nin metodunu çağırması ve B'nin çağrılan metodunda A'ya geri dönmesi çok faydalıdır. Örneğin, DEX'te, ticaret havuzu kontratının swap metodunu çağırdığınızda, swapCallback'i geri çağırır ve gerekli Token miktarını iletir. Çağrıcı, geri çağırmada gerekli Token'ı ticaret havuzuna aktarmalıdır, bu da swap metodunun eksiksiz bir şekilde yürütülmesini ve güvenliğini sağlar.

Hata ile bilgi iletme

Tahmini işlem yaparken, swap yönteminin çalıştırılmasını try-catch ile sarmalayabilirsiniz. Çünkü tahmin sırasında Token'lar gerçekten değişim yapılmayacak, bu yüzden hata verecektir. Geri çağırma fonksiyonunda özel bir hata fırlatılabilir ve ardından gerekli bilgiler yakalanıp ayrıştırılabilir. Bu yöntem, tahmin ihtiyacı 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ı işleme hassasiyeti sorunu

Fiyat ve likidite hesaplamalarıyla ilgili olarak, bölme işleminin neden olduğu hassasiyet kaybını önlemek için, sayıları önce 96 bit sola kaydırmak mümkündür. (, 2^96) ile çarpmakla eşdeğerdir ve ardından hesaplama yapılabilir. Teorik olarak hala küçük bir hassasiyet kaybı olsa da, kabul edilebilir bir aralık içindedir.

Paylaşım Yöntemi ile Kazanç Hesaplama

Likidite sağlayıcılarının işlem ücretlerinden elde ettiği kazançlar için her işlemde kayıt tutulması gerekmez. Toplam işlem ücretinin ve her birim likiditenin alması gereken işlem ücretinin kaydedilmesi yeterlidir, LP çekim sırasında sahip olduğu likiditeye göre çekilebilir miktar hesaplanır. Bu, hisse senedi temettüleri prensibine benzerdir.

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

Zincir Üstü ve Zincir Altı Veri Birleşimi

Tüm bilgilerin zincire alınması veya zincirden alınması gerekmez. Örneğin, işlem havuzu listesi, bilgiler gibi veriler geleneksel veritabanlarında saklanabilir ve düzenli olarak zincirden senkronize edilebilir. Bu, verimliliği artırabilir ve maliyetleri düşürebilir. Elbette kritik işlemler hala zincirde yapılmalıdır.

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

Büyük projeler, birden fazla gerçek dağıtım sözleşmesine ayrılabilir veya kodu miras alarak bölünebilir. Aynı zamanda ERC721 gibi mevcut standart sözleşmeleri kullanarak geliştirme verimliliğini artırabilirsiniz. Örneğin, NFT kullanarak likidite pozisyonlarını yönetmek.

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

Bu becerileri derinlemesine anlamanın en iyi yolu, basit bir DEX geliştirmek için kendinize el atmanızdır. Uygulamada, çeşitli tasarım fikirlerini daha derinlemesine anlayacak ve daha fazla pratik bilgi edineceksiniz. Umarım bu paylaşımlar size ilham ve yardımcı olur.

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
  • 2
  • Share
Comment
0/400
AirdropHustlervip
· 07-19 11:31
Bu geliştirme becerileri, Broş için az kazanç ama çok satış demek.
View OriginalReply0
0xSherlockvip
· 07-16 20:55
Standart acemi eğitimi işte.
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)