Akıllı Sözleşme Yazın
Chiliz Chain üzerinde bir dApp oluşturmaya karar verdiğiniz andan itibaren, blok zincirimizin özelliklerini dikkate almanız gerekir.
Chiliz Chain EVM uyumlu olsa da, onu Ethereum ile birebir aynı şekilde ele almak, özellikle token ondalıkları ve gas mekanikleri konusunda kullanılabilirlik sorunlarına yol açabilir.
Hadi keşfedelim!
Ön Koşullar
Ortam
Sözleşmenizi yazmaya başlamadan önce, ortamınızın hazır olduğundan emin olun.
İlk olarak, Spicy Testnet (geliştirme için) veya Chiliz Chain Mainnet (üretim için) için yapılandırılmış bir cüzdana sahip olmalısınız.
Chiliz Chain'e bağlanınİkinci olarak, hem Testnet hem de Mainnet üzerinde gas dağıtım ücretlerini ödemek için $CHZ’ye ihtiyacınız olacak. Mainnet $CHZ’yi herhangi bir kripto borsasından satın alabilirsiniz; Testnet tokenları için ise faucet’lere güvenebilirsiniz.
Ücretsiz Testnet Token'ları EdininAraçlar açısından Hardhat veya Remix’e güvenebilirsiniz. Örneğin şunlara bakın:
Remix ile dağıtınSon olarak, Chiliz Chain sözleşmeleri Solidity dilinde yazılır:
Fan Tokenları / CAP-20
Chiliz Chain’in en özgün yönü, Fan Tokenları için kullanılan CAP-20 standardıdır.
Teknik olarak kod açısından ERC-20 standardıyla aynı olsa da, CAP-20 tokenlarının ondalık sayıları için özel bir yapılandırması vardır. Kısacası: 0 ondalık kullanır; normal ERC-20 tokenları ise 18 ondalık kullanır.
Fan Token'lar HakkındaBu nedenle, 18 ondalıklı bir Fan Token dağıtırsanız, ekosistem cüzdanlarında doğru görüntülenmeyebilir veya gelecekteki Socios.com entegrasyonlarıyla uyumlu olmayabilir.
Bir akıllı sözleşme yazarken en iyi uygulamalar
Savaşta Test Edilmiş Kütüphaneleri Kullanın (OpenZeppelin)
Sözleşmenizi sıfırdan oluşturmaya başlamayın. En etkili güvenlik uygulaması, güvenlik açıkları riskini azaltmak için kodunuzu topluluk tarafından denetlenmiş standartlara dayandırmaktır
Chiliz Chain geliştirmesi için, şunu kullanmanızı güçlü şekilde öneriyoruz OpenZeppelin Contracts. Bunlar, token sözleşmeleri için güvenli ve topluluk tarafından doğrulanmış uygulamalar sağlar.
Standart sözleşmeler kullanarak, tokenlarınızın bilinen cüzdanlarla (MetaMask gibi) ve Chiliz ekosistemiyle (Socios.com) uyumlu olmasını sağlarsınız.
Genel EVM En İyi Uygulamaları
Zincirden bağımsız olarak, güvenli Solidity geliştirmesi için bu üç kalıp pazarlık konusu değildir.
"Kontroller-Etkiler-Etkileşimler" Kalıbı
Bu, şuna karşı birincil savunmanızdır Yeniden Giriş Saldırıları. Fonksiyonlarınızı her zaman tam olarak şu sırayla yapılandırın:
Kontroller: Girdileri ve koşulları doğrulayın (ör.
requireifadeleri).Etkiler: Sözleşme durumunu güncelleyin (ör. bakiyeleri azaltın).
Etkileşimler: Diğer sözleşmelerle etkileşime girin veya fon gönderin (ör.
transfer).
Sağlam Erişim Kontrolü
Hassas fonksiyonları asla korumasız bırakmayın. Bir fonksiyon token basıyor, ücretleri değiştiriyor veya mantığı yükseltiyorsa, kısıtlanmış olmalıdır.
Basit: Şunu kullanın
Ownabletek yöneticiye sahip sözleşmeler için.Karmaşık: Şunu kullanın
AccessControlbirden çok rol gerektiren sözleşmeler için (ör.MINTER_ROLE,ADMIN_ROLE).
Girdi Doğrulama
Tüm girdilerin kötü niyetli olduğunu varsayın. Parametreleri doğrulamak için fonksiyonlarınızın en başında require() ifadelerini kullanın.
Örneğin:
Sıfır adresleri kontrol edin (
address(0)).Aktarım yaparken sıfır miktarları kontrol edin.
Birden fazla dizi aktarılıyorsa dizi uzunluklarının eşleştiğini doğrulayın.
vb.
Chiliz’e Özgü Uygulama Ayrıntıları
Chiliz Chain EVM uyumlu olsa da, özellikle token ondalıkları ve EVM sürümleriyle ilgili belirli "yerel kurallar" geçerlidir.
CAP-20 Uyumluluğu (Fan Tokenları)
Fan Tokenlarıyla etkileşen bir sözleşme yazıyorsanız (ör. $PSG veya $BAR için bir Staking Havuzu), 0 ondalığı işlemeniz gerekir.
Bu şu anlama gelir:
Şunu varsaymayın
1 Token = 10^18 birim. Fan Tokenları için,1 Token = 1 birim.Genel amaçlı bir sözleşme yazıyorsanız, matematik işlemlerinizde
1e18değerini sabit kodlamaktan kaçının. Bunun yerinetoken.decimals()fonksiyonunu dinamik olarak kullanın.
EVM Sürümü ve Derleyici
Chiliz Chain, "Shanghai" EVM sürümüyle uyumludur.
Önerilen Solidity Sürümü 0.8.24.
Chiliz’de Gas Optimizasyonu
Chiliz Chain üzerindeki işlemler Ethereum’a kıyasla önemli ölçüde daha ucuzdur, ancak optimize edilmemiş kod yine de yüksek trafikli etkinlikler sırasında (ör. canlı bir maç sırasında) tıkanıklığa veya başarısız işlemlere yol açabilir.
Gas tasarrufu için üç yol şunlardır:
Özel Hataları Kullanın: uzun metinli hata mesajları yerine
require, şunu kullanınerrortanımlarını kullanarak gas tasarrufu yapın.Durum değişkenlerinizi 32 baytlık yuvalara sığacak şekilde sıralayın.
uint128,address, veboolmümkün olduğunca yan yana yerleştirin.Şunu tercih edin
haricisözleşmenin kendi içinde asla dahili olarak çağrılmayan fonksiyonlar için.
Son güncelleme
Bu yararlı oldu mu?