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

Base'den Chiliz Chain'e Köprü

LayerZero v2 kullanarak Base'de bir OFT Adapter ve Chiliz Chain'de Yerel OFT deploy ederek mevcut bir ERC-20 token'ı Base'den Chiliz Chain'e köprüleyin.

Mevcut bir token'ı Base'den Chiliz Chain'e köprülemek için iki ayrı akıllı sözleşme yazıp deploy etmeniz gerekir: token'ın halihazırda var olduğu zincirde (Base) bir OFT Adapter ve hedef zincirde (Chiliz Chain) bir Yerel OFT.

LayerZero'nun OFT sözleşmeleri için kendi QuickStart rehberini ve Chiliz Chain gibi başka bir EVM zincirine Base'den nasıl basım yapılacağına dair öğreticiyi sağladığını unutmayın. Bu öğretici hedef zincir olarak Optimism kullanmaktadır, ancak bunu Chiliz Chain'in ayrıntılarıyla değiştirebilirsiniz.

Ön Koşullar

Bu rehber için şunlar gereklidir:

Geliştirme ortamı olarak Hardhat ve Node/npx kullanacağız.

Adım 1: Sözleşme Geliştirme

Base'de OFTAdapter Hazırlama

OFTAdapter sözleşmesi, mevcut token'ınız için bir kilitli kutu işlevi görür. Kullanıcılar token'larını Base'den köprülediğinde, bu sözleşme orijinal ERC20 token'larını kilitler.

Contracts klasörünüzde BaseTokenAdapter.sol adında yeni bir dosya oluşturun:

Bu sözleşmenin hem LayerZero OFT Adapter sözleşmesini hem de yönetici anahtarlarını vermek için standart bir Ownable.sol sözleşmesini genişlettiğini görebilirsiniz. Zincirleri güvenli biçimde birbirine bağlamak için her ikisine de ihtiyacınız var.

Bunu Base Mainnet'e deploy ederken mevcut token'ınızın sözleşme adresini _token olarak ve Base Endpoint V2 adresini (0x1a44076050125825900e736c501f859c50fE728c) _lzEndpoint olarak geçirmeniz gerekir.

Chiliz Chain için tüm mevcut endpoint'leri burada görün:

Chiliz Chain'de OFT Hazırlama

Token henüz Chiliz Chain'de yerel olarak mevcut olmadığından standart bir OFT sözleşmesi deploy etmeniz gerekir. Bu sözleşme, Base'de deploy edilen OFT Adapter'dan geçerli bir mesaj aldığında yeni token basma ve kullanıcılar geri köprülerken token'ları yakma yetkisine sahiptir.

Contracts klasörünüzde ChilizTokenOFT.sol adında yeni bir dosya oluşturun:

Bu sözleşmenin hem LayerZero OFT sözleşmesini hem de yukarıda belirtilen aynı nedenlerle standart bir Ownable.sol sözleşmesini genişlettiğini görebilirsiniz.

Bunu Chiliz Chain'e deploy ederken kullanıcıların kafasını karıştırmamak için _name ve _symbol değerlerinin Base'deki orijinal token'ınızla eşleştiğinden emin olun. Chiliz Chain Endpoint V2 adresini (0x6F475642a6e85809B1c36Fa62763669b1b48DD5B) _lzEndpoint olarak geçirin.

Chiliz Chain için tüm mevcut endpoint'leri burada görün:

Adım 2: LayerZero Yapılandırması

Sözleşmeleriniz hazır olduğunda, LayerZero araçlarına nasıl bağlandıklarını bildirmeniz gerekir. Bu, Hardhat projenizin kök dizininde bulunan bir layerzero.config.ts dosyası aracılığıyla yapılır.

Bu yapılandırma dosyası, çapraz zincir mimariniz için bir plan niteliği taşır. Deploy edilen akıllı sözleşmelerinizi ilgili LayerZero Endpoint ID'leri (EID) ile eşler ve aralarındaki yolları (bağlantıları) tanımlar.

Simple Config Generator, çift yönlü bağlantıları otomatikleştirdiği ve önerilen güvenlik yapılandırmalarını otomatik olarak uyguladığı için bağlantı yapılandırması oluşturmak için önerilen yöntemdir.

Hardhat projenizin kökünde layerzero.config.ts dosyasını oluşturun veya güncelleyin:

[EVM_ENFORCED_OPTIONS, EVM_ENFORCED_OPTIONS] dizisi, LayerZero Executor'a Chiliz'e mesaj iletirken ve Base'e mesaj döndürürken 200.000 gas birimi uygulamasını söyler.

Adım 3: Deploy İş Akışı

Sözleşmeleriniz yazıldı ve layerzero.config.ts'niz hazırlandı; artık sözleşmeleri ilgili ağlara deploy etme zamanı. LayerZero V2 araç seti, deploy işlemlerini verimli biçimde yönetmek için hardhat-deploy eklentisine dayanır.

Projenizin deploy/ dizininde iki deploy betiği oluşturmanız gerekecektir: biri Base Mainnet için diğeri Chiliz Chain Mainnet için.

Base Adapter Deploy Betiği

deploy/ klasörünüzde 01_deploy_base_adapter.ts adında bir dosya oluşturun. Bu betik, mevcut token adresinizi ve Base Endpoint V2 adresini constructor'a geçirir.

Chiliz Chain OFT Deploy Betiği

deploy/ klasörünüzde 02_deploy_chiliz_oft.ts adında ikinci bir dosya oluşturun. Bu betik, Chiliz Chain'de yeni Yerel OFT'yi başlatır.

Deploy İşlemlerini Çalıştırma

hardhat.config.ts dosyanızda hem Base hem de Chiliz Chain için RPC URL'lerinin ve private key'lerin doğru şekilde yapılandırıldığından emin olun.

RPC ile Bağlanma

Sözleşmeleri deploy etmek için terminalinizde şu komutları çalıştırın:

Deploy işlemleri tamamlandıktan sonra Hardhat, sözleşme adreslerini deployments/ klasörüne kaydedecektir. LayerZero araçları, sonraki adımda bağlantı komutunu çalıştırdığımızda bu adresleri otomatik olarak okuyacaktır.

Adım 4: Bağlantı ve Eşleşme

Bu aşamada BaseTokenAdapter ve ChilizTokenOFT sözleşmeleriniz her iki zincire deploy edildi ancak tamamen izole durumdalar. Chiliz Chain sözleşmesi token basmasını söyleyen bir mesaj aldığında, bu mesajın gerçekten sizin Base'deki Adapter'ınızdan geldiğini, kötü niyetli bir aktörden değil, bilmesi gerekir.

Sözleşmeleri kriptografik olarak eşler olarak "bağlayarak" bu güveni oluşturmanız gerekir.

Bu işlem, hem Chiliz hem de Base'de işlemler oluşturup yürütecek olan wire komutu çalıştırılarak gerçekleştirilir.

Arka Planda Neler Oluyor?

Eksiksiz bir LayerZero V2 yol yapılandırması her iki zincirde de 6 işlem gerektirir:

  • setSendLibrary: Mesaj gönderiminden sorumlu LayerZero MessageLib'i atar.

  • setReceiveLibrary: Mesaj alımından sorumlu MessageLib'i atar. (Genellikle 0 olarak ayarlanan bir gracePeriod içerir).

  • setConfig (Gönderme Kütüphanesi): Giden mesajlar için belirli Merkeziyetsiz Doğrulayıcı Ağlarını (DVN) ve Executor'ları ayarlar.

  • setConfig (Alma Kütüphanesi): Gelen mesajları doğrulamak için gereken belirli DVN'leri ayarlar.

  • setEnforcedOptions: Gerekli çalıştırma gas limitlerini ayarlar. Bir kullanıcı Base'den mesaj gönderdiğinde, hedef gas ücretini peşin öder. Zorunlu seçeneklerin ayarlanması, LayerZero Executor'ın işlemi Chiliz Chain'de başarıyla işlemesi için yeterli gas ödenmesini sağlar.

  • setPeer: Bir hedef Endpoint ID'yi (EID) güvenilir bir sözleşme adresine bağlar. Base sözleşmesine Chiliz Chain sözleşmesine, Chiliz Chain sözleşmesine de Base sözleşmesine güvenmesi gerektiğini belirtmeniz gerekir.

Wire Görevini Çalıştırma

Terminalinizde şu komutu çalıştırın:

Araç zinciri gerekli parametreleri otomatik olarak hesaplayacak, yürütmek üzere olduğu işlemlerin bir tablosunu size sunacak ve bunları deployer 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 resmi olarak aktif ve tam yapılandırılmış olacaktır! Base Adapter artık Chiliz Chain'e basım komutları göndermeye yetkilidir ve Chiliz Chain, kilit açma komutlarını Base'e göndermeye yetkilidir.

Adım 5: Operasyon ve Test

Sözleşmeleriniz deploy edildi ve güvenli biçimde bağlandı; token'ınız artık omnichain. Son adım, Base Mainnet'ten Chiliz Chain Mainnet'e çapraz zincir transferi gerçekleştirmektir.

1) Çapraz Zincir Transferini Gerçekleştirme

LayerZero V2 araç seti, doğrudan terminalinizden OFT transferlerini test etmek için yerleşik bir Hardhat görevi sağlar. Bu komut, çapraz zincir gas ücretini tahmin edecek, cüzdanınızdan $ETH (kaynak zincir olan Base'in yerel gas token'ı) ile ücret kesecek ve transferi başlatacaktır.

Şu komutu çalıştırın:

Bu komut şunları yapar:

  1. Yapılandırmanızda Base Mainnet (30184) ve Chiliz Mainnet (30409) ayarlarını bulur.

  2. LayerZero Executor tarafından gereken çapraz zincir ücretini hesaplar.

  3. Base Adapter'ınızda send() fonksiyonunu çağırır.

  4. Adapter 10 token'ı kilitler ve LayerZero Endpoint'e bir paket yayınlar.

2) Paketi LayerZero Scan'de İzleme

Çapraz zincir işlemleri eşzamansızdır. Chiliz işleminiz birkaç saniye içinde onaylanırken mesajın hâlâ Base'de doğrulanıp yürütülmesi gerekmektedir.

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.

Bu araç hakkında daha fazla bilgi edinin:

Gas Limitlerini Ayarlama

Gas limitlerini ayarlamak son derece önemlidir; aksi takdirde çapraz zincir mesajlarınız hedef ağda başarısız olabilir.

Bir kullanıcı Base'den Chiliz Chain'e token köprülediğinde, her iki zincirin gas ücretini Base'de yapılan tek bir işlemde peşin öder ($ETH kullanarak). LayerZero ardından bu ücretin bir bölümünü Chiliz Chain'deki basım işlemini yürütmek için gereken gerçek ETH gas ücretini ödemek için kullanır.

LayerZero'nun hedef zincirde lzReceive fonksiyonunu başarıyla işlemesi için yeterli gas'a sahip olmasını sağlamak amacıyla Zorunlu Seçenekleri ayarlamanız gerekir. Bu ayarlanmazsa işlem, hedef zincirde "Out of Gas" hatasıyla geri alınabilir.

Seçenekleri Yapılandırma

Bu seçenek layerzero.config.ts dosyanızda ayarlanır. connections dizisini her yol için enforcedOptions bloğunu içerecek şekilde güncelleyin:

Parametrelerin açıklaması:

  • msgType: 1: Standart bir token transferini temsil eder. msgType: 2, "bileşik" çağrılar için kullanılır (örneğin bir token'ı köprüleyip hemen tek tıklamayla stake etmek).

  • optionType: 1: Executor'a yalnızca lzReceive fonksiyonunu yürütmesini bildirir.

  • gas: 200000: Standart OFT basım ve kilit açma işlemleri için güvenli bir temel gas limiti. Deploy edilen sözleşmelerinizin belirli gas tüketimine göre ayarlayabilirsiniz.

Bu seçeneği zincirleri zaten bağladıktan sonra ayarladıysanız, seçenekler şimdi mevcut olduğundan aynı komutu kullanarak yeniden bağlayabilirsiniz:

Araçlar değişiklikleri otomatik olarak algılayacak ve hem Base'deki hem de Chiliz'deki sözleşmelerinize bir setEnforcedOptions() işlemi gönderecektir. Artık bir kullanıcı köprüyü tetiklediğinde, 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?