Axelar Network v2 contest - RedOneN's results

Decentralized interoperability network.

General Information

Platform: Code4rena

Start Date: 29/07/2022

Pot Size: $50,000 USDC

Total HM: 6

Participants: 75

Period: 5 days

Judge: GalloDaSballo

Total Solo HM: 3

Id: 149

League: ETH

Axelar Network

Findings Distribution

Researcher Performance

Rank: 33/75

Findings: 2

Award: $88.03

🌟 Selected for report: 0

🚀 Solo Findings: 0

[L-01] Unused RECEIVE() Function will lock ether in contract.

If the intention is for the Ether to be used, the function should call another function, otherwise it should revert

File: DepositReceiver.sol DepositReceiver.sol#L29

[L-02] Missing Checks for APPROVE()'s return status

Some tokens, such as Tether (USDT) return false rather than reverting if the approval fails. Use OpenZeppelin’s safeApprove(), which reverts if there’s a failure, instead.

File: AxelarDepositService.sol AxelarDepositService.sol#L30

File: ReceiverImplementation.sol ReceiverImplementation.sol#L38 ReceiverImplementation.sol#L64 ReceiverImplementation.sol#L86

[N-01] Consider using a more recent version of solidity

#0 - re1ro

2022-08-05T04:10:07Z

Dup #3

#1 - GalloDaSballo

2022-09-01T00:45:54Z

[L-01] Unused RECEIVE() Function will lock ether in contract.

Invalid as Deposit receiver needs that for WETH

[L-02] Missing Checks for APPROVE()'s return status

Valid L

[N-01] Consider using a more recent version of solidity

NC

1L 1NC

[G-01] - Functions guaranteed to revert when called by normal users (such as onlyOwner) can be marked payable.

File: AxelarGasService.sol AxelarGasService.sol#L120 AxelarGasService.sol#L136

[G-02] ++i/i++ should be UNCHECKED{++i}/UNCHECKED{i++} when it is not possible for them to overflow, as is the case when used in for and while loops.

File: AxelarGasService.sol AxelarGasService.sol#L123

File: AxelarDepositService.sol# AxelarDepositService.sol#L114 AxelarDepositService.sol#L168 AxelarDepositService.sol#L204

###[G-03] ++i costs less gas than i++, especially when it's use in for loops

File: AxelarGasService.sol AxelarGasService.sol#L123

File: AxelarDepositService.sol# AxelarDepositService.sol#L114 AxelarDepositService.sol#L168 AxelarDepositService.sol#L204

[G-04] Consider using a more recent version of solidity

Use a solidity version of at least 0.8.10 to have external calls skip contract existence checks if the external call has a return value

[G-05] Consider turning some constant variable as private to save Gas.

FileAxelarDepositService.sol AxelarDepositService.sol#L16

[G-06] Using > 0 costs more gas than != 0 when used on a uint.

File: AxelarDepositService.sol AxelarDepositService.sol#L165

#0 - re1ro

2022-08-05T04:09:40Z

Dup #2 and #3

#1 - GalloDaSballo

2022-08-23T01:03:21Z

Around 300 gas saved

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