diff --git a/CLAUDE.md b/CLAUDE.md index c6b5758e..2aa9e947 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -447,3 +447,76 @@ Düzeltme 2-3 denemede işe yaramazsa → ROLLBACK ``` --- + +## 🔧 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: +```rust +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) + +--- diff --git a/Cargo.toml b/Cargo.toml index 85578f86..8e0f7509 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,10 +1,10 @@ [workspace.package] authors = [ - "Kurdistan Tech Institute ", + "Kurdistan Tech Institute ", "Parity Technologies ", ] edition = "2021" -homepage = "https://docs.pezkuwichain.io/sdk/" +homepage = "https://pezkuwichain.io/" license = "GPL-3.0-only" repository = "https://github.com/pezkuwichain/pezkuwi-sdk.git" @@ -1446,11 +1446,23 @@ ssz_rs_derive = { version = "0.9.0", default-features = false } static_assertions = { version = "1.1.0", default-features = false } static_init = { version = "1.0.3" } strum = { version = "0.26.3", default-features = false } -subxt = { version = "0.43", default-features = false } -subxt-core = { version = "0.43", default-features = false } -subxt-metadata = { version = "0.43", default-features = false } -subxt-rpcs = { version = "0.43", default-features = false } -subxt-signer = { version = "0.43" } +# Pezkuwi-subxt (forked from subxt with pezsp_runtime support) +subxt = { git = "https://github.com/pezkuwichain/pezkuwi-subxt.git", branch = "master", package = "pezkuwi-subxt", default-features = false } +subxt-core = { git = "https://github.com/pezkuwichain/pezkuwi-subxt.git", branch = "master", package = "pezkuwi-subxt-core", default-features = false } +subxt-metadata = { git = "https://github.com/pezkuwichain/pezkuwi-subxt.git", branch = "master", package = "pezkuwi-subxt-metadata", default-features = false } +subxt-rpcs = { git = "https://github.com/pezkuwichain/pezkuwi-subxt.git", branch = "master", package = "pezkuwi-subxt-rpcs", default-features = false } +subxt-signer = { git = "https://github.com/pezkuwichain/pezkuwi-subxt.git", branch = "master", package = "pezkuwi-subxt-signer" } +# Internal pezkuwi-subxt dependencies (same crates with pezkuwi- prefixed keys) +pezkuwi-subxt = { git = "https://github.com/pezkuwichain/pezkuwi-subxt.git", branch = "master", default-features = false } +pezkuwi-subxt-core = { git = "https://github.com/pezkuwichain/pezkuwi-subxt.git", branch = "master", default-features = false } +pezkuwi-subxt-codegen = { git = "https://github.com/pezkuwichain/pezkuwi-subxt.git", branch = "master" } +pezkuwi-subxt-metadata = { git = "https://github.com/pezkuwichain/pezkuwi-subxt.git", branch = "master", default-features = false } +pezkuwi-subxt-macro = { git = "https://github.com/pezkuwichain/pezkuwi-subxt.git", branch = "master" } +pezkuwi-subxt-rpcs = { git = "https://github.com/pezkuwichain/pezkuwi-subxt.git", branch = "master", default-features = false } +pezkuwi-subxt-signer = { git = "https://github.com/pezkuwichain/pezkuwi-subxt.git", branch = "master", default-features = false } +pezkuwi-subxt-lightclient = { git = "https://github.com/pezkuwichain/pezkuwi-subxt.git", branch = "master", default-features = false } +pezkuwi-subxt-utils-fetchmetadata = { git = "https://github.com/pezkuwichain/pezkuwi-subxt.git", branch = "master", default-features = false } +pezkuwi-subxt-utils-stripmetadata = { git = "https://github.com/pezkuwichain/pezkuwi-subxt.git", branch = "master" } syn = { version = "2.0.87" } sysinfo = { version = "0.30" } tar = { version = "0.4" } diff --git a/bizinikiwi/pezframe/revive/rpc/revive_chain.scale.new b/bizinikiwi/pezframe/revive/rpc/revive_chain.scale.new new file mode 100644 index 00000000..be0f86c6 Binary files /dev/null and b/bizinikiwi/pezframe/revive/rpc/revive_chain.scale.new differ diff --git a/bizinikiwi/pezframe/revive/rpc/revive_chain.scale.old b/bizinikiwi/pezframe/revive/rpc/revive_chain.scale.old new file mode 100644 index 00000000..2fdbb8c8 Binary files /dev/null and b/bizinikiwi/pezframe/revive/rpc/revive_chain.scale.old differ diff --git a/bizinikiwi/pezframe/revive/rpc/src/subxt_client.rs b/bizinikiwi/pezframe/revive/rpc/src/subxt_client.rs index 2403c682..cee7ba88 100644 --- a/bizinikiwi/pezframe/revive/rpc/src/subxt_client.rs +++ b/bizinikiwi/pezframe/revive/rpc/src/subxt_client.rs @@ -21,13 +21,15 @@ pub use subxt::config::PolkadotConfig as SrcChainConfig; #[subxt::subxt( runtime_metadata_path = "revive_chain.scale", + // Note: subxt hardcodes sp_runtime paths internally but our metadata uses pezsp_runtime + // This requires either forking subxt or using compatible metadata // TODO remove once subxt use the same U256 type substitute_type( path = "primitive_types::U256", with = "::subxt::utils::Static<::pezsp_core::U256>" ), - // The metadata is generated from our rebranded runtime, so paths already use pezsp_* names + // pezsp_runtime substitutions (rebranded paths from Pezkuwi SDK) substitute_type( path = "pezsp_runtime::DispatchError", with = "::subxt::utils::Static<::pezsp_runtime::DispatchError>" @@ -52,7 +54,6 @@ pub use subxt::config::PolkadotConfig as SrcChainConfig; path = "pezsp_runtime::MultiSignature", with = "::subxt::utils::Static<::pezsp_runtime::MultiSignature>" ), - substitute_type( path = "pezsp_runtime::generic::block::Block", with = "::subxt::utils::Static<::pezsp_runtime::generic::Block< @@ -60,6 +61,14 @@ pub use subxt::config::PolkadotConfig as SrcChainConfig; ::pezsp_runtime::OpaqueExtrinsic >>" ), + + // pezsp_weights substitutions + substitute_type( + path = "pezsp_weights::weight_v2::Weight", + with = "::subxt::utils::Static<::pezsp_weights::Weight>" + ), + + // pezpallet_revive substitutions (rebranded paths) substitute_type( path = "pezpallet_revive::evm::api::debug_rpc_types::Trace", with = "::subxt::utils::Static<::pezpallet_revive::evm::Trace>" @@ -68,7 +77,6 @@ pub use subxt::config::PolkadotConfig as SrcChainConfig; path = "pezpallet_revive::evm::api::debug_rpc_types::TracerType", with = "::subxt::utils::Static<::pezpallet_revive::evm::TracerType>" ), - substitute_type( path = "pezpallet_revive::evm::api::rpc_types_gen::GenericTransaction", with = "::subxt::utils::Static<::pezpallet_revive::evm::GenericTransaction>" @@ -89,10 +97,6 @@ pub use subxt::config::PolkadotConfig as SrcChainConfig; path = "pezpallet_revive::primitives::ExecReturnValue", with = "::subxt::utils::Static<::pezpallet_revive::ExecReturnValue>" ), - substitute_type( - path = "pezsp_weights::weight_v2::Weight", - with = "::subxt::utils::Static<::pezsp_weights::Weight>" - ), substitute_type( path = "pezpallet_revive::evm::api::rpc_types_gen::Block", with = "::subxt::utils::Static<::pezpallet_revive::evm::Block>" diff --git a/vendor/pezkuwi-subxt b/vendor/pezkuwi-subxt new file mode 160000 index 00000000..545b8ae8 --- /dev/null +++ b/vendor/pezkuwi-subxt @@ -0,0 +1 @@ +Subproject commit 545b8ae818b9060c0cdd5584e84fb76fcb19b56b