For the complete documentation index, see llms.txt. This page is also available as Markdown.

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 Tokenleri Edinme

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

Remix ile Deploy

Son olarak, Chiliz Chain sözleşmeleri Solidity diliyle yazılmaktadır:

Önerilen Solidity ve EVM sürümlerini kullanın:

Chiliz Chain için önerilen Solidity ve EVM sürümleri:

  • Solidity derleyici sürümü: 0.8.30 (veya daha düşük)

  • Hedef EVM sürümü: prague

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.

Teknik olarak kod açısından ERC-20 standardıyla özdeş olsa da CAP-20 token'larının ondalıklar için özel bir yapılandırması vardır. Kısaca: 18 ondalık kullanan standart ERC-20 token'larının aksine 0 ondalık kullanır.

Fan Token'lar Hakkında

Bu nedenle, 18 ondalık ile bir Fan Token deploy ederseniz, ekosistem cüzdanlarında doğru görüntülenmeyebilir veya gelecekteki Socios.com entegrasyonlarıyla uyumsuz olabilir.

Akı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:

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

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

  3. 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 Ownable kullanın.

  • Karmaşık: Birden fazla rol gerektiren sözleşmeler için AccessControl kullanı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), 0 ondalığı işlemeniz gerekir.

Bu şu anlama gelir:

  • 1 Token = 10^18 birim varsayımında bulunmayın. Fan Token'lar için 1 Token = 1 birim.

  • Sözleşmeniz genel amaçlıysa matematiklerinize 1e18 sabit kodlamaktan kaçının. token.decimals() fonksiyonunu dinamik olarak kullanın.

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: require içindeki uzun metin mesajları yerine, gas tasarrufu sağlamak için error tanımlamaları kullanın.

  • Durum değişkenlerinizi 32 baytlık slotlara sığacak şekilde sıralayın. Mümkün olan yerlerde uint128, address ve bool değerlerini yan yana yerleştirin.

  • Sözleşmenin kendisi tarafından hiçbir zaman dahili olarak çağrılmayan fonksiyonlar için external tercih edin.

Son güncelleme

Bu yararlı oldu mu?