Governance Proposal Control
The marker module supports an extensive amount of control over markers via governance proposal. This allows a marker to be defined where no single account is allowed to make modifications and yet it is still possible to issue change requests through passing a governance proposal.
- Add Marker Proposal
- Supply Increase Proposal
- Supply Decrease Proposal
- Set Administrator Proposal
- Remove Administrator Proposal
- Change Status Proposal
- Withdraw Escrow Proposal
- Set Denom Metadata Proposal
Add Marker Proposal
AddMarkerProposal defines a governance proposal to create a new marker.
In a typical add marker situation the UnrestrictedDenomRegex
parameter would be used to enforce longer denom
values (preventing users from creating coins with well known symbols such as BTC, ETH, etc.). Markers added
via governance proposal are only limited by the more generic Coin Validation Denom expression enforced by the
bank module.
A further difference from the standard add marker flow is that governance proposals to add a marker can directly
set a marker to the Active
status with the appropriate minting operations performed immediately.
This request is expected to fail if:
- The governance proposal format (title, description, etc) is invalid
- The marker request contains an invalid denom value
- The marker already exists
- The amount of coin in circulation could not be set.
- There is already coin in circulation [perhaps from genesis] and the configured supply is less than this amount and it is not possible to burn sufficient coin to make the requested supply match actual supply
- The mint operation fails for any reason (see bank module)
Supply Increase Proposal
SupplyIncreaseProposal defines a governance proposal to administer a marker and increase total supply of the marker through minting coin and placing it within the marker or assigning it directly to an account.
This request is expected to fail if:
- The governance proposal format (title, description, etc) is invalid
- The requested supply exceeds the configuration parameter for
MaxSupply
Supply Decrease Proposal
SupplyDecreaseProposal defines a governance proposal to administer a marker and decrease the total supply through burning coin held within the marker
This request is expected to fail if:
- The governance proposal format (title, description, etc) is invalid
- Marker does not allow governance control (
AllowGovernanceControl
) - The marker account itself is not holding sufficient supply to cover the amount of coin requested to burn
- The amount of resulting supply would be less than zero
The chain will panic and halt if:
- The bank burn operation fails for any reason (see bank module)
Set Administrator Proposal
SetAdministratorProposal defines a governance proposal to administer a marker and set administrators with specific access on the marker
This request is expected to fail if:
- The governance proposal format (title, description, etc) is invalid
- The marker does not exist
- Marker does not allow governance control (
AllowGovernanceControl
) - Any of the access grants are invalid
Remove Administrator Proposal
RemoveAdministratorProposal defines a governance proposal to administer a marker and remove all permissions for a given address
This request is expected to fail if:
- The governance proposal format (title, description, etc) is invalid
- The marker does not exist
- Marker does not allow governance control (
AllowGovernanceControl
) - The address to be removed is not present
Change Status Proposal
ChangeStatusProposal defines a governance proposal to administer a marker to change its status
This request is expected to fail if:
- The governance proposal format (title, description, etc) is invalid
- Marker does not allow governance control (
AllowGovernanceControl
) - The requested status is invalid
- The new status is not a valid transition from the current status
- For destroyed markers
- The supply of the marker is greater than zero and the amount held by the marker account does not equal this value resulting in the failure to burn all remaining supply.
Withdraw Escrow Proposal
WithdrawEscrowProposal defines a governance proposal to withdraw escrow coins from a marker
This request is expected to fail if:
- The governance proposal format (title, description, etc) is invalid
- Marker does not allow governance control (
AllowGovernanceControl
) - The marker account is not holding sufficient assets to cover the requested withdrawal amounts.
Set Denom Metadata Proposal
SetDenomMetadataProposal defines a governance proposal to set the metadata for a denom.
This request is expected to fail if:
- The governance proposal format (title, description, etc) is invalid
- Marker does not allow governance control (
AllowGovernanceControl
)