https://sherlock-files.ams3.digitaloceanspaces.com/profile_images/defaults/default_avatar_6.png

ch0bu

Security Researcher

Contact Me

High

1

Total

$1.67K

Total Earnings

#1277 All Time

30x

Payouts

regular

5x

Top 25

regular

17x

Top 50

All

Sherlock

CodeHawks

Jul '23

Beedle - Oracle free perpetual lending

Beedle - Oracle free perpetual lending

17.77 USDC • 11 total findings • CodeHawks • ch0bu

#135

gas

Uncheck Arithmetic where overflow/underflow impossible

gas

Use of magic numbers

gas

Named parameter mappings

gas

Use assembly to check for `address(0)`

gas

Don't use draft versions in production

gas

Large multiples of ten should use scientific notation

gas

Use if + custom errors instead of using require + string

gas

Mixed usage of `int`/`uint` with `int256`/`uint256`

gas

Multiple `address` mappings can be combined into a single mapping of an `address` to a `struct`, where appropriate

gas

All interfaces must be in one folder

gas

Test Coverage Improvements

Foundry DeFi Stablecoin CodeHawks Audit Contest

Foundry DeFi Stablecoin CodeHawks Audit Contest

3.62 USDC • 4 total findings • CodeHawks • ch0bu

#99

low

Pragma isn't specified correctly which can lead to nonfunction/damaged contract when deployed on Arbitrum

gas

`++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

gas

The nonReentrant modifier should occur before all other modifiers

gas

Use `assembly` to check for `address(0)`

CodeHawks Escrow Contract - Competition Details

CodeHawks Escrow Contract - Competition Details

4.55 USDC • 2 total findings • CodeHawks • ch0bu

#84

gas

Use assembly to check for `address(0)`

gas

The `nonReentrant` `modifier` should occur before all other modifiers

Jan '23

Cooler

Cooler

0.30 USDC • 1 total finding • Sherlock • ch0bu

#30

high

Use safeTransferFrom() instead of transferFrom()