Expand description
Core IR types and builders for smart contract analysis.
Auditing requires a structured representation where security-critical operations are explicit. This crate provides the building blocks to construct and manipulate IR that preserves Solidity’s semantics while exposing the patterns auditors care about.
Re-exports§
pub use block::BasicBlock;pub use block::BlockId;pub use block::BlockParam;pub use block::Terminator;pub use builder::ContractBuilder;pub use builder::FunctionBuilder;pub use contract::Contract;pub use contract::ContractMetadata;pub use contract::StorageLayout;pub use function::Function;pub use function::FunctionBody;pub use function::FunctionSignature;pub use function::Mutability;pub use function::Visibility;pub use instructions::Instruction;pub use metadata::OptimizationHints;pub use metadata::SecurityMetadata;pub use obfuscation::ObfuscationConfig;pub use obfuscation::ObfuscationLevel;pub use obfuscation::ObfuscationMapping;pub use obfuscation::ObfuscationPass;pub use obfuscation::VulnerabilityMapper;pub use source_location::SourceFiles;pub use types::Type;pub use types::TypeRegistry;pub use values::Constant;pub use values::Location;pub use values::SourceLocation;pub use values::Value;
Modules§
- analysis
- Analyze control flow, data flow, and program structure.
- block
- builder
- Fluent API for constructing IR programmatically.
- codegen
- Lower high-level IR to Cranelift for compilation.
- contract
- cursor
- extensions
- EVM-specific operations beyond standard IR.
- format
- function
- inst_
builder - instructions
- ir_
persist - metadata
- obfuscation
- Strip names and metadata for confidential auditing.
- source_
location - types
- values