Issues Found

Severity Tag Count
Critical (C-1)
High (H-1)
Medium (M-1)
Low (L-1)
Code Quality (Q-1) 5
Gas Optimization (G-1)
Informational (I-1)

[Q-1] Compact signatures are not supported

Topic Protocol Design
Impact Medium

Reference: SeaportEIP1271.sol#L21

The isValidSignature functions only works with signatures consisting of 65 bytes. However, another form of signatures exists - the so called “compact” signatures - that only consist of 64 bytes (see ERC-2098).

As a result, the isValidSignature functions reverts for both Seaport bulk orders as well as standard signatures when a message has been signed using the compact signature scheme.

Remediations to Consider

Adapt the logic to support compact signatures.


[Q-2] Signature validation only works with Seaport 1.5

Topic Interoperability
Impact High

Reference: SeaportOrderParser.sol#L74C15-L74C42

The current validation logic for bulk orders is only compatible with Seaport version 1.5. This is due to the domain separator being built from the version hash derived from the string "1.5":

 // Derive hash of the version string of the contract.
 versionHash = keccak256(bytes("1.5"));

Therefore, the current implementation does not support earlier versions or future versions. Although Seaport v1.5 is the latest deployed version, v1.6 was recently released. It is foreseeable that protocols will use version 1.6 or newer versions in the future.