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ı Edinin

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

Remix ile dağıtın

Son 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ında

Bu 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:

  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 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 Ownable tek yöneticiye sahip sözleşmeler için.

  • Karmaşık: Şunu kullanın AccessControl birden ç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 1e18 değerini 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ü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ın error tanımlarını kullanarak gas tasarrufu yapın.

  • Durum değişkenlerinizi 32 baytlık yuvalara sığacak şekilde sıralayın. uint128, address, ve bool mümkün olduğunca yan yana yerleştirin.

  • Şunu tercih edin harici sözleşmenin kendi içinde asla dahili olarak çağrılmayan fonksiyonlar için.

Son güncelleme

Bu yararlı oldu mu?