ParaSpace contest - 0xackermann's results

The First Ever Cross-Margin NFT Financialization Protocol.

General Information

Platform: Code4rena

Start Date: 28/11/2022

Pot Size: $192,500 USDC

Total HM: 33

Participants: 106

Period: 11 days

Judge: LSDan

Total Solo HM: 15

Id: 186

League: ETH

ParaSpace

Findings Distribution

Researcher Performance

Rank: 76/106

Findings: 1

Award: $103.92

QA:
grade-b

🌟 Selected for report: 0

🚀 Solo Findings: 0

Non Critical

  1. Naming convention:
  1. isFirstBorrowing refactoring

    Line: BorrowLogic#L81

    The variable isFirstBorrowing should be named as isBorrowing.

    The calculation of isFirstBorrowing is from function _mintScaled ScaledBalanceTokenBaseERC20#L91-L113,

    function _mintScaled(
        address caller,
        address onBehalfOf,
        uint256 amount,
        uint256 index
    ) internal returns (bool) {
        uint256 amountScaled = amount.rayDiv(index);
        require(amountScaled != 0, Errors.INVALID_MINT_AMOUNT);
    
        uint256 scaledBalance = super.balanceOf(onBehalfOf);
        uint256 balanceIncrease = scaledBalance.rayMul(index) -
            scaledBalance.rayMul(_userState[onBehalfOf].additionalData);
    
        _userState[onBehalfOf].additionalData = index.toUint128();
    
        _mint(onBehalfOf, amountScaled.toUint128());
    
        uint256 amountToMint = amount + balanceIncrease;
        emit Transfer(address(0), onBehalfOf, amountToMint);
        emit Mint(caller, onBehalfOf, amountToMint, balanceIncrease, index);
    
        return (scaledBalance == 0);
    }

    We can see if the user borrows, then repays in full and borrows again. This will not be the first time the user is borrowing.

  2. Return names are not being used in functions

    Instances:

#0 - c4-judge

2023-01-25T15:48:38Z

dmvt marked the issue as grade-b

AuditHub

A portfolio for auditors, a security profile for protocols, a hub for web3 security.

Built bymalatrax © 2024

Auditors

Browse

Contests

Browse

Get in touch

ContactTwitter