Sözleşme Geliştirmenin Harika Fikirleri: Uniswap Kodundan İlham Almak
Son zamanlarda, bir merkeziyetsiz borsa geliştirme kılavuzu yazarken Uniswap V3'ün kod uygulamasını derinlemesine inceledim ve oldukça fazla bilgi edindim. Daha önce basit bir NFT sözleşmesi geliştirmiş bir geliştirici olarak, bu benim Defi sözleşmeleri alanına ilk adımım. İşte sözleşme geliştirme konusunda yeni olanlar için ilham verici olacağını düşündüğüm bazı küçük ipuçları.
Tahmin Edilebilir Sözleşme Dağıtım Adresi
Genellikle, sözleşme dağıtıldıktan sonra elde edilen adres rastgele gibi görünür, çünkü nonce ile ilişkilidir. Ancak, bazı senaryolarda, işlem çiftleri ve ilgili bilgileri kullanarak sözleşme adresini tahmin etmemiz gerekir. Uniswap, oluşturulan sözleşme adresinin tahmin edilebilir olmasını sağlamak için CREATE2 yöntemini kullanarak sözleşme oluşturur ve salt parametresini ekler. Bu yöntem, işlem yetkisini belirlemede veya havuz adresini elde etmede oldukça faydalıdır.
Geri Çağırma Fonksiyonlarını Akıllıca Kullanma
Solidity'de, sözleşmeler birbirlerini çağırabilir. Uniswap'ın swap yöntemi, tüm işlem mantığının eksiksiz bir şekilde yürütülmesini sağlamak için geri çağırma mekanizmasını kullanır, güvenliği sağlamak için karmaşık değişken kayıtlarına ihtiyaç duyulmaz.
Anormal İletim Bilgisi ve İşlem Tahmini
Uniswap'ın Quoter sözleşmesinde, swap yöntemini çalıştırmak için try-catch ile sararak belirli hataları yakalayarak işlem için gereken Token'ı tahmin eder. Bu yöntem hem pratiktir hem de sade, tahmin ihtiyacı için swap yöntemini ayrı bir şekilde değiştirmeye gerek yoktur.
Büyük Sayılar Kesinlik Sorununu Çözme
Uniswap, hesaplama sürecinde genellikle 96 bit sola kaydırma (2^96 ile çarpma ile eşdeğer) işlemini kullanarak, taşma olmaksızın hassasiyeti garanti eder. Bu yöntem, fiyat ve likidite hesaplamalarını işlerken özellikle etkilidir.
Share modu kazanç hesaplama
Her işlemde her likidite sağlayıcısına (LP) işlem ücretini kaydetmekten kaçınmak için, Uniswap hisse senedi temettüsü benzeri bir yöntem benimsemiştir. Toplam işlem ücretini ve her likiditenin alması gereken işlem ücretini kaydederek, LP'ler çekim sırasında sahip oldukları likiditeye göre alacakları kazancı hesaplayabilir.
Zincir Üstü Bilgi Elde Etme Stratejisi
Tüm bilgilerin zincir üzerinde alınması gerekmez. Örneğin, işlem havuzu listesi, işlem havuzu bilgileri gibi veriler geleneksel veritabanlarında saklanabilir ve belirli aralıklarla zincirden senkronize edilebilir. Bu yöntem verimliliği ve performansı önemli ölçüde artırabilir.
Sözleşme Bölme ve Standart Sözleşme Kullanımı
Büyük projeler, birden fazla gerçek dağıtılmış sözleşme içerebilir veya bir sözleşmeyi miras alma yoluyla birden fazla parçaya ayırabilir. Uniswap'ın NonfungiblePositionManager sözleşmesi, birden fazla sözleşmeyi miras alan ve OpenZeppelin'in standart ERC721 sözleşmesini kullanan harika bir örnektir.
Pratik, gerçek bilgiyi ortaya çıkarır. Basit bir merkeziyetsiz borsa oluşturmayı kendin yaparak, Uniswap'ın kod uygulamasını daha derinlemesine anlayacak ve gerçek projelerde değerli deneyimler kazanacaksınız. İster Web3 meraklısı olun ister Defi proje geliştiricisi, bu ipuçlarının size yardımcı olacağına inanıyorum.
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.
12 Likes
Reward
12
7
Share
Comment
0/400
LuckyBlindCat
· 07-19 21:04
Bu kodu anlıyor musun?
View OriginalReply0
AirdropHuntress
· 07-19 01:08
Araştırmaya değer, kod biraz şeyler içeriyor.
View OriginalReply0
MEVEye
· 07-18 19:39
Biraz ilginç, sözleşme ipuçlarını keşfetmek
View OriginalReply0
UncleWhale
· 07-18 19:39
Önce kaydedin, sonra geliştirme için gerekli olacak.
View OriginalReply0
MetaMaximalist
· 07-18 19:34
protokol sürdürülebilirliği üzerine büyüleyici bir bakış açısı. ama aslında bu web3 101 konuları...
View OriginalReply0
SpeakWithHatOn
· 07-18 19:23
Öğrenirken saçlarımı kaybetmek zorundayım, çok zor.
Uniswap kod analizi: 7 sözleşme geliştirme ipucu Merkezi Olmayan Finans projelerine yardımcı olur
Sözleşme Geliştirmenin Harika Fikirleri: Uniswap Kodundan İlham Almak
Son zamanlarda, bir merkeziyetsiz borsa geliştirme kılavuzu yazarken Uniswap V3'ün kod uygulamasını derinlemesine inceledim ve oldukça fazla bilgi edindim. Daha önce basit bir NFT sözleşmesi geliştirmiş bir geliştirici olarak, bu benim Defi sözleşmeleri alanına ilk adımım. İşte sözleşme geliştirme konusunda yeni olanlar için ilham verici olacağını düşündüğüm bazı küçük ipuçları.
Tahmin Edilebilir Sözleşme Dağıtım Adresi
Genellikle, sözleşme dağıtıldıktan sonra elde edilen adres rastgele gibi görünür, çünkü nonce ile ilişkilidir. Ancak, bazı senaryolarda, işlem çiftleri ve ilgili bilgileri kullanarak sözleşme adresini tahmin etmemiz gerekir. Uniswap, oluşturulan sözleşme adresinin tahmin edilebilir olmasını sağlamak için CREATE2 yöntemini kullanarak sözleşme oluşturur ve salt parametresini ekler. Bu yöntem, işlem yetkisini belirlemede veya havuz adresini elde etmede oldukça faydalıdır.
Geri Çağırma Fonksiyonlarını Akıllıca Kullanma
Solidity'de, sözleşmeler birbirlerini çağırabilir. Uniswap'ın swap yöntemi, tüm işlem mantığının eksiksiz bir şekilde yürütülmesini sağlamak için geri çağırma mekanizmasını kullanır, güvenliği sağlamak için karmaşık değişken kayıtlarına ihtiyaç duyulmaz.
Anormal İletim Bilgisi ve İşlem Tahmini
Uniswap'ın Quoter sözleşmesinde, swap yöntemini çalıştırmak için try-catch ile sararak belirli hataları yakalayarak işlem için gereken Token'ı tahmin eder. Bu yöntem hem pratiktir hem de sade, tahmin ihtiyacı için swap yöntemini ayrı bir şekilde değiştirmeye gerek yoktur.
Büyük Sayılar Kesinlik Sorununu Çözme
Uniswap, hesaplama sürecinde genellikle 96 bit sola kaydırma (2^96 ile çarpma ile eşdeğer) işlemini kullanarak, taşma olmaksızın hassasiyeti garanti eder. Bu yöntem, fiyat ve likidite hesaplamalarını işlerken özellikle etkilidir.
Share modu kazanç hesaplama
Her işlemde her likidite sağlayıcısına (LP) işlem ücretini kaydetmekten kaçınmak için, Uniswap hisse senedi temettüsü benzeri bir yöntem benimsemiştir. Toplam işlem ücretini ve her likiditenin alması gereken işlem ücretini kaydederek, LP'ler çekim sırasında sahip oldukları likiditeye göre alacakları kazancı hesaplayabilir.
Zincir Üstü Bilgi Elde Etme Stratejisi
Tüm bilgilerin zincir üzerinde alınması gerekmez. Örneğin, işlem havuzu listesi, işlem havuzu bilgileri gibi veriler geleneksel veritabanlarında saklanabilir ve belirli aralıklarla zincirden senkronize edilebilir. Bu yöntem verimliliği ve performansı önemli ölçüde artırabilir.
Sözleşme Bölme ve Standart Sözleşme Kullanımı
Büyük projeler, birden fazla gerçek dağıtılmış sözleşme içerebilir veya bir sözleşmeyi miras alma yoluyla birden fazla parçaya ayırabilir. Uniswap'ın NonfungiblePositionManager sözleşmesi, birden fazla sözleşmeyi miras alan ve OpenZeppelin'in standart ERC721 sözleşmesini kullanan harika bir örnektir.
Pratik, gerçek bilgiyi ortaya çıkarır. Basit bir merkeziyetsiz borsa oluşturmayı kendin yaparak, Uniswap'ın kod uygulamasını daha derinlemesine anlayacak ve gerçek projelerde değerli deneyimler kazanacaksınız. İster Web3 meraklısı olun ister Defi proje geliştiricisi, bu ipuçlarının size yardımcı olacağına inanıyorum.