you dont need checkpoints actually, because you can call a contract with a blockTag. Also using blockTag is supported by snapshot.org and will not waste gas on lookup
it will be better to support multiple governance tokens by a single contract to avoid deployment gas costs
there is no need for OwnerInitialized event as Ownable emits OwnershipTransferred on construction
do not include test methods into prod version inherit a test/mock contract and put such methods there
Feature Description
Notes on https://github.com/windranger-io/windranger-mass-delegation-contracts/blob/jo-delegate2/contracts/MerkleDelegation.sol
verifyCalldata
instead ofverify
- there will be a considerable gas difference for longer proofs