neo_solidity/cli/
standard_json.rs

1//! Standard JSON Compilation Interface
2//!
3//! Implements the Solidity compiler standard JSON input/output format for
4//! compatibility with existing tooling (Hardhat, Foundry, etc.).
5//!
6//! # Input Format
7//!
8//! ```json
9//! {
10//!   "language": "Solidity",
11//!   "sources": {
12//!     "Contract.sol": { "content": "..." }
13//!   },
14//!   "settings": {
15//!     "optimizer": { "enabled": true, "runs": 200 }
16//!   }
17//! }
18//! ```
19//!
20//! # Output Format
21//!
22//! Returns compiled contracts with bytecode, ABI, and metadata in JSON format
23//! compatible with standard Solidity compiler output.
24
25use super::{
26    compile_contracts_with_options, CompilationArtifacts, CompileOptions,
27    ManifestPermissionsOverride, COMPILER_ID,
28};
29use neo_solidity::frontend::parse_source;
30use neo_solidity::frontend::VisibilityKind;
31use neo_solidity::neo::{build_nef_with_tokens, clamp_nef_source_with_flag, NEF_SOURCE_MAX_BYTES};
32use neo_solidity::solidity::{ContractMetadata, DiagnosticSeverity, FunctionKind, StateMutability};
33use serde::Deserialize;
34use serde_json::{json, Map, Value};
35use sha3::{Digest, Keccak256};
36use std::collections::HashMap;
37use std::fs;
38
39include!("standard_json/standard_json_types.rs");
40include!("standard_json/standard_json_helpers.rs");
41include!("standard_json/standard_json_diagnostics.rs");
42include!("standard_json/standard_json_abi.rs");
43include!("standard_json/standard_json_output.rs");
44include!("standard_json/standard_json_process.rs");