Skip to main content

Module locked_ether

Module locked_ether 

Source

Re-exportsΒ§

use super::LockedEther; πŸ”’
use crate::linter::LateLintPass; πŸ”’
use crate::linter::LintContext; πŸ”’
use crate::sol::Severity; πŸ”’
use crate::sol::SolLint; πŸ”’
use crate::sol::analysis::block_outcome; πŸ”’
use crate::sol::analysis::expr_is_address; πŸ”’
use crate::sol::analysis::is_address_self; πŸ”’
use crate::sol::analysis::is_builtin; πŸ”’
use crate::sol::analysis::is_contract_cast; πŸ”’
use crate::sol::analysis::is_literal_zero; πŸ”’
use crate::sol::analysis::runtime_entry_points; πŸ”’
use solar::ast::ContractKind; πŸ”’
use solar::ast::StateMutability; πŸ”’
use solar::interface::Span; πŸ”’
use solar::interface::kw; πŸ”’
use solar::interface::sym; πŸ”’
use solar::sema::Gcx; πŸ”’
use solar::sema::builtins::Builtin; πŸ”’
use solar::sema::hir; πŸ”’
use solar::sema::hir::Block; πŸ”’
use solar::sema::hir::ContractId; πŸ”’
use solar::sema::hir::ExprKind; πŸ”’
use solar::sema::hir::FunctionId; πŸ”’
use solar::sema::hir::ItemId; πŸ”’
use solar::sema::hir::Res; πŸ”’
use solar::sema::hir::StmtKind; πŸ”’
use solar::sema::hir::TypeKind; πŸ”’
use solar::sema::hir::Visit; πŸ”’
use std::collections::HashSet; πŸ”’
use std::ops::ControlFlow; πŸ”’

StructsΒ§

SendChecker πŸ”’
HIR visitor that short-circuits on the first ETH-sending expression and queues statically resolved callees for transitive exploration by the outer worklist loop.

StaticsΒ§

LOCKED_ETHER

FunctionsΒ§

always_reverts πŸ”’
True if invoking func always reverts, through its body or an attached modifier (one that reverts before its first _ or after its last one).
expr_sends_ether πŸ”’
True if expr unambiguously moves ETH out of the contract: a non-zero {value: x} call option, .transfer/.send with a non-zero amount, low-level .delegatecall/.callcode (drainable via selfdestruct), or the selfdestruct builtin. Only literal 0 is treated as a zero amount, and sends targeting this contract’s own address are not exits.