Akıllı Sözleşme Yazma
Chiliz Chain uyumlu Solidity sözleşmeleri yazın: önerilen Solidity ve EVM sürümleri, CAP-20 token ondalıkları, gas mekanizması ve Ethereum'dan EVM farkları.
Chiliz Chain üzerinde bir dApp oluşturmaya karar verdiğiniz andan itibaren, blockchain'imizin özelliklerini göz önünde bulundurmanız gerekir.
Chiliz Chain EVM uyumlu olsa da, bunu Ethereum ile tamamen aynı şekilde kullanmak; özellikle token ondalıkları ve gas mekanizması açısından kullanılabilirlik sorunlarına yol açabilir.
Gelin keşfedelim!
Ön Koşullar
Ortam
Sözleşmenizi yazmaya başlamadan önce ortamınızın hazır olduğundan emin olun.
Öncelikle, geliştirme için Spicy Testnet veya üretim için Chiliz Chain Mainnet üzerinde yapılandırılmış bir cüzdanınız olmalıdır.
Chiliz Chain'e Bağlanmaİkinci olarak, hem Testnet hem de Mainnet'te gas deploy ücretlerini ödemek için $CHZ'ye ihtiyacınız olacak. Mainnet $CHZ'yi herhangi bir kripto borsasından satın alabilirken, Testnet tokenleri için faucet'lere başvurabilirsiniz.
Ücretsiz Testnet Tokeni EdinmeAraçlar açısından Hardhat veya Remix'e güvenebilirsiniz. Örneğin:
Remix ile DeploySon olarak, Chiliz Chain sözleşmeleri Solidity diliyle yazılmaktadır:
Önerilen Solidity ve EVM sürümlerini kullanın:
Fan Token'ları / CAP-20
Chiliz Chain'in en özgün yönü, Fan Token'ları için kullanılan CAP-20 standardıdır.
CAP-20, teknik olarak ERC-20 standardıyla eşdeğerdir. 2026 Ondalıklı Fan Token migrasyonundan bu yana CAP-20 token'ları, tıpkı standart ERC-20 token'ları gibi 18 ondalık hassasiyet kullanır; bu nedenle Fan Token bakiyeleri, transferleri ve toplam arzı token'ın en küçük biriminde ifade edilir ve kesirli miktarları destekler.
Fan Tokenlar HakkındaAkıllı Sözleşme Yazımında En İyi Uygulamalar
Savaştan Geçmiş Kütüphaneler Kullanın (OpenZeppelin)
Sözleşmenizi sıfırdan oluşturmaya başlamayın. En etkili tek güvenlik uygulaması, güvenlik açıklarının riskini azaltmak amacıyla topluluk tarafından denetlenmiş standartlar üzerine kodunuzu inşa etmektir.
Chiliz Chain geliştirmesi için OpenZeppelin Contracts kullanmanızı şiddetle tavsiye ederiz. Token sözleşmeleri için güvenli ve topluluk tarafından onaylanmış uygulamalar sunarlar.
Standart sözleşmeleri kullanarak token'ları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 tartışmasızdır.
"Checks-Effects-Interactions" (Kontrol-Etki-Etkileşim) Kalıbı
Bu, Yeniden Giriş Saldırılarına karşı birincil savunmanızdır. Fonksiyonlarınızı her zaman tam olarak şu sırayla yapılandırın:
Kontroller: Girdileri ve koşulları doğrulayın (örn.
requireifadeleri).Etkiler: Sözleşme durumunu güncelleyin (örn. bakiyeleri azaltın).
Etkileşimler: Diğer sözleşmelerle etkileşime girin veya fon gönderin (örn.
transfer).
Güçlü Erişim Kontrolü
Hassas fonksiyonları hiçbir zaman korumasız bırakmayın. Bir fonksiyon token baskıyorsa, ücret değiştiriyorsa veya mantığı güncelleştiriyorsa, bu fonksiyon kısıtlanmalıdır.
Basit: Tek yöneticili sözleşmeler için
Ownablekullanın.Karmaşık: Birden fazla rol gerektiren sözleşmeler için
AccessControlkullanın (örn.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 adres kontrolü yapın (
address(0)).Transfer sırasında sıfır miktarları kontrol edin.
Birden fazla dizi iletiyorsanız 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ı açısından bazı "yerel kurallar" geçerlidir.
CAP-20 Uyumluluğu (Fan Token'ları)
Fan Token'larıyla etkileşen bir sözleşme yazıyorsanız (örn. $PSG veya $BAR için bir Staking Pool), sabit bir değer varsaymak yerine ondalıklarını dikkate alın.
2026 Ondalıklı Fan Token migrasyonundan bu yana Fan Token'lar 18 ondalık kullanır; dolayısıyla çoğu ERC-20 token'ında olduğu gibi 1 Token = 10^18 units. Eski Fan Token sözleşmeleri 0 ondalık (1 Token = 1 unit) kullanıyordu ve bazılarına zincir üzerinde hâlâ rastlanabilir.
Bir token'ın ondalıklarını sabit kodlamayın. Sözleşmeniz bir token ister 18 ondalık ister eski bir 0 ondalık yapılandırması kullansın çalışsın diye
token.decimals()değerini dinamik olarak okuyun.Miktarları
1e18varsaymak yerinedecimals()fonksiyonunun döndürdüğü değeri kullanarak ölçekleyin.
Chiliz'de Gas Optimizasyonu
Chiliz Chain'deki işlemler Ethereum'a kıyasla önemli ölçüde daha ucuzdur; ancak optimize edilmemiş kod, yüksek trafikli etkinlikler sırasında (örn. canlı bir maç sırasında) yine de tıkanıklığa veya başarısız işlemlere yol açabilir.
Gas tasarrufu için üç yol:
Özel Hatalar Kullanın:
requireiçindeki uzun metin mesajları yerine, gas tasarrufu sağlamak içinerrortanımlamaları kullanın.Durum değişkenlerinizi 32 baytlık slotlara sığacak şekilde sıralayın. Mümkün olan yerlerde
uint128,addressvebooldeğerlerini yan yana yerleştirin.Sözleşmenin kendisi tarafından hiçbir zaman dahili olarak çağrılmayan fonksiyonlar için
externaltercih edin.
Son güncelleme
Bu yararlı oldu mu?