Web3 & DApp Development Fundamentals · Ders

İşlemleri ve Olayları Yönetme

DApp'inizden işlem göndermeyi, işlem onaylarını yönetmeyi ve arayüzü güncellemek için akıllı sözleşme olaylarını dinlemeyi öğrenin.

3. ders / 311 adım

İşlemleri ve Olayları Yönetme, CoddyKit'te ücretsiz bir Web3 & DApp Development Fundamentals dersidir. Bu, 3 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Web3 & DApp Development Fundamentals öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Web3 & DApp Development Fundamentals kursu toplamda 3 dersten oluşur.

Merkeziyetsiz Uygulamaları Dinamik Hâle Getirme

Şimdiye kadar merkeziyetsiz uygulamanızı blok zincirine nasıl bağlayacağınızı ve veri okuyacağınızı öğrendiniz. Peki ya verileri değiştirmek veya işlemler gerçekleştirmek isterseniz?

Bu derste, blok zinciri durumunu değiştirmek için merkeziyetsiz uygulamanızdan nasıl işlem göndereceğinizi ve akıllı sözleşme olaylarını kullanarak gerçek zamanlı güncellemeleri nasıl dinleyeceğinizi öğreneceksiniz.

Blok Zinciri İşlemi Nedir?

Bir blok zinciri işlemi, blok zincirinin durumunu değiştiren imzalı bir iletidir. Her işlem, Ether (ETH) ile ödenen ve gas adı verilen küçük bir ücret gerektirir.

Yaygın merkeziyetsiz uygulama işlemleri şunlardır:

  • Ether'i başka bir adrese gönderme.
  • Veri yazan veya verileri değiştiren bir akıllı sözleşme işlevini çağırma.
  • Yeni bir akıllı sözleşme dağıtma.

Merkeziyetsiz Uygulamanızdan İşlem Gönderme

Bir akıllı sözleşme işlevini çağıran işlem göndermek için merkeziyetsiz uygulamanızın şunları yapması gerekir:

  1. Bir blok zinciri sağlayıcısına bağlanma (ör. MetaMask).
  2. Bir imzalayıcı edinme (bağlı kullanıcının cüzdanı).
  3. Gerekli parametreleri aktararak istenen sözleşme işlevini çağırma.

Ardından kullanıcının cüzdanı, kullanıcıdan işlemi onaylamasını ve imzalamasını ister.

Yazma İşlevini Çağırma Örneği

Ethers.js kullanarak bir akıllı sözleşmedeki basit bir setValue işlevini nasıl çağırabileceğiniz aşağıda gösterilmiştir. contract ifadesinin örneği oluşturulmuş sözleşme nesnenizi ifade ettiğini unutmayın.

// Assuming 'contract' is an Ethers.js Contract instance
// and 'signer' is obtained from the connected wallet.

async function updateValue(newValue) {
  try {
    const tx = await contract.connect(signer).setValue(newValue);
    console.log("Transaction sent: ", tx.hash);
    // Wait for the transaction to be mined
    await tx.wait();
    console.log("Transaction confirmed!");
  } catch (error) {
    console.error("Error sending transaction:", error);
  }
}

İşlem Onayını Bekleme

Bir işlem gönderildikten sonra hemen işlenmez. Bir işlem havuzuna girer ve bir madenci veya doğrulayıcı tarafından bir bloğa eklenmeyi bekler.

await tx.wait() çağrısı çok önemlidir. İşlem blok zincirinde çıkarılıp onaylanana kadar merkeziyetsiz uygulamanızın yürütülmesini duraklatır ve kullanıcı arayüzünüzün en güncel durumu yansıtmasını sağlar.

İşlem Makbuzlarını Anlama

tx.wait() çözümlendiğinde bir işlem makbuzu döndürür. Bu makbuz, işlemin sonucu hakkında önemli bilgiler içerir:

  • blockHash ve blockNumber: İşlemin dahil edildiği yer.
  • gasUsed: Gerçekte tüketilen gas miktarı.
  • status: İşlemin başarılı (1) veya başarısız (0) olduğunu belirtir.

Sözleşme çağrısının beklendiği gibi yürütüldüğünden emin olmak için durumu her zaman kontrol edin!

Akıllı Sözleşme Olaylarına Giriş

Akıllı sözleşme olayları, önemli bir şey olduğunda sözleşmelerinizin harici uygulamalara (merkeziyetsiz uygulamanız gibi) bilgi 'yayınlamasını' sağlayan güçlü bir mekanizmadır.

Bunları, merkeziyetsiz uygulamaların dinleyebileceği günlük kayıtları veya bildirimler olarak düşünebilirsiniz. Verileri doğrudan zincir üzerinde depolamadan blok zincirinden iletişim kurmanın uygun maliyetli bir yoludur.

Solidity'de Olay Yayınlama

Solidity'de önce parametreleriyle birlikte bir event tanımlarsınız, ardından bir işlevin içinde olayı tetiklemek için emit anahtar sözcüğünü kullanırsınız. Basit bir örnek şöyledir:

pragma solidity ^0.8.0;

contract MyContract {
  uint public value;

  // Define an event
  event ValueChanged(address indexed user, uint oldValue, uint newValue);

  function setValue(uint _newValue) public {
    uint _oldValue = value;
    value = _newValue;
    // Emit the event
    emit ValueChanged(msg.sender, _oldValue, _newValue);
  }
}

Merkeziyetsiz Uygulamanızda Olayları Dinleme

Merkeziyetsiz uygulamanız, bir sözleşme tarafından yayınlanan belirli olaylara abone olabilir. Bir olay gerçekleştiğinde merkeziyetsiz uygulamanız olay verilerini alır; böylece kullanıcı arayüzünü güncelleyebilir veya gerçek zamanlı olarak başka işlemleri tetikleyebilir.

Bu yaklaşım, sürekli 'yoklama' yapılmasını (güncellemeler için blok zincirine tekrar tekrar soru sorulmasını) önleyerek merkeziyetsiz uygulamanızı daha verimli hâle getirir.

// Assuming 'contract' is an Ethers.js Contract instance

contract.on("ValueChanged", (user, oldValue, newValue, event) => {
  console.log(`Value changed by ${user}`);
  console.log(`From ${oldValue} to ${newValue}`);
  // Update your DApp's UI here, e.g., display the new value
  updateDisplay(newValue);
});

console.log("Listening for ValueChanged events...");

Kısa Kontrol: İşlemler ve Olaylar

Merkeziyetsiz uygulamanızdan durumu değiştiren bir akıllı sözleşme işlevini çağırırken await tx.wait() kullanmanın temel amacı nedir?

Özet ve Sonraki Adımlar

DApp'lerinizi gerçekten etkileşimli hâle getirmeyi öğrendiniz!

  • Artık blok zinciri durumunu değiştirmek için işlemler gönderebilirsiniz.
  • Onay beklemeyi ve işlem makbuzlarını yönetmeyi biliyorsunuz.
  • Akıllı sözleşme olaylarının DApp'inize gerçek zamanlı güncellemeler sağladığını anlıyorsunuz.

Bu beceriler, dinamik ve duyarlı merkeziyetsiz uygulamalar geliştirmek için temel niteliktedir. DApp etkileşiminde ustalaşmak için pratik yapmaya devam edin!

Başlamak ücretsiz

Yapay zeka eğitmeniyle Web3 & DApp Development Fundamentals öğren — ücretsiz

Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.

Kurslar
29
Dersler
105

Sıkça Sorulan Sorular

“İşlemleri ve Olayları Yönetme” dersi ücretsiz mi?

Evet — “İşlemleri ve Olayları Yönetme” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Web3 & DApp Development Fundamentals kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Web3 & DApp Development Fundamentals kursu toplamda 3 dersten oluşur.

“İşlemleri ve Olayları Yönetme” dersinde ne öğreneceğim?

DApp'inizden işlem göndermeyi, işlem onaylarını yönetmeyi ve arayüzü güncellemek için akıllı sözleşme olaylarını dinlemeyi öğrenin. Web3 & DApp Development Fundamentals ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Web3 & DApp Development Fundamentals öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Web3 & DApp Development Fundamentals, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 3 dersinin 3. dersidir.

“İşlemleri ve Olayları Yönetme” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Web3 & DApp Development Fundamentals dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Web3 & DApp Development Fundamentals dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. React ve Web3 Çerçeveleri
  2. Cüzdanları Bütünleştirme
  3. İşlemleri ve Olayları Yönetme
← Web3 & DApp Development Fundamentals Sayfasına Dön