grantSigningRole and revokeSigningRole.However, the constructor fails to grant the DEFAULT_ADMIN_ROLE to the deployer. Since OpenZeppelin’s AccessControl requires the admin role to manage other roles, this omission permanently disables all signer management functionality — rendering grantSigningRole and revokeSigningRole unusable.
The issue occurs on every single deployment of the contract in its current state.
It is deterministic and unavoidable — not dependent on user behavior, edge cases, or external conditions.
Since the constructor never grants DEFAULT_ADMIN_ROLE, role management is guaranteed to fail for all future calls to grantSigningRole and revokeSigningRole.
impact
Breaks core functionality: The contract cannot add or remove signers after deployment.
Reduces security model: A 3-of-5 multisig becomes a 1-of-1 wallet (only the deployer can propose and — if confirmations are counted — confirm), completely undermining the multisig guarantee.Grant DEFAULT_ADMIN_ROLE to the deployer in the constructor:
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.
The contest is complete and the rewards are being distributed.