1use clap::{Arg, ArgAction, Command};
29use neo_solidity::frontend::VisibilityKind;
30use neo_solidity::ir;
31use neo_solidity::neo::{build_nef_with_tokens, clamp_nef_source_with_flag, NEF_SOURCE_MAX_BYTES};
32use neo_solidity::semantic_model::build_semantic_model;
33use neo_solidity::solidity::{
34 analyse_all_sources, validate_contract, ContractMetadata, DiagnosticSeverity, EventMetadata,
35 FunctionKind, FunctionMetadata, NatspecDoc, ParameterMetadata, StateMutability,
36};
37use neo_solidity::type_system::NeoType;
38use serde_json::{json, Value};
39use sha3::{Digest, Keccak256};
40use std::collections::{HashMap, HashSet};
41use std::fs;
42use std::path::Path;
43
44mod bytecode;
45#[cfg(test)]
46pub(crate) use crate::codegen::interop_id_bytes;
47pub(crate) use bytecode::generate_contract_bytecode;
48mod ir_optimize;
49pub(crate) use ir_optimize::optimize_ir;
50mod standard_json;
51pub(crate) use standard_json::*;
52
53include!("cli_parts/cli_defs.rs");
54include!("cli_parts/cli_run.rs");
55include!("cli_parts/cli_compile.rs");
56include!("cli_parts/cli_output.rs");
57include!("cli_parts/cli_manifest.rs");
58include!("cli_parts/cli_deploy.rs");
59include!("cli_parts/cli_diagnostics.rs");
60
61#[cfg(test)]
62mod tests;