Maverick Protocol audit

ABDK ConsultingNot recorded. See the report

ABDK Consulting reviewed Maverick Protocol (Maverick Protocol audit) on 13 Oct 2022: 102 findings, 0 critical; 72 marked fixed, 30 acknowledged.

No open critical findings
Open the reportOpen Maverick Protocol’s security record

Report hosted on GitHub.

Statuses are the security firm’s own, from this report. Trustblock does not review code.

Findings102

Statuses are the security firm’s own, from its report.

SeverityOpenAcknowledgedFixed
Critical000
High002
Medium006
Low03064
HighThese calls revert on failed transfer, thus inability to transfer one token makes it impossible to claim fees in the other token.Fixed

The report gives no description here.

HighThis recursion does not scale and may exceed the gas limit, thus making the liquidity removal impossible.Fixed

The report gives no description here.

MediumIn case deltaBOptimal > _deltaB and _existingReserveB <= 0, the value of ”deltaBOptimal” will not be adjusted.Fixed

The report gives no description here.

MediumIt is not ensured that tokenA and tokenB are different.Fixed

The report gives no description here.

MediumOverflow is possible when converting to ”int256”.Fixed

The report gives no description here.

MediumOverflow is possible when performing unsafe type conversions.Fixed

The report gives no description here.

MediumSuboptimal in PoolInspector.solFixed

The report gives no description here.

MediumThis loop doesn’t scale.Fixed

The report gives no description here.

LowBad datatype in BinMap.solFixed

The report gives no description here.

LowBad datatype in BinMap.solFixed

The report gives no description here.

Show 10 more
LowBad datatype in Deployer.solFixed

The report gives no description here.

LowBad datatype in Factory.solFixed

The report gives no description here.

LowBad datatype in Factory.solFixed

The report gives no description here.

LowBad datatype in IFactory.solFixed

The report gives no description here.

LowBad datatype in IFactory.solFixed

The report gives no description here.

LowBad datatype in IFactory.solFixed

The report gives no description here.

LowBad datatype in IPool.solFixed

The report gives no description here.

LowBad datatype in Math.solFixed

The report gives no description here.

LowBad datatype in Pool.solFixed

The report gives no description here.

LowBad datatype in Pool.solFixed

The report gives no description here.

Show 10 more
LowBad datatype in Pool.solFixed

The report gives no description here.

LowBad datatype in Pool.solFixed

The report gives no description here.

LowBad datatype in Pool.solFixed

The report gives no description here.

LowBad datatype in Pool.solFixed

The report gives no description here.

LowBad datatype in Pool.solFixed

The report gives no description here.

LowBad datatype in PoolInspector.solFixed

The report gives no description here.

LowCalculating the scale factors each time is suboptimal.Fixed

The report gives no description here.

LowDefining a top-level constant in a file named after a library makes it harder to navigate through the code.Fixed

The report gives no description here.

LowDefining top-level constants in a file named after a contract makes it harder to navigate through the code.Fixed

The report gives no description here.

LowDefining top-level constants in a file named after a library makes it harder to navigate through the code.Fixed

The report gives no description here.

Show 10 more
LowDefining top-level constants in a file named after a library names it harder to navigate through the code.Fixed

The report gives no description here.

LowProcedural in BinMap.solFixed

The report gives no description here.

LowProcedural in PoolInspector.solFixed

The report gives no description here.

LowReadability in BinMap.solFixed

The report gives no description here.

LowReadability in Pool.solFixed

The report gives no description here.

LowReadability in Pool.solFixed

The report gives no description here.

LowReadability in Pool.solFixed

The report gives no description here.

LowSuboptimal in Bin.solFixed

The report gives no description here.

LowSuboptimal in BinMap.solFixed

The report gives no description here.

LowSuboptimal in BinMap.solFixed

The report gives no description here.

Show 10 more
LowSuboptimal in BinMap.solFixed

The report gives no description here.

LowSuboptimal in BinMap.solFixed

The report gives no description here.

LowSuboptimal in BinMap.solFixed

The report gives no description here.

LowSuboptimal in Cast.solFixed

The report gives no description here.

LowSuboptimal in Cast.solFixed

The report gives no description here.

LowSuboptimal in Pool.solFixed

The report gives no description here.

LowSuboptimal in Pool.solFixed

The report gives no description here.

LowThe argument name is confusing, as it actually contains a bit index in a bitmap, rather than a tick.Fixed

The report gives no description here.

LowThe expression ”bins[i]” is calculated twice.Fixed

The report gives no description here.

LowThe expression ”tokenAmount.toInt128()” is calculated twice.Fixed

The report gives no description here.

Show 10 more
LowThe function name is confusing as the function not always creates a new bin but in some cases may return an existing bin.Fixed

The report gives no description here.

LowThe names of these constants are too generic.Fixed

The report gives no description here.

LowThe number forma of this field is unclear.Fixed

The report gives no description here.

LowThe number format of the returned value is unclear.Fixed

The report gives no description here.

LowThe number format of the returned values is unclear.Fixed

The report gives no description here.

LowThe number format of these arguments is unclear.Fixed

The report gives no description here.

LowThe number format of these arguments is unclear.Fixed

The report gives no description here.

LowThe number format of these values is unclear.Fixed

The report gives no description here.

LowThe number format of this argument is unclear.Fixed

The report gives no description here.

LowThe number format of this variable is unclear.Fixed

The report gives no description here.

Show 10 more
LowThe return type ”uint16” looks odd here, as a result of this function always fits into 8 bits.Fixed

The report gives no description here.

LowThe semantics of the keys in this mapping is unclear.Fixed

The report gives no description here.

LowThe semantics of the keys in this mapping is unclear.Fixed

The report gives no description here.

LowThe semantics of the returned value is unclear.Fixed

The report gives no description here.

LowThe semantics of these fields and their valid values are unknown.Fixed

The report gives no description here.

LowThe type of these arguments should be ”IERC20”.Fixed

The report gives no description here.

LowThese lines are redundant, as the maximum allowed tick value is 0x706FC.Fixed

The report gives no description here.

LowThis recursion doesn’t scale and could exceed the block gas limit.Fixed

The report gives no description here.

LowThis should be calculated only when delta.excess <= 0.Fixed

The report gives no description here.

LowUnclear behavior in Factory.solFixed

The report gives no description here.

Show 2 more
LowUnclear behavior in IPool.solFixed

The report gives no description here.

LowUnclear behavior in Pool.solFixed

The report gives no description here.

Contracts in scope

No deployed address is recorded for this audit.

The report names a repository or files. Open the report to see its scope.

Part of Maverick Protocol’s security record

Maverick Protocol
Audits3 audits by 2 firmsLast audit May 2023, by ABDK Consulting.
Critical findingsNo open critical findingsAcross 3 reports.
Open Maverick Protocol’s security record

Security firm

ABDK Consulting

31 projects reviewed · 64 reports · latest Jan 2026

See ABDK Consulting’s audits

Something wrong on this page? A missing report, a wrong date, a finding that was fixed since. Tell us and we check it against its source.

Tell us