Annex Docs
Search…
Propose
Create a Proposal to change the protocol. E.g., A proposal can set a aToken's interest rate model or risk parameters on the Comptroller.
Proposals will be voted on by delegated voters. If there is sufficient support before the voting period ends, the proposal shall be automatically enacted. Enacted proposals are queued and executed in the Annex Timelock contract.
The sender must hold more ANN than the current proposal threshold (proposalThreshold()) as of the immediately previous block. If the threshold is 100,000 ANN, the sender must have been delegated more than 1% of all ANN in order to create a proposal. The proposal can have up to 10 actions (based on proposalMaxOperations()).
The proposer cannot create another proposal if they currently have a pending or active proposal. It is not possible to queue two identical actions in the same block (due to a restriction in the Timelock), therefore actions in a single proposal must be unique, and unique proposals that share an identical action must be queued in different blocks.
Governor Alpha
1
function propose(address[] memory targets, uint[] memory values, string[] memory signatures, bytes[] memory calldatas, string memory description) returns (uint)
Copied!
  • targets: The ordered list of target addresses for calls to be made during proposal execution. This array must be the same length as all other array parameters in this function.
  • values: The ordered list of values (i.e. msg.value) to be passed to the calls made during proposal execution. This array must be the same length as all other array parameters in this function.
  • signatures: The ordered list of function signatures to be passed during execution. This array must be the same length as all other array parameters in this function.
  • calldatas: The ordered list of data to be passed to each individual function call during proposal execution. This array must be the same length as all other array parameters in this function.
  • description: A human readable description of the proposal and the changes it will enact.
  • RETURN: The ID of the newly created proposal.
Solidity
1
GovernorAlpha gov = GovernorAlpha(0x123...); // contract address
2
uint proposalId = gov.propose(targets, values, signatures, calldatas, description);
Copied!
Web3 1.2.6
1
const tx = gov.methods.propose(targets, values, signatures, calldatas, description).send({ from: sender });
Copied!
Last modified 4mo ago
Copy link