The Assembly contract allows xASTRO and vxASTRO holders as well as Initial Astroport Builders to post and vote on new on-chain proposals that can execute arbitrary logic.
Instantiate the contract with proposal parameter limitations and the xASTRO and builder unlock contract addresses.
{
"xastro_token_addr": "terra...",
"builder_unlock_addr": "terra...",
"proposal_voting_period": 123,
"proposal_effective_delay": 123,
"proposal_expiration_period": 123,
"proposal_required_deposit": "123",
"proposal_required_quorum": "0.55",
"proposal_required_threshold": "0.55",
"whitelisted_links": [
"https://some.link"
]
}
Submit a new on-chain proposal.
{
"receive": {
"sender": "terra...",
"amount": "123",
"msg": "<base64_encoded_json_string>"
}
}
Casts a vote for an active proposal.
{
"cast_vote": {
"proposal_id": 123,
"vote": "for"
}
}
Ends an expired proposal.
{
"end_proposal": {
"proposal_id": 123
}
}
Executes a proposal.
{
"execute_proposal": {
"proposal_id": 123
}
}
Removes a completed proposal from the proposal list.
{
"remove_completed_proposal": {
"proposal_id": 123
}
}
Update contract parameters. Only the Assembly is allowed to update its own parameters.
{
"update_config": {
"xastro_token_addr": "terra...",
"builder_unlock_addr": "terra...",
"proposal_voting_period": 123,
"proposal_effective_delay": 123,
"proposal_expiration_period": 123,
"proposal_required_deposit": "123",
"proposal_required_quorum": "0.55",
"proposal_required_threshold": "0.55",
"whitelist_add": [
"https://some1.link"
],
"whitelist_remove": [
"https://some2.link"
]
}
}
All query messages are described below. A custom struct is defined for each query response.
Returns Astral Assembly parameters.
{
"config": {}
}
Returns the current proposal list.
{
"proposals": {
"start_after": 10,
"limit": 10
}
}
Returns information about a specific proposal.
{
"proposal": {
"proposal_id": 123
}
}
Returns information about the votes cast on a proposal.
{
"proposal_votes": {
"proposal_id": 123
}
}
Returns list of voters of specified proposal.
{
"proposal_voters": {
"proposal_id": 123,
"vote_option": "for",
"start": 30,
"limit": 15
}
}
Returns user voting power for a specific proposal.
{
"user_voting_power": {
"user": "terra...",
"proposal_id": 123
}
}
Returns total voting power for a specific proposal.
{
"total_voting_power": {
"proposal_id": 123
}
}