Aquarius Documentation
  • Aquarius Loan Documentation
  • Getting Started
    • Networks
    • Protocol Math
      • aToken and Underlying Decimals
      • Interpreting Exchange Rates
      • Calculating Accrued Interest
      • Calculating the APY Using Rate Per Block
    • Gas Costs
  • ATokens
    • Mint
    • Redeem
    • Redeem Underlying
    • Borrow
    • Repay Borrow
    • Repay Borrow Behalf
    • Transfer
    • Liquidate Borrow
    • Key Events
    • Error Codes
    • Failure Info
    • Exchange Rate
    • Get Cash
    • Total Borrow
    • Borrow Balance
    • Borrow Rate
    • Total Supply
    • Underlying Balance
    • Supply Rate
    • Total Reserves
    • Reserve Factor
  • Comptroller
    • Enter Markets
    • Exit Market
    • Get Assets In
    • Collateral Factor
    • Get Account Liquidity
    • Close Factor
    • Liquidation Incentive
    • Key Events
    • Error Codes
    • Failure Info
    • ARS Distribution Speeds
    • Claim ARS
    • Market Metadata
  • Governance
    • Delegate
    • Delegate By Signature
    • Get Current Votes
    • Get Prior Votes
    • Key Events
    • Governor Bravo
    • Quorum Votes
    • Proposal Threshold
    • Proposal Max Operations
    • Voting Delay
    • Voting Period
    • Propose
    • Queue
    • Execute
    • Cancel
    • Get Actions
    • Get Receipt
    • State
    • Cast Vote
    • Cast Vote With Reason
    • Cast Vote By Signature
    • Timelock
    • Pause Guardian
  • Reward Vesting and Staking
    • Reward Vesting
    • ARS Staking
    • Explainer Video
  • LP Staking
    • LP Utility
    • LP Staking Options
    • Zapping LP
    • Maintaining Eligibility Status
    • Explainer Video
  • API
    • ATokenService
      • GET: /atoken
    • MarketHistoryService
      • GET: /market_history/graph
    • ProposalService
      • GET: /proposals
      • GET: /proposals/:id
      • GET: /proposals/statistics
    • VoterService
      • GET: /voters/accounts
      • GET: /voters/accounts/:address
      • GET: /voters/history/:address
      • GET: /voters/:proposalId
    • GovernanceService
      • GET: /governance/aquarius
      • GET: /governance/proposals
      • GET: /governance/proposal_vote_receipts
      • GET: /governance/accounts
    • Shared Data Types
  • Aquarius.js
    • Aquarius Constructor
    • API Methods
      • Account
      • aToken
      • Market History
      • Governance
    • aToken Methods
      • Supply
      • Redeem
      • Borrow
      • Repay Borrow
    • ARS Methods
      • To Checksum Address
      • Get ARS Balance
      • Get ARS Accrued
      • Claim ARS
      • Delegate
      • Delegate By Sig
      • Create Delegate Signature
    • Comptroller Methods
      • Enter Markets
      • Exit Market
    • Ethereum Methods
      • Read
      • Trx
      • Get Balance
    • Governance Methods
      • Cast Vote
      • Cast Vote By Sig
      • Create Vote Signature
    • Price Feed Methods
      • Get Price
    • Utility Methods
      • Get Address
      • Get ABI
      • Get Network Name With Chain ID
  • Security
    • Formal Verification
    • Bug Bounty Program
  • Terms of Service
Powered by GitBook
On this page
  1. Governance

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 Aquarius Timelock contract.

The sender must hold more ARS than the current proposal threshold (proposalThreshold()) as of the immediately previous block. If the threshold is 10,000,000 ARS, the sender must have been delegated more than 1% of all ARS 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 Bravo

function propose(address[] memory targets, uint[] memory values, string[] memory signatures, bytes[] memory calldatas, string memory description) returns (uint)
  • 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

GovernorBravo gov = GovernorBravo(0x123...); // contract address
uint proposalId = gov.propose(targets, values, signatures, calldatas, description);

Web3 1.2.6

const tx = gov.methods.propose(targets, values, signatures, calldatas, description).send({ from: sender });
PreviousVoting PeriodNextQueue

Last updated 1 year ago