From 1c097c18557c8abebd7e9031431731a81f3ee182 Mon Sep 17 00:00:00 2001 From: DavidHerran Date: Wed, 27 May 2026 08:44:44 -0500 Subject: [PATCH] =?UTF-8?q?feat(revive):=20v0.0.41=20=E2=80=94=20Phase=203?= =?UTF-8?q?=20Slice=203.1=20SCAFFOLD=20COMPLETE=20(ReviveApi=20deferred=20?= =?UTF-8?q?a=203.2)=20=F0=9F=8E=89=F0=9F=8E=89=F0=9F=8E=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ship 4 v0.0.41 — Phase 3 Slice 3.1 SCAFFOLD COMPLETE end-to-end marker. pallet-revive 0.10.1 integration foundation listo: Config 22 types wired runtime Index 11 + GenesisConfig + 10 integration tests E2E + integrity_test canonical PASS + WASM rebuild 2.8 MB. Decisión pragmática canonical: ReviveApi Runtime API exposure DEFERRED a Slice 3.2+ post audit empírico 18 compile errors (API 0.10.1 signatures significativamente divergent vs initial audit 0.12.2 assumption): - Weight import scope - Generic arity 5 (Block param requerido) - Pallet bare_call() arity 8 not 7 - AddressMapper.to_account_id() method name differs - bare_eth_transact() vs eth_transact_inner naming - Trace.default() no derived - DepositLimit::Balance enum wrapping Cambios: - crates/origin-chain-runtime/src/lib.rs: ReviveApi impl placeholder commented out (/* ... */) con documentation extensive de API diffs encontrados + rationale defer + Phase 3.x maduración path. Slice 3.1 SCAFFOLD COMPLETE summary: ✅ Ship 1 v0.0.37 — ChainAction Phase 3 extension + workspace dep scaffold ✅ Ship 1.5 v0.0.38 — Substrate workspace bump stable2509-3 atómico (audit calibration error fix — SBS-1 label incorrectly "stable2512" pre-bump actually stable2506 hybrid) ✅ Ship 2 v0.0.39 — pallet-revive 0.10.1 wired runtime Index 11 con 22 Config types + GenesisConfig + WASM rebuild 2.8 MB ✅ Ship 3 v0.0.40 — 10 integration tests E2E SCAFFOLD-level verifying Config wiring + integrity_test passes + AddressMapper trait bound + ChainId EIP-155 + EVM bytecode enabled + memory limits validated ✅ Ship 4 v0.0.41 — SCAFFOLD COMPLETE marker (ReviveApi deferred 3.2) Métricas Sesión 4+ Charon: - 4 ships shipped Gitea direct-to-main TOTAL canonical (v0.0.37-41) - 213 tests verde 0 failures (baseline 202 + 11 new tests across actions extension + revive integration) - WASM_BINARY 2.8 MB shipped (grew +1 MB de baseline 1.8 MB v0.0.36 pallet-revive PolkaVM bytecode integrado) - 12 pallets composed runtime (System...Governance...Revive Index 11) - 39 ships canonical TOTAL Origin Chain Gitea (v0.0.1 → v0.0.41) - 0 structural blockers — Path A Phase 3 Slice 3.1 FOUNDATION canonical preserva Path B + Path C unblocked Próximos paths posibles canonical sesión 5+: - Slices 3.2-3.6: NFT mint + Escrow + Credentials + Staking + MDK reconciliation (contract templates ink! v6 + ReviveApi exposure final) - Path B Phase 1.6+ Slice 4: sc-service full wire (consensus + JSON-RPC + libp2p + telemetry) — desbloqueado por workspace bump - Path C Phase 4 Testnet v0.1 prep: multi-validator + faucet + block explorer CHARON_ROADMAP_V1.3 refresh + monorepo bump + Palace LANDMARK files canonical post-commit incremental ships. ⚓ Phase 3 Slice 3.1 SCAFFOLD COMPLETE. La nave Origin Chain anclada en puerto smart contracts. Path A fundación PolkaVM RISC-V listo. Mission progress 70% → ~75%. 🤖 Co-Authored-By: Claude Opus 4.7 (1M context) --- crates/origin-chain-runtime/src/lib.rs | 54 ++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/crates/origin-chain-runtime/src/lib.rs b/crates/origin-chain-runtime/src/lib.rs index 21bb5e2..c0f45e4 100644 --- a/crates/origin-chain-runtime/src/lib.rs +++ b/crates/origin-chain-runtime/src/lib.rs @@ -653,6 +653,60 @@ impl_runtime_apis! { Governance::veto_count_of(proposal_id) } } + + // ============================================================ + // Phase 3 Slice 3.1 SCAFFOLD — ReviveApi exposure DEFERRED + // ============================================================ + // + // ReviveApi 13 methods (block_gas_limit + balance + gas_price + nonce + call + // + instantiate + eth_transact + upload_code + get_storage + get_storage_var_key + // + trace_block + trace_tx + trace_call + block_author) — pallet-revive 0.10.1 + // API signature significantly diverged vs initial audit (different method names, + // different Pallet helper arity, AddressMapper API differs, Precompiles/FeeInfo + // unit type Get bounds, Trace no Default). 18 compile errors empirical + // documented requieren methodical iteration con upstream Asset Hub canonical + // reference adaptation. + // + // Decisión pragmática Slice 3.1 SCAFFOLD COMPLETE sin ReviveApi: extrinsics + // dispatchables canonical via direct chain interaction (Polkadot JS apps + + // signed transactions). RPC layer ReviveApi NO bloquea contract deployment + // ni Slices 3.2-3.6 contract templates. Deferred a Slice 3.2 cuando NFT mint + // contract requiere RPC query interface canonical (real bytecode integration). + // + // Trade-off documented: Slice 3.1 SCAFFOLD ships sin Ethereum-compat RPC. + // Production canonical needs ReviveApi Phase 3.x maduración. + // + // Audit empírico API diffs encontrados (deferred work): + // - Weight import scope, generic arity 5 (Block param requerido), Pallet + // bare_call() arity 8 (not 7), AddressMapper.to_account_id() method name + // diferente, bare_eth_transact() vs eth_transact_inner, Trace.default() + // no derived. Methodical Asset Hub reference adaptation Slice 3.2 ship. + /* + + fn trace_tx( + _block: Block, + _tx_index: u32, + _config: pallet_revive::evm::TracerType, + ) -> Option { + // Slice 3.1 SCAFFOLD: tracing returns None. + None + } + + fn trace_call( + _tx: pallet_revive::evm::GenericTransaction, + _config: pallet_revive::evm::TracerType, + ) -> Result { + // Slice 3.1 SCAFFOLD: tracing returns empty Trace. + Ok(pallet_revive::evm::Trace::default()) + } + + fn block_author() -> Option { + // Phase 1 PoA: sin pallet_authorship integration canonical. + // Phase 4 testnet decision: add pallet_authorship OR custom FindAuthor. + None + } + } + */ } // ============================================================