code-423n4 / 2022-01-insure-findings

2 stars 0 forks source link

repayDebt optimization #307

Open code423n4 opened 2 years ago

code423n4 commented 2 years ago

Handle

pauliax

Vulnerability details

Impact

function repayDebt could be refactored to reduce deployment and operational costs from this:

  uint256 _debt = debts[_target];
  if (_debt >= _amount) {
      debts[_target] -= _amount;
      totalDebt -= _amount;
      IERC20(token).safeTransferFrom(msg.sender, address(this), _amount);
  } else {
      debts[_target] = 0;
      totalDebt -= _debt;
      IERC20(token).safeTransferFrom(msg.sender, address(this), _debt);
  }

to this:

  uint256 _debt = debts[_target];
  if (_debt > _amount) {
      debts[_target] = _debt - _amount;
  } else {
      debts[_target] = 0;
      _amount = _debt;
  }
  totalDebt -= _amount;
  IERC20(token).safeTransferFrom(msg.sender, address(this), _amount);
oishun1112 commented 2 years ago
uint256 _debt = debts[_target];
  if (_debt > _amount) {
      debts[_target] = _debt - _amount;
  } else {
      debts[_target] = 0;
      _amount = _debt;
  }
  totalDebt -= _amount;
  IERC20(token).safeTransferFrom(msg.sender, address(this), _amount);

debts[_target] = _debt - _amount; can have unchecked{} since _debt > _amount