mirror of
https://github.com/logos-co/logos-evm-eth-rpc-module.git
synced 2026-08-27 11:51:08 +00:00
* test: add executable logoscore doc-test (21/21 green) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * ci: add doc-test workflow (publish to Pages + root index); pin spec to {release} Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * fix(doctest): tolerate 'logoscore stop' exit on teardown (|| true) The daemon-stop teardown step can be SIGTERM'd (exit -15) on CI runners under 'bash -e', reddening an otherwise-green run. Make the teardown non-fatal so the published report reflects the actual assertions. * fix(doctest): retry idempotent reads on transient RPC_FAILED The first proxied call that drives a module through a blocking network round-trip can hit a cold-replica/transport race on loaded CI runners (RPC_FAILED). The affected calls are pure reads, so wrap them in a bounded retry-with-backoff (6x, 3s) — the textbook-safe mitigation for transient RPC flakiness — so the published report is reliably green. code_block keeps the rendered command clean. * fix(doctest): survive 'logoscore stop' group-SIGTERM (trap) + reload-recover wedged transport CI evidence: the teardown's -15 was the dominant remaining failure — 'logoscore stop' SIGTERMs its own process group, killing the step shell directly (|| true can't catch a signal), so guard the teardown with 'trap "" TERM'. token-list's refresh also wedged its transport persistently within a session; on RPC_FAILED it now reloads + re-configures the module before retrying. * feat: concurrency:"multi" — eth_rpc serves concurrent RPC Every RPC method is a blocking network round-trip (up to timeoutSecs), so one slow call no longer stalls the others. Trait → &self + Send+Sync; state behind a RwLock (14 RPC handlers read-lock + overlap; 2 rare config mutators write-lock). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * fix(doctest): build a 0.2 logoscore so the multi eth_rpc's deferred reply resolves eth_rpc_module is now concurrency:"multi" — every CLI call returns a pending sentinel that the daemon must resolve. Override logoscore's protocol (+ liblogos's) to the chain under test so the daemon is >= 0.2. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
23 lines
689 B
JSON
23 lines
689 B
JSON
{
|
|
"name": "eth_rpc_module",
|
|
"version": "1.0.0",
|
|
"description": "Proxyable, fail-closed Ethereum JSON-RPC client. Per-chain config (endpoint + proxy); RPC calls keyed by chainId. socks5h/Tor-ready.",
|
|
"author": "Logos Core Team",
|
|
"type": "core",
|
|
"interface": "cdylib",
|
|
"concurrency": "multi",
|
|
"category": "wallet",
|
|
"main": "eth_rpc_module_plugin",
|
|
"dependencies": [],
|
|
"include": [],
|
|
"capabilities": [],
|
|
"codegen": {
|
|
"rust": { "crate": "rust-lib", "trait": "EthRpcModule", "source": "src/glue.rs" }
|
|
},
|
|
"nix": {
|
|
"external_libraries": [],
|
|
"packages": { "build": [], "runtime": [] },
|
|
"cmake": { "find_packages": [], "extra_include_dirs": [] }
|
|
}
|
|
}
|