Files
pezkuwi-sdk/CLAUDE.md
T
pezkuwichain 256360cbdb docs: add PUBLIC_TESTNET_ROADMAP.md and update session log
- Create comprehensive testnet roadmap with staged approach
- Document Ed25519/Sr25519 fix learnings
- Add VPS capacity analysis
- Update CLAUDE.md to auto-load roadmap
- Update SESSION_LOG.md with current progress
2026-01-24 18:29:05 +03:00

23 KiB
Raw Blame History

Claude Kuralları - Pezkuwi SDK

Bu dosya her oturumda Claude tarafından okunmalı ve kurallara kesinlikle uyulmalıdır.

OTOMATİK YÜKLENEN DOSYALAR

@.claude/PROJECT_STATE.md @.claude/SESSION_LOG.md @.claude/MAINNET_ROADMAP.md @.claude/PUBLIC_TESTNET_ROADMAP.md


ANA HEDEF

Rebrand edilmiş Pezkuwi SDK projesinin cargo check komutundan Finished çıktısı alması.

Bu hedef iki parçadan oluşur:

  1. Rebrand tamamlanmış olmalı (tüm eski terimler yeni terimlerle değiştirilmiş)
  2. Proje derlenebilir durumda olmalı (cargo check Finished)

HER İKİ KOŞUL DA SAĞLANMALI. BİRİ DİĞERİ İÇİN FEDAKARİLİK EDİLEMEZ.


DEĞİŞMEZ KURALLAR - ASLA YAPMA

1. Rebrand'i Geri Alma Yasağı

  • ASLA rebrand edilmiş kodu eski haline döndürme
  • ASLA cargo check hataları için isim değişikliklerini geri alma
  • ASLA "çalışsın diye" terminolojiyi bozma
  • ASLA pezkuwi → polkadot, bizinikiwi → substrate gibi geri dönüşüm yapma

2. Terminoloji Koruma

Aşağıdaki dönüşümler kalıcıdır ve geri alınamaz:

Eski (KULLANMA) Yeni (KULLAN)
polkadot pezkuwi
Polkadot Pezkuwi
substrate bizinikiwi
Substrate Bizinikiwi
cumulus pezcumulus
Cumulus Pezcumulus
westend zagros
Westend Zagros
rococo pezkuwichain
Rococo Pezkuwichain
parachain teyrchain
Parachain Teyrchain
paritytech pezkuwichain
frame- pezframe-
pallet- pezpallet-
sp- pezsp-
sc- pezsc-

3. Hata Çözme Yaklaşımı

Cargo check hatası aldığında:

  • DOĞRU: Hatayı rebrand'e uygun şekilde düzelt (yeni terminoloji kullan)
  • YANLIŞ: Rebrand'i geri alarak hatayı "çöz"

Örnek:

Hata: pezsp_runtime bulunamadı
DOĞRU: pezsp_runtime modülünü/import'unu düzelt
YANLIŞ: sp_runtime'a geri dön

BRUTAL HONESTY & STRATEGIC DEPTH

Stop being conciliatory and act as my ruthlessly honest, top-tier advisor and mirror.

  • Do NOT validate me, soften the truth, or engage in flattery
  • Challenge my thinking, question my assumptions, and expose the blind spots I'm avoiding
  • Be direct, logical, and unfiltered
  • If my reasoning is weak, dissect it and show me why
  • If I'm deceiving myself or lying to myself, call it out
  • If I'm avoiding something uncomfortable or wasting time, point it out and explain the opportunity cost
  • Look at my situation with complete objectivity and strategic depth
  • Show me where I'm making excuses, playing small, or underestimating risks/effort
  • Then give me a precise, scalable plan on what to change in thought, action, or mindset to reach the next level
  • Hold nothing back. Treat me as someone whose growth depends on hearing the truth, not finding comfort

GOAL ACHIEVEMENT PRINCIPLE:

When pursuing a goal, do NOT bypass problems with quick workarounds - solve them genuinely and permanently.

Example: If the goal is to get Finished output from cargo check --workspace --features runtime-benchmarks and an error X occurs in the terminal, success is only achieved by applying a real, permanent fix to that error - NOT by cleverly bypassing it to get the Finished output.


ÇALIŞMA PRENSİPLERİ

1. Checkpoint Sistemi

  • Her büyük işlemden önce git commit yap
  • Her hata düzeltmesinde "ne yaptım" raporu ver
  • Geri dönüşü olmayan değişiklikler için onay iste

2. Audit Trail

  • Değişiklik yapılan dosyaları listele
  • Her oturum sonunda özet rapor sun

3. Şeffaflık

  • Yapılan her değişikliği kullanıcıya bildir
  • Varsayımda bulunma, sor
  • Kısayol arama, doğru yolu izle

YASAK DAVRANIŞLAR

  1. Kullanıcının talimatı olmadan rebrand'i geri alma
  2. "Derleme için gerekli" bahanesiyle terminolojiyi bozma
  3. Uzun süren hatalar için "kolay çözüm" olarak geri dönüş yapma
  4. Commit mesajına Claude imzası ekleme
  5. Test etmeden commit/push yapma

HATA DURUMUNDA

Eğer cargo check 100+ hata veriyorsa:

  1. Panik yapma
  2. Hataları kategorize et
  3. Sistematik olarak düzelt (rebrand'e uygun)
  4. Her 10-20 hata düzeltmesinde ara commit yap
  5. İlerlemeyi kullanıcıya bildir

ASLA "çok fazla hata var, rebrand'i geri alayım" deme.


REFERANS: REBRAND_MAP

Tam crate isim değişiklikleri için /home/mamostehp/pezkuwi-sdk/REBRAND_PROGRESS.md dosyasına bak. Terminoloji kılavuzu için .claude/TERMINOLOGY.md dosyasına bak.


Bu kurallar Kurdistan Tech Institute tarafından belirlenmiştir ve kesinlikle uyulmalıdır.

*eskiden kalan ve baska bir dosyaya yazdigin kurallar

Claude Code Kuralları - Pezkuwi SDK

🚨 GITHUB ACTIONS KURALI - KESİNLİKLE UYULMALI

Workflow hata verdiğinde veya değişiklik yapılacağında:

  1. ÖNCE tüm mevcut workflow run'larını iptal et (gh run cancel)
  2. SONRA hepsini sil (gh run delete)
  3. EN SON tek bir commit/push ile temiz başlat

ASLA eski workflow'ların üzerine yeni workflow bırakma! ASLA kuyrukta onlarca workflow biriktirme!

# Temizlik komutu (her zaman önce bunu çalıştır):
gh run list --limit 100 --json databaseId,status | jq -r '.[] | select(.status == "queued" or .status == "in_progress" or .status == "pending") | .databaseId' | xargs -I{} gh run cancel {} 2>/dev/null
sleep 5
gh run list --limit 100 --json databaseId -q '.[].databaseId' | xargs -I{} gh run delete {} 2>/dev/null

⚠️ PEZKUWI SDK TERMİNOLOJİSİ - KRİTİK

ASLA POLKADOT SDK TERİMLERİ KULLANMA! Bu bağımsız bir blockchain projesi.

Doğru Terminoloji Tablosu:

YANLIŞ (Polkadot SDK) DOĞRU (Pezkuwi SDK)
parachain teyrchain
rococo pezkuwichain
westend zagros
dicle zagros
polkadot pezkuwichain
[[parachains]] [[teyrchains]]
[[parachains.collators]] [[teyrchains.collators]]
-lparachain=debug -lteyrchain=debug
parachain=debug teyrchain=debug

🔄 CRATE REBRAND KURALLARI (76 Crate)

Prefix Dönüşümleri:

Polkadot SDK Prefix Pezkuwi SDK Prefix Örnek
sp- pezsp- sp-core → pezsp-core
sc- pezsc- sc-client → pezsc-client
frame- pezframe- frame-support → pezframe-support
pezpallet- pezpallet- pezpallet-balances → pezpallet-balances
cumulus- pezcumulus- cumulus-client → pezcumulus-client
bridge-hub- pezbridge-hub- bridge-hub-runtime → pezbridge-hub-runtime
bridge-runtime- pezbridge-runtime- bridge-runtime-common → pezbridge-runtime-common
mmr- pezmmr- mmr-gadget → pezmmr-gadget
snowbridge- pezsnowbridge- snowbridge-core → pezsnowbridge-core

snowbridge-pezpallet- Dönüşümü:*

snowbridge-pezpallet-* → pezsnowbridge-pezpallet-*

Örnek: snowbridge-pezpallet-ethereum-clientpezsnowbridge-pezpallet-ethereum-client

Özel Dönüşümler:

Polkadot SDK Pezkuwi SDK
bp-runtime pezbp-runtime
bp-header-chain bp-header-pez-chain
asset-test-utils asset-test-pezutils
test-runtime-constants peztest-runtime-constants
xcm-docs xcm-pez-docs
xcm-emulator xcm-pez-emulator
xcm-procedural xcm-pez-procedural
xcm-runtime-apis xcm-runtime-pezapis
xcm-simulator xcm-pez-simulator

Genel pez- Prefix Eklenen Crate'ler:

Polkadot SDK Pezkuwi SDK
fork-tree pez-fork-tree
subkey pez-subkey
generate-bags pez-generate-bags
kitchensink-runtime pez-kitchensink-runtime
minimal-template-node pez-minimal-template-node
minimal-template-runtime pez-minimal-template-runtime
node-bench pez-node-bench
node-primitives pez-node-primitives
node-rpc pez-node-rpc
node-testing pez-node-testing
solochain-template-node pez-solochain-template-node
solochain-template-runtime pez-solochain-template-runtime
tracing-gum pez-tracing-gum
tracing-gum-proc-macro pez-tracing-gum-proc-macro
equivocation-detector pez-equivocation-detector
finality-relay pez-finality-relay
messages-relay pez-messages-relay
slot-range-helper pez-slot-range-helper
penpal-emulated-chain pez-penpal-emulated-chain
penpal-runtime pez-penpal-runtime

Dosya İsimlendirme Kuralı:

  • Cargo.toml name alanı rebrand edilmeli
  • Rust dosya isimleri mod bildirimleriyle eşleşmeli
  • Örnek: mod pezsnowbridge_pezpallet_system; → dosya pezsnowbridge_pezpallet_system.rs olmalı

Token'lar:

  • HEZ: Relay chain native token (200M genesis, inflationary)
  • PEZ: Asset Hub governance token (5B sabit supply)
  • TYR: Base unit (1 HEZ = 10^18 TYR)

System Teyrchains:

  • Asset Hub Teyrchain: ID 1000
  • People Chain Teyrchain: ID 1004

Zombienet Config Örneği (DOĞRU):

[relaychain]
default_args = ["-lteyrchain=debug"]
chain = "pezkuwichain-dev"

[[teyrchains]]
id = 1000
chain = "asset-hub-pezkuwichain-dev"

[[teyrchains.collators]]
args = ["-lteyrchain=debug"]

🎯 ANA HEDEF VE ÇALIŞMA PRENSİPLERİ

Hedef

Pezkuwi blockchain'i mainnet'e taşımak. Her test aşamasında (dev → local → alpha → beta → staging → mainnet) tüm bug/hataları kalıcı olarak çözmeden bir sonraki aşamaya GEÇİLMEZ.

Mevcut Aşama: DEV NETWORK

Başarı Kriterleri (hepsi sağlanmalı):

  • 3 runtime çalışmalı (Relay Chain, Asset Hub, People Chain)
  • Birbirini görmeli (peer discovery)
  • Bloklar üretilmeli
  • Finalized olmalı
  • Alice hesabında genesis token'ları görülmeli (HEZ, PEZ)

Test Aşamaları Sırası

  1. DEV (1 validator - Alice) ← ŞU AN BURADAYIZ
  2. LOCAL (2 validator - Alice + Bob)
  3. ALPHA (4 validator)
  4. BETA (8 validator)
  5. STAGING (21 validator)
  6. MAINNET (100 validator)

Çalışma Prensibi

Her aşamada:
1. Planlanan testleri yap
2. Tüm testlerden başarılı sonuç al
3. Hata/bug varsa → düzelt → tekrar test et
4. Başarılı olunca → blockchain upgrade → sonraki aşama

ÖNEMLİ: Ekranda geçici başarı görmek yeterli DEĞİL. Kalıcı çözümler, tam testler, sonra ilerleme.


Dizin Kuralları

Dizin Kullanım
/home/mamostehp/Pezkuwi-SDK Tüm işlemler burada yapılır (edit, commit, push)

Ekran Görüntüleri

Kullanıcı "ekran" veya "ekrana bak" dediğinde:

/home/mamostehp/DKSweb_ekran/Screenshot.png

dosyasını oku.

Gemini ile Koordinasyon

Gemini mesaj gönderdiğinde veya "gemini mesaj" denildiğinde:

/home/mamostehp/Pezkuwi-SDK/.ai-coordination/messages.md

dosyasını oku. Diğer koordinasyon dosyaları:

  • claude-status.md - Claude'un mevcut durumu
  • gemini-status.md - Gemini'nin mevcut durumu
  • task-board.md - Görev tablosu

Commit Kuralları

  • Commit mesajlarına 🤖 Generated with [Claude Code] ve Co-Authored-By: Claude EKLEME
  • Sadece düz commit mesajı yaz

Proje Bilgileri

  • Proje: Pezkuwi SDK - Bağımsız blockchain projesi
  • Teknoloji: Polkadot SDK fork'u (ama Polkadot DEĞİL, bağımsız)
  • Ana branch: main
  • GitHub: pezkuwichain/pezkuwi-sdk
  • Discord: https://discord.gg/Y3VyEC6h8W (Server: 1444335345935057049)

Önemli Notlar

  1. paritytech referansları pezkuwichain olmalı
  2. polkadot-sdk referansları pezkuwi-sdk olmalı
  3. Kaliteyi düşüren "kolay çözümler" yerine doğru çözümü uygula
  4. Geride iş bırakma - kapsamlı da olsa tamamla

🔗 UPSTREAM ISSUE TRACKING SİSTEMİ

Polkadot SDK'daki issue'ları Pezkuwi SDK'ya nasıl taşıyoruz:

Mantık

Upstream Polkadot SDK'de TODO/issue referansları varsa, bunları tracking issue sistemi ile takip ediyoruz.

Adımlar

1. Upstream'de Kontrol Et:

# Örnek: pezkuwichain/pezkuwi-sdk/issues/133 için
grep -r "pezkuwichain/pezkuwi-sdk/issues/133" /home/mamostehp/polkadot-sdk-check/

2. Tracking Issue Oluştur:

gh issue create --repo pezkuwichain/pezkuwi-sdk --label "upstream-tracking" \
  --title "[Upstream Tracking] paritytech/polkadot#2403" \
  --body "**Upstream:** https://github.com/pezkuwichain/pezkuwi-sdk/issues/133

**Status Tracking:**
- [x] Pending - Upstream not yet resolved
- [ ] Resolved - Fix merged upstream
- [ ] Evaluated - Assessed if needed for PezkuwiChain
- [ ] Applied - Fix applied to our chain
- [ ] Closed - Upstream issue closed
- [ ] Skipped - Not relevant for us

**Last Check:** 2025-12-06
**Next Check:** 2026-01-06

**Notes:**
ValidatorIndex From<u32> trait implementation issue.
Periodically check upstream and update checkboxes above based on status changes."

3. Koddaki Linki Güncelle:

// ÖNCEKİ:
// https://github.com/pezkuwichain/pezkuwi-sdk/issues/133

// SONRA (bizim tracking issue'ya işaret et):
// https://github.com/pezkuwichain/pezkuwi-sdk/issues/163

Örnek Tamamlanmış Tracking Issue'lar

Neden Böyle Yapıyoruz?

  1. Broken link olmasın: Upstream issue linklerini kendi repo'muza çeviriyoruz
  2. Takip: Upstream'de issue çözüldü mü, bizde uygulamamız gerekiyor mu takip ediyoruz
  3. Workflow: .github/workflows/upstream-issue-tracker.yml haftalık kontrol ediyor

CI/CD QUICK-CHECKS DÜZELTMELERİ TAMAMLANDI

Son güncelleme: 2025-11-29

Tamamlanan İşler

  1. check-workspace.py düzeltmesi

    • polkadot-sdkpezkuwi-sdk değiştirildi
    • Umbrella crate için hem path hem workspace = true kabul ediliyor
  2. Bridge crate workspace inheritance (16 crate)

    • Tüm bridge crate'leri workspace = true kullanıyor
  3. Markdown lint kuralları

    • MD004 (ul-style): Devre dışı - çok fazla legacy dosya
    • MD013 (line-length): Devre dışı - URL'ler satırları uzatıyor
  4. TOML format (taplo)

    • .config/taplo.toml path'leri polkadotpezkuwi düzeltildi
    • 435+ TOML dosyası formatlandı
  5. Zepter check

    • .config/zepter.yaml: -p=polkadot-sdk-p=pezkuwi-sdk düzeltildi
    • Feature propagation: 36+ issue fix edildi
    • Duplicate deps: pezpallet-identity-kyc ve pezpallet-tiki düzeltildi
  6. Umbrella crate

    • generate-umbrella.py çalıştırıldı
    • umbrella/Cargo.toml ve umbrella/src/lib.rs yeniden oluşturuldu

Değiştirilen Dosyalar (438 dosya)

  • Config dosyaları: .config/taplo.toml, .config/zepter.yaml, .github/.markdownlint.yaml
  • Script: .github/scripts/check-workspace.py
  • Pezpallet Cargo.toml: pezpallet-identity-kyc, pezpallet-tiki + 12 özel pezpallet feature propagation
  • Tüm Cargo.toml dosyaları (taplo format)
  • Umbrella crate dosyaları

Sonraki Adım

Commit atılıp push edilmeli - CI/CD artık geçmeli.


🧪 ZOMBIENET TEST ENVIRONMENT VARIABLES

Zombienet SDK test'leri için gerekli environment variable'lar:

Problem

zombienet_sdk::environment::get_images_from_env() fonksiyonu, test'lerde kullanılacak Docker image'larını environment variable'lardan alır. Pezkuwi SDK için bu variable'lar tanımlanmalı.

Çözüm

Lokal test için:

export ZOMBIENET_IMAGE_PEZKUWI="docker.io/pezkuwichain/pezkuwi:latest"
export ZOMBIENET_IMAGE_CUMULUS="docker.io/pezkuwichain/pezcumulus:latest"
cargo test --workspace --features runtime-benchmarks

CI/CD workflow'larına eklenecek:

Test yapan tüm workflow'lara (.github/workflows/tests*.yml) şu environment variable'lar eklenmelidir:

env:
  ZOMBIENET_IMAGE_PEZKUWI: "docker.io/pezkuwichain/pezkuwi:latest"
  ZOMBIENET_IMAGE_CUMULUS: "docker.io/pezkuwichain/pezcumulus:latest"

Not: Bu değişkenler compile-time'da image alanlarının doldurulması için gerekli. Gerçek image path'leri production'da güncellenebilir.

İlgili dosyalar:

  • bizinikiwi/client/transaction-pool/tests/zombienet/yap_test.rs:38
  • Tüm zombienet SDK test dosyaları

Tarih: 2025-12-09


🛑 SİSTEMATİK ÇALIŞMA KURALLARI - KRİTİK

Son güncelleme: 2025-12-13

Bu kurallar, tekrarlanan hatalardan öğrenilerek oluşturulmuştur. KESİNLİKLE uyulmalı.

1. ÇALIŞAN KODA DOKUNMA

"If it ain't broke, don't fix it"
  • Çalışan workflow'lara, test geçen dosyalara gereksiz değişiklik yapma
  • Bir şeyi "iyileştirmek" için çalışan kodu değiştirme
  • Düzeltme yaparken sadece hatalı olan yere odaklan

2. TEK DEĞİŞİKLİK → TEK TEST

Her seferinde SADECE BİR değişiklik yap
→ Test et
→ Sonucu gör
→ Sonra diğerine geç
  • Birden fazla değişikliği aynı anda yapmak = hangi değişikliğin hataya sebep olduğunu anlayamama
  • Bir commit'te birden fazla bağımsız fix varsa, sorun çıktığında rollback zor

3. LOKAL TEST ÖNCE

Mümkünse önce lokal test et, sonra push et
  • cargo check --workspace
  • cargo test -p <crate>
  • cargo clippy --workspace

GitHub'a push edip sonucu beklemek = zaman kaybı + gereksiz workflow kuyruğu

4. GERİ DÖNÜŞ NOKTASI BELİRLE

Her başarılı durumda commit at ve işaretle
  • "Bu çalışıyor" diye bilinen commit SHA'sını not al
  • Sorun çıkarsa o commit'e dön, karmaşık düzeltmeler deneme
  • Git history'si temiz tutulmalı

5. PANİK YAPMA

İlk hata geldiğinde:
1. DURMA
2. Hata mesajını OKU
3. Root cause analizi YAP
4. Sonra düzelt
  • Hızlıca "düzeltme" yapmaya çalışmak = durumu daha da kötüleştirmek
  • Bir düzeltme işe yaramazsa → geri al → farklı yaklaşım dene
  • Aynı şeyi tekrar tekrar deneme

6. ROLLBACK > DEBUG

Düzeltme 2-3 denemede işe yaramazsa → ROLLBACK
  • Çalışan versiyona geri dön
  • Temiz bir başlangıç noktasından tekrar başla
  • Sonsuz debug döngüsüne girme

Örnek Senaryo (YANLIŞ):

1. Clippy hatası var → düzelt
2. Düzeltme sırasında isdraft workflow'una dokundum (gereksiz)
3. isdraft patladı
4. isdraft'ı düzeltmeye çalıştım (5 farklı deneme)
5. Hepsi başarısız
6. Sonunda revert ettim
7. Zaman kaybı: 2 saat

Örnek Senaryo (DOĞRU):

1. Clippy hatası var → düzelt
2. Sadece clippy ile ilgili dosyalara dokun
3. Test et, push et
4. Başka bir şey patlarsa → o dosyalara bak
5. Çalışan koda dokunma

📋 OTURUM GEÇMİŞİ VE NOTLAR

Oturum: 2025-12-20 (Clippy Hatalarını Düzeltme)

Görev: Tüm GitHub Actions workflow'larının geçmesi için clippy hatalarını düzeltme

Tamamlanan Düzeltmeler:

  1. referral/benchmarking.rs:

    • Duplicated cfg attribute kaldırıldı
    • use crate::Pezpallet as Referral; benchmarks modülünün içine taşındı
  2. referral/lib.rs:

    • Deprecated RuntimeEvent → supertrait bound kullanıldı
    • Config: pezframe_system::Config<RuntimeEvent: From<Event<Self>>>
  3. tiki/benchmarking.rs:

    • Unused use alloc::vec; kaldırıldı
    • Multiple bound locations düzeltildi (T bounds birleştirildi)
    • Clone on Copy types düzeltildi (.clone() → kopyalama)
  4. tiki/lib.rs:

    • Deprecated RuntimeEvent → supertrait bound kullanıldı
  5. presale/lib.rs (bekleyen):

    • try_into() → into() dönüşümleri (7 adet)
    • too_many_arguments (macro-generated, #[allow] gerekebilir)

Kalan Hatalar (clippy output'tan):

  • pezpallet-presale: unnecessary_fallible_conversions (7 adet)
  • pezpallet-tiki: bazı clone_on_copy kalmış olabilir
  • pezcumulus-zombienet-sdk-tests: unnecessary parentheses
  • pez-solochain-template-runtime: bir hata var
  • pezpallet-revive-eth-rpc: field never read

Sonraki Claude İçin Talimat:

  1. Bu dosyayı /home/mamostehp/pezkuwi-sdk/.claude/CLAUDE_RULES.md adresinden oku
  2. RUSTFLAGS="-D warnings" SKIP_WASM_BUILD=1 cargo clippy --all-targets --all-features --locked --workspace --quiet çalıştır
  3. Kalan hataları düzelt
  4. Commit ve push yap
  5. GitHub Actions'ın geçtiğini doğrula

🖥️ VPS RUNNER INFRASTRUCTURE

Son güncelleme: 2025-12-27

Self-Hosted Runners

VPS IP Address SSH Runner Label
VPS1 37.60.230.9 ssh root@37.60.230.9 ubuntu-large
VPS2 62.146.235.186 ssh root@62.146.235.186 ubuntu-xlarge

Her iki runner paralel çalışır. Workflow'lar kuyrukta uzun bekliyorsa her iki VPS'in de aktif olduğunu kontrol et.


⚠️ ÖĞRENILEN DERSLER

serde_core + wasm32v1-none Uyumsuzluğu (2025-12-27)

Problem: serde_core 1.0.228 + Rust 1.88.0 + wasm32v1-none target kombinasyonu derleme hatası veriyor.

Hata:

error: relaxing a default bound only does something for ?Sized

Çözüm: CI'da rustup target add wasm32v1-none adımını kaldır. wasm-builder otomatik olarak wasm32v1-none'dan wasm32-unknown-unknown'a fallback yapar.

Upstream Issue: https://github.com/serde-rs/serde/issues/3021

Kural: Eğer bir dependency'de bug varsa:

  1. Geçici workaround uygula (wasm32v1-none kaldır)
  2. Upstream'e issue aç
  3. Tracking issue oluştur (.claude/issue_mapping.txt)
  4. Kalıcı fix için upstream'i takip et

🔧 DEVAM EDEN GÖREV: pezpallet-revive-eth-rpc DERLEME

Son güncelleme: 2025-12-19 14:50 UTC

Mevcut Durum

pezpallet-revive-eth-rpc crate'i compile edilemiyor. İlerleme kaydedildi ama henüz tamamlanmadı.

TAMAMLANAN ADIMLAR

  1. pez-revive-dev-node başarıyla derlendi
  2. Dev node çalıştırıldı
  3. Yeni metadata generate edildi (revive_chain.scale)
    • Artık sadece pezsp_runtime, pezpallet_revive path'leri var
    • sp_runtime, pallet_revive (upstream) yok
  4. no_default_substitutions eklendi (subxt_client.rs)

KALAN SORUNLAR

SORUN 1: subxt hala sp_runtime arıyor

no_default_substitutions eklense de subxt bazı type'lar için hala sp_runtime path'i kullanıyor:

error[E0433]: could not find `sp_runtime` in `runtime_types`

Olası çözüm: crate_path veya ek substitute_type direktifleri gerekebilir.

SORUN 2: H160, H256 type substitutions eksik

no_default_substitutions ile varsayılan type mapping'ler de kayboluyor:

error[E0277]: the trait bound `H160: From<[u8; 20]>` is not satisfied

Çözüm: Eksik type'lar için substitute_type ekle:

substitute_type(
    path = "primitive_types::H160",
    with = "::subxt::utils::Static<::pezsp_core::H160>"
),
substitute_type(
    path = "primitive_types::H256",
    with = "::subxt::utils::Static<::pezsp_core::H256>"
),

SORUN 3: SQLX Query Cache

error: `SQLX_OFFLINE=true` but there is no cached data for this query

Çözüm seçenekleri:

  1. cargo sqlx prepare ile cache regenerate (PostgreSQL/SQLite gerekli)
  2. query!query_unchecked! ile compile-time check'i devre dışı bırak

SONRAKİ ADIMLAR

  1. H160, H256 ve diğer primitive_types için substitute_type ekle
  2. crate_path veya alternatif subxt yapılandırması araştır
  3. SQLX sorununu çöz (unchecked query veya cache regenerate)
  4. cargo check -p pezpallet-revive-eth-rpc başarılı olmalı
  5. cargo check --workspace başarılı olmalı

İlgili Dosyalar

  • bizinikiwi/pezframe/revive/rpc/src/subxt_client.rs - subxt macro
  • bizinikiwi/pezframe/revive/rpc/revive_chain.scale - YENİ metadata (tamamen rebranded)
  • bizinikiwi/pezframe/revive/rpc/.sqlx/ - SQLX query cache (güncellenmeli)