{"record":{"id":"7532550cf6c31b52","repo":"nautechsystems/nautilus_trader","slug":"proxy-target-address-is-invalid","errorCode":null,"errorMessage":"Proxy target address is invalid","messagePattern":"Proxy target address is invalid","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/adapters/blockchain/src/rpc/verification.rs","lineNumber":1296,"sourceCode":"            matches!(contract.role, BlockchainContractRole::Implementation)\n                || !contract.probes.is_empty(),\n            \"Every deployed contract role requires at least one identity probe\"\n        );\n\n        if let Some(proxy) = &contract.proxy {\n            anyhow::ensure!(\n                matches!(\n                    proxy.kind.as_str(),\n                    \"eip1967_implementation\" | \"zeppelinos_implementation\"\n                ),\n                \"Proxy kind is unsupported\"\n            );\n            B256::from_str(&proxy.storage_slot)\n                .map_err(|_| anyhow::anyhow!(\"Proxy storage slot is invalid\"))?;\n            let storage_value = B256::from_str(&proxy.storage_value)\n                .map_err(|_| anyhow::anyhow!(\"Proxy storage value is invalid\"))?;\n            let target = Address::from_str(&proxy.target_address)\n                .map_err(|_| anyhow::anyhow!(\"Proxy target address is invalid\"))?;\n            let target_hash = B256::from_str(&proxy.target_code_hash)\n                .map_err(|_| anyhow::anyhow!(\"Proxy target code hash is invalid\"))?;\n            anyhow::ensure!(\n                target != Address::ZERO\n                    && target != address\n                    && target_hash != B256::ZERO\n                    && storage_value[..12].iter().all(|byte| *byte == 0)\n                    && storage_value[12..] == *target.as_slice(),\n                \"Proxy target binding is invalid\"\n            );\n        }\n\n        for probe in &contract.probes {\n            Bytes::from_str(&probe.call_data)\n                .map_err(|_| anyhow::anyhow!(\"Manifest probe call data is invalid\"))?;\n            Bytes::from_str(&probe.expected_output)\n                .map_err(|_| anyhow::anyhow!(\"Manifest probe output is invalid\"))?;\n        }","sourceCodeStart":1278,"sourceCodeEnd":1314,"githubUrl":"https://github.com/nautechsystems/nautilus_trader/blob/18893faf8b356be3320add8de2f861b0b647cf06/crates/adapters/blockchain/src/rpc/verification.rs#L1278-L1314","documentation":"A proxy contract entry in the deployment manifest has a target/implementation address that does not parse as a valid EVM address; the recorded proxy target is malformed, so verification cannot resolve the implementation contract.","triggerScenarios":"Thrown at crates/adapters/blockchain/src/rpc/verification.rs:1296 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Correct the proxy target address in the manifest"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"18893faf8b356be3320add8de2f861b0b647cf06","analyzedAt":"2026-09-08T20:49:34.690Z","contentChangedAt":"2026-09-08T20:49:34.690Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}