Vulnerabilidad de bloqueo de contrato

pragma solidity ^0.4.18;

contract longTest3{
    
    uint public ownerAmount;

    struct HoldRecord{
        uint amount;
        uint time;
    }
   
   mapping(address => HoldRecord) public balance;

   function payIn(uint holdTime) public payable{
       require(msg.value > 0);
       HoldRecord newRecord;
       //当我们锁仓自己的金额时,其实金额是锁仓到了ownerAmount里面,而没有锁入我们自己的地址
       //这样就会导致资金被盗,使用5.0以上版本就会避免这个问题
       newRecord.amount+=msg.value;
       newRecord.time=now + holdTime;
       balance[msg.sender] = newRecord;

   }
}

Supongo que te gusta

Origin blog.csdn.net/qq_38935605/article/details/124302278
Recomendado
Clasificación