alephao / solidity-benchmarks

Benchmarks of popular contract implementations in solidity
102 stars 11 forks source link

explicitly state the features of a contract for a more fair comparison #9

Open alephao opened 2 years ago

alephao commented 2 years ago

Many of the contracts here have some extra functionality, for example if we look at the ERC20s, Solmate and Maple implements ERC-2612 permits, while the basic OZ's ERC20 doesn't.

Comparing Solmate vs Maple is fair, but OZ vs Solmate is not.

I think it might be a good idea to categorize them somehow, current idea is:

On READMES

Provide a table with features. Example for ERC20:

Contract/Features ERC2612 Another Feature
Solmate
Maple
OZ
OZ with Permit

On JSON

ERC20
  Solmate
    features: [ERC2612]
  Maple
    features: [ERC2612]
  OZ:
    features: []

ERC721
  OZ:
    features: []
  A
    features: [Enumerable]
  OZEnumerable
    features: [Enumerable]

(sorry for being lazy and not writing json by hand, but you got the idea)

lucas-manuel commented 2 years ago

I think the tables the easiest to refer to/understand