Akıllı Sözleşme Yazın

Chiliz Chain üzerinde bir dApp oluşturmaya karar verdiğiniz andan itibaren, blok zincirimizin özelliklerini göz önünde bulundurmanız gerekir.

Chiliz Chain EVM uyumlu olsa da, onu tam olarak Ethereum gibi ele almak kullanılabilirlik sorunlarına yol açabilir; özellikle token ondalık basamakları ve gas mekanikleri konusunda.

Hadi keşfedelim!

Önkoşullar

Ortam

Sözleşmenizi yazmaya başlamadan önce ortamınızın hazır olduğundan emin olun.

Öncelikle, Spicy Testnet (geliştirme için) veya Chiliz Chain Mainnet (prodüksiyon için) için yapılandırılmış bir cüzdana sahip olmalısınız.

Chiliz Chain'e bağlanın

İkincisi, Testnet ve Mainnet üzerinde gas dağıtımı için $CHZ'ye ihtiyacınız olacak. Mainnet $CHZ'yi herhangi bir kripto borsasından satın alabileceğiniz gibi Testnet tokenleri için kranlara (faucet) güvenebilirsiniz.

Ücretsiz Testnet Tokenleri Edinin

Araçlar açısından Hardhat veya Remix'e güvenebilirsiniz. Örneğin bakınız:

Remix ile dağıtın

Son olarak, Chiliz Chain sözleşmeleri Solidity dili ile yazılır:

Fan Tokenleri / CAP-20

Chiliz Chain'in en belirgin yönü, Fan Tokenler için kullanılan CAP-20 standardıdır.

Teknik olarak kod bazında ERC-20 standardı ile aynı olsa da, CAP-20 tokenlerin ondalık yapılandırması farklıdır. Kısacası: 0 ondalık kullanır; normal ERC-20 tokenler 18 ondalık kullanır.

Fan Tokenler hakkında

Bu nedenle, 18 ondalıklı bir Fan Token dağıtırsanız, ekosistem cüzdanlarında düzgün görüntülenmeyebilir veya gelecekteki Socios.com entegrasyonlarıyla uyumlu olmayabilir.

Akıllı sözleşme yazımında en iyi uygulamalar

Test Edilmiş Kütüphaneleri Kullanın (OpenZeppelin)

Sözleşmenizi sıfırdan yazmaya başlamayın. En etkili güvenlik uygulaması, kodunuzu toplum tarafından denetlenmiş standartlara dayandırmaktır; böylece açıklara karşı riski azaltırsınız

Chiliz Chain geliştirme için şiddetle tavsiye ediyoruz: OpenZeppelin Sözleşmeleri. Token sözleşmeleri için güvenli ve topluluk tarafından doğrulanmış uygulamalar sağlarlar.

Standart sözleşmeleri kullanarak, tokenlerinizin bilinen cüzdanlarla (MetaMask gibi) ve Chiliz ekosistemiyle (Socios.com) uyumlu olmasını sağlarsınız.

Genel EVM En İyi Uygulamaları

Zincir ne olursa olsun, bu üç desen güvenli Solidity geliştirme için vazgeçilmezdir.

"Checks-Effects-Interactions" Deseni

Bu, sizin birincil savunmanızdır Yinelenen Çağrı (Reentrancy) Saldırılarına. Fonksiyonlarınızı bu tam sırayla yapılandırın:

  1. Kontroller: Girdileri ve koşulları doğrulayın (ör., require ifadeleri).

  2. Etkiler: Sözleşme durumunu güncelleyin (ör., bakiyeleri azaltın).

  3. Etkileşimler: Diğer sözleşmelerle etkileşime geçin veya fon gönderin (ör., transfer).

Güçlü Erişim Kontrolü

Hassas fonksiyonları 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: Tek yöneticili sözleşmeler için Ownable kullanın.

  • Karmaşık: Birden çok role ihtiyaç duyan sözleşmeler için AccessControl kullanın (ö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 için kontrol edin (address(0)).

  • Transfer yaparken sıfır tutarları kontrol edin.

  • Birden fazla dizi geçiriliyorsa dizi uzunluklarının eşleştiğini doğrulayın.

  • vb.

Chiliz'e Özgü Uygulama Detayları

Chiliz Chain EVM uyumlu olsa da, belirli "yerel kurallar" geçerlidir; özellikle token ondalıkları ve EVM sürümleri konusunda.

CAP-20 Uyumluluğu (Fan Tokenler)

Bir sözleşme Fan Tokenlerle etkileşiyorsa (ör., $PSG veya $BAR için bir Staking Havuzu), 0 ondalıkla başa çıkmanız gerekir.

Bu şu anlama gelir:

  • Varsaymayın ki 1 Token = 10^18 birim. Fan Tokenler için, 1 Token = 1 birim.

  • Sözleşmeniz genel amaçlı olacaksa matematiğinizde 1e18 sabitini sabit kodlamaktan kaçının. Bunun yerine token.decimals() fonksiyonunu dinamik olarak kullanın.

EVM Sürümü ve Derleyici

Chiliz Chain "Shanghai" EVM sürümü ile uyumludur. Önerilen Solidity sürümü 0.8.24.

Chiliz'de Gas Optimizasyonu

Chiliz Chain üzerindeki işlemler Ethereum'a göre önemli ölçüde daha ucuzdur, ancak optimize edilmemiş kod yüksek trafikli etkinliklerde (ör., canlı maç sırasında) tıkanıklığa veya başarısız işlemlere yol açabilir.

Gas tasarrufu sağlamak için üç yol:

  • Özel Hatalar Kullanın: Uzun string mesajları yerine require, gas tasarrufu için error tanımlarını kullanın.

  • Durum değişkenlerinizi 32 baytlık slotlara sığacak şekilde sıralayın. Mümkün olduğunda uint128, addressve bool değişkenlerini yan yana koyun.

  • Tercih edin external sözleşmenin kendisi tarafından dahili olarak hiç çağrılmayan fonksiyonlar için.

Last updated

Was this helpful?