Chiliz Chain'den Base'e köprüleme
Chiliz Chain’den Base’e mevcut bir token’ı köprülemek için, iki ayrı akıllı sözleşme yazıp dağıtmanız gerekir: token’ın zaten bulunduğu zincirde (Chiliz Chain) bir OFT Adapter ve hedef zincirde (Base) bir Native OFT.
LayerZero'nun kendi OFT sözleşmeleri için QuickStart sunduğunuve ayrıca nasıl Chiliz Chain’den başka bir EVM zincirine mint etmek örneğin Base. O eğitimde hedef zincir olarak Optimism kullanılıyor, ancak bunu şu zincirle değiştirebilirsiniz: Base ayrıntıları.
Ön Koşullar
Bu kılavuz aşağıdakileri gerektirir:
Chiliz Chain üzerinde bir ERC20 token sözleşme adresi.
Hem Chiliz Chain hem de Base ile çalışacak şekilde kurulmuş bir Web3 cüzdanı (MetaMask gibi).
Sözleşme dağıtımları ile mesaj gönderme için gereken gas ücretlerini ödeyecek kadar her zincirde yeterli gas tokenı.
Chiliz Chain’de: CHZ tokenları.
Base üzerinde: ETH tokenları.
Kullanacağız Hardhat geliştirme ortamı olarak ve Node/npx.
1. Adım: Sözleşme Geliştirme
Hazırlanması OFTAdapter Chiliz Chain üzerinde
OFTAdapter Chiliz Chain üzerindeBu hazırlık adımıdır, hemen dağıtım yapmayın! 3. adımda dağıtım yapacaksınız.
Şu OFTAdapter sözleşme, mevcut token’ınız için bir kilit kutusu gibi davranır. Kullanıcılar token’larını Chiliz Chain’den dışarı köprülediğinde, bu sözleşme orijinal ERC20 token’ları kilitler.
Şu adla yeni bir dosya oluşturun: ChilizTokenAdapter.sol sözleşmenizi contracts klasörüne koyun:
Gördüğünüz gibi bu sözleşme LayerZero OFT Adapter sözleşmesinive ayrıca standart bir Ownable.sol sözleşmesini genişletiyor; böylece yönetim anahtarları veriliyor. Her ikisine de ihtiyacınız var; böylece siz ve yalnızca siz, zincirleri güvenli bir şekilde birbirine bağlayabilirsiniz.
Bunu Chiliz Chain Mainnet’e dağıtırken, mevcut token’ınızın sözleşme adresini şu parametre olarak vermelisiniz: _token ve Chiliz Endpoint V2 adresini (0x6F475642a6e85809B1c36Fa62763669b1b48DD5B) _lzEndpoint.
Chiliz Chain için mevcut tüm endpoint'leri burada görün:
Hazırlanması OFT Base üzerinde
OFT Base üzerindeToken henüz Base üzerinde yerel olarak mevcut olmadığından, standart bir OFT sözleşmesi dağıtmanız gerekir. Bu sözleşme, Chiliz’e dağıtılmış OFT Adapter’dan geçerli bir mesaj aldığında yeni token’lar mint etme yetkisine sahiptir ve kullanıcılar geri köprü yaptığında bunları burn eder.
Şu adla yeni bir dosya oluşturun: BaseTokenOFT.sol sözleşmenizi contracts klasörüne koyun:
Gördüğünüz gibi bu sözleşme LayerZero OFT sözleşmesini ve ayrıca standart bir Ownable.sol sözleşmesini, yukarıda belirtilen nedenlerle.
Bunu Base’e dağıtırken, kullanıcıları karıştırmamak için _name ve _symbol alanlarının Chiliz Chain üzerindeki orijinal token’ınızla eşleştiğinden emin olun. Base Endpoint V2 adresini (0x1a44076050125825900e736c501f859c50fE728c) _lzEndpoint.
Base için mevcut tüm endpoint’leri burada görün:
olarak vereceksiniz
Sözleşmeleriniz hazır olduğunda, LayerZero araçlarına bunların nasıl bağlandığını söylemeniz gerekir. Bu, Hardhat projenizin kök dizininde bulunan bir layerzero.config.ts dosyası kullanılarak yapılır.
Bu yapılandırma dosyası, zincirler arası mimariniz için bir plan görevi görür. Dağıtılmış akıllı sözleşmelerinizi ilgili LayerZero Endpoint ID'leri (EID'ler) ile eşler ve aralarındaki yolları (bağlantıları) tanımlar.
Şu olarak biçimlendirilmesini gerektirir. LayerZero V2 Hardhat toolbox bunu, Base58 Solana Adapter Program ID’nizi çözümleyip onu standart EVM formatına doldurarak otomatik olarak yönetir. Simple Config Generator
yapılandırma kablolamasını oluşturmak için önerilen yoldur; çünkü çift yönlü kablolamayı otomatikleştirir ve önerilen güvenlik yapılandırmalarını altyapıda uygular. layerzero.config.ts dosyanızı Hardhat projenizin kök dizininde oluşturun veya güncelleyin:
3. Adım: Dağıtım İş Akışı
Sözleşmeleriniz yazıldıktan ve layerzero.config.ts hazırlandıktan sonra, sözleşmeleri ilgili ağlara dağıtma zamanı gelmiştir. LayerZero V2 araç seti, dağıtımları verimli şekilde yönetmek için hardhat-deploy eklentiye dayanır.
Projenizin deploy/ dizin: biri Chiliz Chain Mainnet için, biri de Base Mainnet için.
Chiliz Adapter Dağıtım Betiği
şu adda bir dosya oluşturun 01_deploy_chiliz_adapter.ts klasörünüzde. deploy/ klasörü. Bu betik, mevcut token adresinizi ve Chiliz Endpoint V2 adresini kurucuya iletir.
Base OFT Dağıtım Betiği
ikinci bir dosya oluşturun 02_deploy_base_oft.ts klasörünüzde. deploy/ klasörü. Bu betik, Base üzerinde yeni Native OFT’yi başlatır.
Dağıtımların Yürütülmesi
şunu yaptığınızdan emin olun hardhat.config.ts hem Chiliz Chain hem de Base için RPC URL’lerinin ve özel anahtarların doğru şekilde yapılandırıldığını.
Sözleşmeleri dağıtmak için terminalinizde aşağıdaki komutları çalıştırın:
Dağıtımlar tamamlandıktan sonra Hardhat, sözleşme adreslerini bir deployments/ klasörüne kaydedecektir. Bir sonraki adımda wiring komutunu çalıştırdığımızda LayerZero araçları bu adresleri otomatik olarak okuyacaktır.
4. Adım: Wiring ve Peering
Bu aşamada, ChilizTokenAdapter ve BaseTokenOFT sözleşmeler her zincirde dağıtılmıştır, ancak tamamen birbirlerinden yalıtılmıştır.
Base sözleşmesi token mint etmesini söyleyen bir mesaj alırsa, mesajın gerçekten şu kaynaktan geldiğini bilmesi gerekir: sizin Chiliz üzerindeki Adapter’dan, kötü niyetli bir aktörden değil.
Sözleşmeleri akranlar olarak kriptografik biçimde "kablaglamak" yoluyla bu güveni tesis etmelisiniz.
Bu, wire komutunu çalıştırarak yapılır; bu komut hem Chiliz hem de Base üzerinde işlemler oluşturur ve yürütür.
Kaputun Altında Ne Oluyor?
Tam bir LayerZero V2 yol yapılandırması aslında her zincirde 6 işlem gerektirir:
setSendLibrary: Mesaj göndermekten sorumlu LayerZero MessageLib'i atar (örneğin, V2 Send Library'yi kullanacak şekilde yapılandırır).setReceiveLibrary: Mesaj almaktan sorumlu MessageLib'i atar. (BirgracePeriodiçerir, genellikle şu değere ayarlanır0).setConfig(Send Library): Giden mesajlar için belirli Decentralized Verifier Networks (DVN'ler) ve Executor'ları ayarlar.setConfig(Receive Library): Gelen mesajları doğrulamak için gereken belirli DVN'leri ayarlar.setEnforcedOptions: gerekli yürütme gas limitlerini belirler. Bir kullanıcı Chiliz Chain’den bir mesaj gönderdiğinde, hedef gas ücretini peşin öder. Zorunlu seçeneklerin ayarlanması, LayerZero Executor’ın işlemi Chiliz Chain üzerinde başarılı şekilde işleyebilmesi için yeterli gas ödemelerini sağlar.setPeer: Güvenilir bir sözleşme adresine bir hedef Endpoint ID’si (EID) bağlar. Chiliz Chain sözleşmesine Base sözleşmesine güvenmesini, Base sözleşmesine de Chiliz Chain sözleşmesine güvenmesini söylemelisiniz.
Wire Görevini Yürütme
Terminalinizde aşağıdaki komutu çalıştırın:
Araç zinciri gerekli parametreleri otomatik olarak hesaplayacak, yürütmek üzere olduğu işlemlerin tablosunu size gösterecek ve bunları dağıtıcı cüzdanınızı kullanarak Chiliz ve Base'e gönderecektir.
İşlemler her iki ağda da onaylandıktan sonra, token köprünüz resmen canlıya alınmış ve tamamen yapılandırılmış olur! Chiliz Adapter artık Base’e mint komutları göndermeye yetkilidir ve Base de Chiliz’e geri unlock komutları göndermeye yetkilidir.
5. Adım: İşletim ve Test
Sözleşmeleriniz dağıtılıp güvenli bir şekilde birbirine bağlandığında, token’ınız artık omnichain olur. Son adım, Chiliz Chain Mainnet’ten Base Mainnet’e zincirler arası bir transfer gerçekleştirmektir.
1) Çapraz Zincir Transferini Yürütme
LayerZero V2 araç seti, OFT transferlerini doğrudan terminalinizden test etmek için yerleşik bir Hardhat görevi sağlar. Bu komut, zincirler arası gas ücretini tahmin eder, cüzdanınızdan $CHZ (kaynak zincirdeki yerel gas token’ı) olarak ücret alır ve transferi başlatır.
Çünkü ChilizTokenAdapter mevcut Fan Token’larınızı kilitlemek için izin gerekir, bir ERC-20 approve() işlemi gereklidir.
LayerZero CLI bunu algılar ve mesajı göndermeden önce onayı otomatik olarak işler.
Aşağıdaki komutu çalıştırın:
Bu komutun yaptığı şey:
Chiliz Mainnet’i (
30409) ve Base Mainnet’i (30184) yapılandırmanızda arar.LayerZero Executor tarafından gerekli olan çapraz zincir ücretini fiyatlandırır.
şunu çağırır
send()fonksiyonunu Chiliz Adapter’ınızda bulur.Adapter 10 tokenı kilitler ve LayerZero Endpoint'e bir paket gönderir.
2) Paketin LayerZero Scan üzerinde Takibi
Çapraz zincir işlemleri asenkron çalışır. Chiliz işleminiz birkaç saniye içinde onaylansa da, mesajın yine de Base üzerinde doğrulanıp yürütülmesi gerekir.
Solana’dan köprüleme, iki tamamen farklı mutabakat mekanizması arasında çeviri yapmayı ve EVM’de yürütmeden önce işlemi SVM üzerinde kesinleştirmeyi içerdiğinden, asenkron gecikme normaldir.
Bu yolculuğu gerçek zamanlı izlemek için, CLI çıktısında görünen LayerZero Scan bağlantısına tıklayın.
Gas Limitlerini Ayarlama
Gas limitlerini ayarlamak son derece önemlidir; bunu yapmamak çapraz zincir mesajlarınızın hedef ağda başarısız olmasına neden olabilir.
Bir kullanıcı Chiliz Chain’den Base’e bir token köprülediğinde, gas ücretini her iki zincirleri için Chiliz üzerinde tek bir işlemde peşin olarak öder ( $CHZ). LayerZero ardından bu ücretin bir kısmını, Base üzerinde mint işlemini yürütmek için gereken gerçek ETH gas’ını ödemek için kullanır.
LayerZero'nun başarılı şekilde işlemesi için yeterli gas'a sahip olmasını sağlamak için lzReceive fonksiyonunu, hedef zincirdeki bir "Out of Gas" hatası nedeniyle işlemin geri dönmemesi için Enforced Options ayarlamalısınız. Bunlar ayarlanmazsa, işlem hedef zincirde geri dönebilir.
Seçenekleri Yapılandırma
Bu seçenek layerzero.config.ts dosyanızda ayarlanır. connections dizisini güncelleyerek enforcedOptions her yol için bloğu dahil edin:
Parametrelerin açıklaması:
msgType: 1: Standart bir token transferini temsil eder.msgType: 2"composed" çağrılar için kullanılır (örneğin, bir tokenı köprüleyip tek tıkla hemen stake etmek).optionType: 1: Executor'a yalnızcalzReceivefonksiyonunu yürütmesini söyler.gas: 200000: Standart OFT mint ve unlock işlemleri için güvenli bir temel gas limitidir. Bunu, dağıtılmış sözleşmelerinizin özel gas tüketimine göre ayarlayabilirsiniz.
Bu seçeneği zincirleri zaten kabloladıktan sonra ayarladıysanız, seçenekler artık yerindeyken aynı komutu kullanarak yeniden kablolayabilirsiniz:
Araçlar değişiklikleri otomatik olarak algılayacak ve bir setEnforcedOptions() işlemini hem Chiliz hem de Base üzerindeki sözleşmelerinize gönderir. Artık bir kullanıcı köprülemeyi başlattığında, sözleşmeler kullanıcının hedef zincirde en az 200.000 gas birimi ödemesini zorunlu kılacak ve güvenilir teslimatı sağlayacaktır.
Son güncelleme
Bu yararlı oldu mu?