Astra DAO
  • 👋Introduction
  • Astra DAO
    • Indices
      • iTokens
      • Tokenomics
      • Staking
      • Fees
    • Launchpad Overview
      • Whitelisting (KYC)
      • Vesting
      • Cross-Chain Staking
    • Roadmap
  • Governance
    • Astra DAO
    • Proposals and Voting
  • Tutorials
    • Indices
      • Creating an Index
      • Entering an Astra DAO Index
      • Staking iTokens
      • Leaving an Astra DAO Index
      • Staking ASTRADAO
        • Claiming Rewards - iTokens Staking and Liquidity Mining
        • Shut-Down an Index
    • Launchpad
      • How to Create a Token Sale
      • How to Invest in a Token Sale
      • How to Complete PureFi KYC
  • Oracle
    • Chainlink
  • Developers
    • Contracts
      • Mainnet
        • Arbitrum
      • Testnet
        • Polygon Mumbai
        • BSC Testnet
    • Transaction details
      • Chef
      • Indices
      • LM Pool
      • Governance
    • Smart Contract Functionality
      • Vesting
      • Payment
      • Indices
      • Governance
      • Chef
      • LM Pool
      • AstraDAO Whitelist
      • LaunchpadConfiguration
      • Launchpad
      • LaunchpadFactory
      • LaunchpadVesting
      • CrossChainSaleManager
  • Security
    • Time Lock
    • Ownership
    • Pausing
    • Security Audits
    • Bug Bounty Program
Powered by GitBook
On this page

Was this helpful?

  1. Developers
  2. Smart Contract Functionality

Governance

Governance will be used to create proposal, vote, queue and execute the proposal.

PreviousIndicesNextChef

Last updated 1 year ago

Was this helpful?

Methods

propose (string,address[],uint[],string[],bytes[],string,bool)

This method is used to create a proposal. To create a proposal, the user needs to stake 500,000 Astra tokens by approving the governance contract. Details such as the type of proposal (fundamental or non-fundamental) should be selected. Fundamental and non-fundamental proposals have different acceptance mechanisms. All the arrays mentioned in parameters should have the same length and each of them is related by the array's index.

  • Parameters

  • string chain : The chain for which is the proposal is intended for, to be passed in the way it is described here -

  • address[] targets: List of contract address whose function will be called.

  • uint[] value: Amount of Ether if any function requires Ether value to call.

  • string[] signatures: Function name which we need to call along with parameter type.

  • bytes[] calldatas: Function parameter converted into bytes format.

  • string description: Description of the proposal.

  • bool _fundametalChanges: Check if the proposal has fundamental changes or not.

castVote(uint,bool)

Cast a vote on a proposal. The account's voting weight is determined by the staking score of that user. Final votes are calculated by staking score multiplied by the multiplier for that user account.

  • Parameters

  • uint proposalId: ID of a proposal in which to cast a vote is called.

  • bool support: Boolean value true for support and false for against.

state(uint)

Gets the proposal state for the specified proposal. The return value, ProposalState is an enumerated type defined in the Governor Bravo contract.

  • Parameters

  • uint proposalId: ID of a proposal to check the status.

  • Return Value

  • ProposalState: Enumerated type ProposalState. The types are Pending, Active, Canceled, Defeated, Succeeded, Queued, Expired, and Executed.

checkfastvote(uint)

Gets the fastvote state for the specified proposal. The return value is a boolean value.

  • Parameters

  • uint proposalId: ID of a proposal to check the fastvote status.

  • Return Value

  • bool: true is proposal is eligible for fast vote.

getReceipt(uint,address)

Gets a proposal ballot receipt of the indicated voter.

  • Parameters

  • uint proposalId: ID of a proposal to check the voting receipt.

  • address voter:

  • Return Value

  • Receipt: Reverts on error. If successful, return a Receipt struct for the ballot of the voter address.

quorumVotes()

The number of votes in support of a proposal required for a quorum to be reached and for a vote to succeed.

  • Return Value

  • uint: Return the quorum votes.

votingDelay()

The delay before voting on a proposal may take place, once proposed.

  • Return Value

  • uint: Return the vote delay value.

votingPeriod()

The duration of voting on a proposal, in blocks.

  • Return Value

  • uint: Return the vote period value.

proposalMaxOperations()

The maximum number of actions that can be included in a proposal.

  • Return Value

  • uint: Return the value of max proposal.

queue(uint)

After a proposal has succeeded, it is moved into the Timelock waiting period using this function. The waiting period (e.g. 2 days) begins when this function is called.

The queue function can be called by any Ethereum address.

  • Parameters

  • uint proposalId: ID of a proposal that has succeeded.

execute(uint)

After the Timelock waiting period has elapsed, a proposal can be executed using this function, which applies the proposal changes to the target contracts. This will invoke each of the actions described in the proposal.

The execute function can be called by any Ethereum address. The address will also need to pay the fee for cross-chain calls if the proposal is intended for a different chain in the native currency, ETH.

Note: this function is payable, so the Timelock contract can invoke payable functions that were selected in the proposal.

  • Parameters

  • uint proposalId: ID of a succeeded proposal to execute.

https://docs.axelar.dev/resources/mainnet