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 + } + } + */ } // ============================================================