Audit results
EthicHubUser
- No se consulta el estado anterior del address antes de registrar investor como en los demás métodos. Línea 133
Estado: confirmada.
DepositManager
- Falta el require(transferFrom) (el standard ERC20 retorna false si falla el transferFrom) Línea 69
Estado: confirmada.
EthicHubLending
- Falta chequear que el amount es 0 amount es cero, porque en el contributeWithAddress luego incrementarias investorCount.add(1) Línea 187
Estado: confirmada.
- Falta require en el transfer Línea 393
Estado: confirmada.
- Código sobrante
function sendFundsToBorrower() external onlyOwnerOrLocalNode {
// Waiting for Exchange
emit CapReached(1);
require(state == LendingState.AcceptingContributions, "State has to be AcceptingContributions");
emit CapReached(1);
require(capReached, "Cap is not reached");
emit CapReached(1);
changeState(LendingState.ExchangingToFiat);
stableCoin.transfer(borrower, totalContributed);
}
Estado: confirmada.
- Error cuando queremos invertir desde DepositManager utilizando la cuenta de payment gateway (es decir, sender != contributor). Posible causa: https://gitlab.com/EthicHub/platform-contracts/blob/nightly/contracts/lending/EthicHubLending.sol#L189
No tenemos forma de registrar depositManager.address, ya que no existe en el CMC.
Estado: confirmada.
Edited by Raúl