mirror of
https://github.com/luxfi/evm.git
synced 2026-09-24 00:27:44 +00:00
This is the SOLE production install of the always-on 0x9999 DEX value-path trust root — the seam Red flagged as fail-closed-by-absence (InstallAssetResolver / InstallDChainClient had zero production callers, so every swap reverted ErrNoAssetResolver). vm.Initialize now constructs and installs, from the node's REAL chain context (never a constant): - a registry-backed dexcore.AssetResolver bound to (networkID, cChainID): it derives the canonical AssetID with the node's own ids and resolves it in a registry built from the per-network manifest (EmbeddedManifestFor by EVM chainID, or the runtime- rooted localnet native manifest). The manifest is identity-bound via NewRuntimeVerifier (wrong-net/wrong-chain refused) and admitted under the locked-down DefaultDexAssetPolicy synthetic-config deny-scan. - the local in-process NativeDChainClient for the book/ledger custody seam (NOT a remote keeper/venue/ZAP engine). Wired for ALL networks (mainnet 96369 / testnet 96368 / devnet 96370 / localnet 1337) so the DEX is live out-of-the-box. FAIL-CLOSED, NEVER FATAL: a construction failure is logged and the resolver is left UNINSTALLED (swaps revert), never opened; the node still boots for all non-DEX usage. The install binds the SAME (networkID, cChainID) the swap path's AtomicState cross-checks, so a mismatch is fail-closed at swap time. - core/precompile_overrider.go: forward GetCodeSize (EXTCODESIZE) on the concrete stateDBAdapter so the value path's live-code verifier reads authoritative state.