Description
In Denylist.sol, the runtime contract enforces that:
- The owner cannot be the zero address (
initialize reverts).
- Denylisters cannot contain the zero address (
addDenylister reverts).
- Denylisters should be unique to prevent redundant storage slots and duplicate key collisions during genesis allocation.
Currently, scripts/genesis/Denylist.ts does not validate these invariants, which allows malformed genesis configurations to pass validation and fail later during runtime contract execution.
Proposed Solution
- Add validation in
scripts/genesis/Denylist.ts to reject zero addresses for both owner and denylisters.
- Add case-insensitive uniqueness validation for
denylisters.
- Add unit tests covering all edge cases.
I have the fix and test suite ready locally. Could you please assign this issue to me so I can submit a PR? Thanks!
Description
In
Denylist.sol, the runtime contract enforces that:initializereverts).addDenylisterreverts).Currently,
scripts/genesis/Denylist.tsdoes not validate these invariants, which allows malformed genesis configurations to pass validation and fail later during runtime contract execution.Proposed Solution
scripts/genesis/Denylist.tsto reject zero addresses for bothowneranddenylisters.denylisters.I have the fix and test suite ready locally. Could you please assign this issue to me so I can submit a PR? Thanks!