Description:
In Governance::propose, the ProposalData struct is initialised with:
proposer: env.current_contract_address(),
This means every proposal is attributed to the governance contract itself, not the actual user who submitted the proposal. It makes off-chain attribution impossible and breaks any future access-control on proposal cancellation.
Expected behaviour:
propose() should accept a proposer: Address parameter, call proposer.require_auth(), and store that address.
Labels: bug, contracts, governance
Description:
In
Governance::propose, theProposalDatastruct is initialised with:This means every proposal is attributed to the governance contract itself, not the actual user who submitted the proposal. It makes off-chain attribution impossible and breaks any future access-control on proposal cancellation.
Expected behaviour:
propose()should accept aproposer: Addressparameter, callproposer.require_auth(), and store that address.Labels:
bug,contracts,governance