cairo_lang_starknet/
lib.rs

1//! Starknet capabilities and utilities on top of Cairo.
2//!
3//! Starknet is a smart contract platform that enables developers to build and deploy smart
4//! contracts on a permissionless Layer 2 network, secured by Ethereum using validity proofs.
5//!
6//! Learn more at [starkware.io](http://starknet.io/).
7
8use cairo_lang_semantic::plugin::PluginSuite;
9
10pub mod abi;
11mod aliased;
12mod analyzer;
13pub mod compile;
14pub mod contract;
15pub mod inline_macros;
16pub mod plugin;
17
18/// Get the suite of plugins for compilation with StarkNet.
19pub fn starknet_plugin_suite() -> PluginSuite {
20    let mut suite = PluginSuite::default();
21    suite
22        .add_plugin::<plugin::StarkNetPlugin>()
23        .add_plugin::<plugin::storage_interfaces::StorageInterfacesPlugin>()
24        .add_inline_macro_plugin::<inline_macros::selector::SelectorMacro>()
25        .add_inline_macro_plugin::<inline_macros::get_dep_component::GetDepComponentMacro>()
26        .add_inline_macro_plugin::<inline_macros::get_dep_component::GetDepComponentMutMacro>()
27        .add_analyzer_plugin::<analyzer::ABIAnalyzer>()
28        .add_analyzer_plugin::<analyzer::StorageAnalyzer>();
29    suite
30}
31
32#[cfg(test)]
33mod test_utils;