wake.config.data_model
module
#
AnvilConfig
class
#
Bases: WakeConfigModel
Source code in wake/config/data_model.py
cmd_args: str = '--prune-history 100 --transaction-block-keeper 10 --steps-tracing --silent'
class-attribute
instance-attribute
#
Command line arguments to pass to anvil
.
CodeLensConfig
class
#
Bases: WakeConfigModel
Source code in wake/config/data_model.py
enable: bool = True
class-attribute
instance-attribute
#
Show code lenses.
sort_tag_priority: List[str] = ['lsp-references', 'lsp-selectors', 'lsp-inheritance-graph', 'lsp-linearized-inheritance-graph']
class-attribute
instance-attribute
#
Order of code lens with the same start and end position based on sort tags used in detectors/printers. Sort tags default to the printer/detector name.
CompilerConfig
class
#
ControlFlowGraphConfig
class
#
Bases: WakeConfigModel
Unstable, may change in the future.
Source code in wake/config/data_model.py
DeploymentConfig
class
#
Bases: WakeConfigModel
Source code in wake/config/data_model.py
DetectorConfig
class
#
Bases: WakeConfigModel
Namespace for detector-specific config options. Each attribute should be named after the detector name and hold a dictionary with string keys matching the Click option names.
Source code in wake/config/data_model.py
DetectorsConfig
class
#
Bases: WakeConfigModel
Source code in wake/config/data_model.py
_normalize_paths = field_validator('ignore_paths', 'exclude_paths', mode='before')(normalize_paths)
class-attribute
instance-attribute
#
exclude: FrozenSet[str] = frozenset()
class-attribute
instance-attribute
#
Names of detectors that should not be loaded.
exclude_paths: FrozenSet[PurePath] = Field(default_factory=lambda: frozenset([Path.cwd() / 'node_modules', Path.cwd() / 'lib', Path.cwd() / 'script']))
class-attribute
instance-attribute
#
Detections in these paths are ignored unless linked to a (sub)detection in a non-excluded path. Useful for ignoring detections in dependencies.
ignore_paths: FrozenSet[PurePath] = Field(default_factory=lambda: frozenset([Path.cwd() / 'venv', Path.cwd() / '.venv', Path.cwd() / 'test']))
class-attribute
instance-attribute
#
Detections in these paths must be ignored under all circumstances. Useful for ignoring detections in Solidity test files.
only: Optional[FrozenSet[str]] = None
class-attribute
instance-attribute
#
Names of detectors that should only be loaded.
DetectorsLspConfig
class
#
FindReferencesConfig
class
#
Bases: WakeConfigModel
Source code in wake/config/data_model.py
include_declarations: bool = False
class-attribute
instance-attribute
#
Include declarations in the results.
GanacheConfig
class
#
Bases: WakeConfigModel
Source code in wake/config/data_model.py
cmd_args: str = '-k istanbul -q'
class-attribute
instance-attribute
#
Command line arguments to pass to ganache
.
GeneralConfig
class
#
Bases: WakeConfigModel
Source code in wake/config/data_model.py
call_trace_options: FrozenSet[str] = frozenset(['contract_name', 'function_name', 'named_arguments', 'status', 'call_type', 'value', 'return_value', 'error'])
class-attribute
instance-attribute
#
Options to include in call traces.
json_rpc_timeout: float = 15
class-attribute
instance-attribute
#
Timeout applied to JSON-RPC requests.
link_format: str = 'vscode://file/{path}:{line}:{col}'
class-attribute
instance-attribute
#
Format of links used in detectors and printers.
GeneratorConfig
class
#
Bases: WakeConfigModel
Unstable, may change in the future.
Source code in wake/config/data_model.py
control_flow_graph: ControlFlowGraphConfig = Field(default_factory=ControlFlowGraphConfig)
class-attribute
instance-attribute
#
imports_graph: ImportsGraphConfig = Field(default_factory=ImportsGraphConfig)
class-attribute
instance-attribute
#
inheritance_graph: InheritanceGraphConfig = Field(default_factory=InheritanceGraphConfig)
class-attribute
instance-attribute
#
inheritance_graph_full: InheritanceGraphConfig = Field(default_factory=InheritanceGraphConfig)
class-attribute
instance-attribute
#
linearized_inheritance_graph: LinearizedInheritanceGraphConfig = Field(default_factory=LinearizedInheritanceGraphConfig)
class-attribute
instance-attribute
#
GraphsDirection
class
#
Bases: StrEnum
Source code in wake/config/data_model.py
HardhatConfig
class
#
Bases: WakeConfigModel
Source code in wake/config/data_model.py
cmd_args: str = ''
class-attribute
instance-attribute
#
Command line arguments to pass to npx hardhat node
.
ImportsDirection
class
#
Bases: StrEnum
Source code in wake/config/data_model.py
ImportsGraphConfig
class
#
Bases: WakeConfigModel
Unstable, may change in the future.
Source code in wake/config/data_model.py
InheritanceGraphConfig
class
#
Bases: WakeConfigModel
Unstable, may change in the future.
Source code in wake/config/data_model.py
InlayHintsConfig
class
#
Bases: WakeConfigModel
Source code in wake/config/data_model.py
LinearizedInheritanceGraphConfig
class
#
Bases: WakeConfigModel
Unstable, may change in the future.
Source code in wake/config/data_model.py
LspConfig
class
#
Bases: WakeConfigModel
Source code in wake/config/data_model.py
code_lens: CodeLensConfig = Field(default_factory=CodeLensConfig)
class-attribute
instance-attribute
#
Code lens config options.
compilation_delay: float = 0
class-attribute
instance-attribute
#
Delay to wait after a file content change before recompiling.
detectors: DetectorsLspConfig = Field(default_factory=DetectorsLspConfig)
class-attribute
instance-attribute
#
Detectors config options specific to LSP.
find_references: FindReferencesConfig = Field(default_factory=FindReferencesConfig)
class-attribute
instance-attribute
#
Find references config options.
inlay_hints: InlayHintsConfig = Field(default_factory=InlayHintsConfig)
class-attribute
instance-attribute
#
Inlay hints config options.
MetadataBytecodeHashEnum
class
#
Bases: StrEnum
Source code in wake/config/data_model.py
PrinterConfig
class
#
Bases: WakeConfigModel
Namespace for printer-specific config options. Each attribute should be named after the printer name and hold a dictionary with string keys matching the Click option names.
Source code in wake/config/data_model.py
PrintersConfig
class
#
Bases: WakeConfigModel
Holds general printer config options for all printers.
Source code in wake/config/data_model.py
SolcConfig
class
#
Bases: WakeConfigModel
Source code in wake/config/data_model.py
_normalize_paths = field_validator('allow_paths', 'include_paths', 'exclude_paths', mode='before')(normalize_paths)
class-attribute
instance-attribute
#
allow_paths: FrozenSet[PurePath] = frozenset()
class-attribute
instance-attribute
#
Wake should set solc --allow-paths
automatically. This option allows to specify additional allowed paths.
evm_version: Optional[EvmVersionEnum] = None
class-attribute
instance-attribute
#
Version of the EVM to compile for. Leave unset to let the solc decide.
exclude_paths: FrozenSet[PurePath] = Field(default_factory=lambda: frozenset([Path.cwd() / 'node_modules', Path.cwd() / 'venv', Path.cwd() / '.venv', Path.cwd() / 'lib', Path.cwd() / 'script', Path.cwd() / 'test']))
class-attribute
instance-attribute
#
Solidity files in these paths are excluded from compilation unless imported from a non-excluded file.
include_paths: FrozenSet[PurePath] = Field(default_factory=lambda: frozenset([Path.cwd() / 'node_modules']))
class-attribute
instance-attribute
#
Paths where to search for Solidity files imported using direct (non-relative) import paths.
metadata: SolcMetadataConfig = Field(default_factory=SolcMetadataConfig)
class-attribute
instance-attribute
#
Metadata config options.
optimizer: SolcOptimizerConfig = Field(default_factory=SolcOptimizerConfig)
class-attribute
instance-attribute
#
Optimizer config options.
remappings: List[Annotated[SolcRemapping, BeforeValidator(convert_remapping), PlainSerializer(lambda r: str(r), when_used=json)]] = []
class-attribute
instance-attribute
#
Remappings to apply during compilation.
target_version: Optional[SolidityVersion] = None
class-attribute
instance-attribute
#
Target Solidity version to use for all files during compilation.
via_IR: Optional[bool] = None
class-attribute
instance-attribute
#
Use new IR-based compiler pipeline.
SolcMetadataConfig
class
#
Bases: WakeConfigModel
Source code in wake/config/data_model.py
SolcOptimizerConfig
class
#
Bases: WakeConfigModel
Source code in wake/config/data_model.py
SolcOptimizerDetailsConfig
class
#
Bases: WakeConfigModel
Source code in wake/config/data_model.py
constant_optimizer: Optional[bool] = None
class-attribute
instance-attribute
#
cse: Optional[bool] = None
class-attribute
instance-attribute
#
deduplicate: Optional[bool] = None
class-attribute
instance-attribute
#
inliner: Optional[bool] = None
class-attribute
instance-attribute
#
jumpdest_remover: Optional[bool] = None
class-attribute
instance-attribute
#
order_literals: Optional[bool] = None
class-attribute
instance-attribute
#
peephole: Optional[bool] = None
class-attribute
instance-attribute
#
simple_counter_for_loop_unchecked_increment: Optional[bool] = None
class-attribute
instance-attribute
#
yul_details: SolcOptimizerYulDetailsConfig = Field(default_factory=SolcOptimizerYulDetailsConfig)
class-attribute
instance-attribute
#
SolcOptimizerYulDetailsConfig
class
#
Bases: WakeConfigModel
Source code in wake/config/data_model.py
SolcRemapping
class
#
Source code in wake/config/data_model.py
SubprojectConfig
class
#
Bases: WakeConfigModel
Source code in wake/config/data_model.py
_normalize_paths = field_validator('paths', mode='before')(normalize_paths)
class-attribute
instance-attribute
#
evm_version: Optional[EvmVersionEnum] = None
class-attribute
instance-attribute
#
metadata: SolcMetadataConfig = Field(default_factory=SolcMetadataConfig)
class-attribute
instance-attribute
#
optimizer: SolcOptimizerConfig = Field(default_factory=SolcOptimizerConfig)
class-attribute
instance-attribute
#
paths: FrozenSet[PurePath] = frozenset()
class-attribute
instance-attribute
#
target_version: Optional[SolidityVersion] = None
class-attribute
instance-attribute
#
via_IR: Optional[bool] = None
class-attribute
instance-attribute
#
TestingConfig
class
#
Bases: WakeConfigModel
Source code in wake/config/data_model.py
anvil: AnvilConfig = Field(default_factory=AnvilConfig)
class-attribute
instance-attribute
#
Anvil-specific config options.
cmd: str = 'anvil'
class-attribute
instance-attribute
#
Which development chain to use for testing. Should be one of anvil
, ganache
or hardhat
.
ganache: GanacheConfig = Field(default_factory=GanacheConfig)
class-attribute
instance-attribute
#
Ganache-specific config options.
hardhat: HardhatConfig = Field(default_factory=HardhatConfig)
class-attribute
instance-attribute
#
Hardhat-specific config options.
TopLevelConfig
class
#
Bases: WakeConfigModel