@ryzhak

Кто нибудь видит уязвимость в этом смарт контракте?

Здравствуйте. Есть смарт контракт на solidity для Ethereum. Задача: найти уязвимость.

contract SimpleToken{
    mapping(address => uint) public balances;
    
    /// Buy token at the price of 1ETH/token.
    function buyToken() payable {
        balances[msg.sender]+=msg.value / 1 ether;
    }
    
    /** 
     *  @dev Send token.
     *  @param _recipient The recipient.
     *  @param _amount The amount to send.
     */
    function sendToken(address _recipient, uint _amount) {
        require(balances[msg.sender]!=0); // You must have some tokens.
        
        balances[msg.sender]-=_amount;
        balances[_recipient]+=_amount;
    }
    
}


Thanks in advance
  • Вопрос задан
  • 111 просмотров
Решения вопроса 1
ShamanSBubnom
@ShamanSBubnom
Я бы сделал проверку так : require(balances[msg.sender]>=_amount);

Потому что отправитель по идее смог бы отправить больше чем у него есть , если у него есть хоть какие-то монеты.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы