Skip to content

propose() sets proposer to env.current_contract_address() instead of the caller #23

Description

@Escelit

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions