Types of Proposals
-
There are currently 6 types of proposals that can be submitted on Carbon.
1. Parameter Change
2. Text Change
3. Software Upgrade
4. Cancel Software Upgrade
5. Community Pool Spend
6. Set Reward WeightsProposals that do not undergo modification of the source code is a plain text proposal. For example, an opinion or signaling poll. A software upgrade proposal however requires the validators to update their software in accordance to the passed proposal. Hence, discussion of the software upgrade may be discussed using plain text proposals and only actual upgrades are done via software upgrade proposals.
All proposals will have these base fields:
{ "title": string "description": string }
title
- title of your proposal
description
- detailed description of the reason for the proposal and what it is going to doParameter Change Proposals
Parameter changes are like changing settings. For example, increasing the number of validators is a parameter change. Propose a parameter change in the chain. Such as changing the number of max validators from 17 to 21.
type: "cosmos-sdk/ParameterChangeProposal"
{ "title": string "description": string "changes": Array<{ "subspace": string "key": string "value": string }> }
changes.subspace
- Module, e.g. gov, slashing, staking
changes.key
- Parameter key of value to change
changes.value
- Value to change toRefer to this list of parameters that can be changed.
Text
Proposals that do not involve a modification of the source code go under this type. For example, an opinion poll would use a proposal of type PlainTextProposal.
type: "cosmos-sdk/TextProposal"
{ "title": string "description": string }
Software Upgrade
Propose a software upgrade to happen at a specific block height or time. If there is another scheduled plan, it will override it.
type: "cosmos-sdk/SoftwareUpgradeProposal"
{ "title": string "description": string "plan": { "name": string "time": string "height": int64 "info": string } }
Software upgrade will begin on
height
ortime
proposed, but not both.plan.name
- Name of the plan.
plan.time
- When chain reaches proposed time, software upgrade will begin.
plan.height
- When chain reaches proposed height, software upgrade will begin.
plan.info
- Metadata about the upgrade.
Cancel Sofware Upgrade
Propose to abort a previously voted upgrade.
type: "cosmos-sdk/CancelSoftwareUpgradeProposal"
{ "title": string "description": string }
Community Pool Spend
Propose to spend the community pool fund by sending amount to recipient address.
type: "cosmos-sdk/CommunityPoolSpendProposal"
{ "title": string "description": string "recipient": string "amount": Array<{ "denom": string "amount": Int }> }
recipent
- Account to receive funds from community pool
amount
- Amount to receiveSet Reward weights
Propose the respective pools weights to determine the distribution of rewards/fees among pools.
Distribution ratio for a given pool is calculated by taking the weight of the pool divided by the total weight of all pools. Pools that are not included in the proposal will remain unchanged.
type: "liquiditypool/SetRewardsWeightsProposal"
{ "title": string "description": string "msg": { "weights": Array<{ "pool_id": uint64 "weight": Int }> "originator": string } }
msg.weights.pool_id
- Pool identifier
msg.weights.weight
- Weight of pool
msg.originator
- Proposer's address