2 releases (1 stable)

3.0.0 Aug 23, 2024
3.0.0-rc.1 Jun 20, 2024

#4 in #unlock

27 downloads per month
Used in astroport-emissions-contr…

GPL-3.0-only

125KB
2.5K SLoC

Astral Assembly

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.

InstantiateMsg

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"
  ]
}

ExecuteMsg

receive

Submit a new on-chain proposal.

{
  "receive": {
    "sender": "terra...",
    "amount": "123",
    "msg": "<base64_encoded_json_string>"
  }
}

msg

Example proposal message

{
  "submit_proposal": {
     "title": "Example proposal",
     "description": "Example proposal",
     "link": "https://forum.astroport.fi/",
     "messages":
         [
             {
               "wasm": {
                   "execute": {
                       "contract_addr": "terra..",
                       "msg": "<base64_encoded_json_string>",
                       "funds": []
                   }
               }
             }
         ],
     "ibc_channel": "channel..."
  }
}

cast_vote

Casts a vote for an active proposal.

{
  "cast_vote": {
    "proposal_id": 123,
    "vote": "for"
  }
}

end_proposal

Ends an expired proposal.

{
  "end_proposal": {
    "proposal_id": 123
  }
}

execute_proposal

Executes a proposal.

{
  "execute_proposal": {
    "proposal_id": 123
  }
}

remove_completed_proposal

Removes a completed proposal from the proposal list.

{
  "remove_completed_proposal": {
    "proposal_id": 123
  }
}

update_config

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"
    ]
  }
}

QueryMsg

All query messages are described below. A custom struct is defined for each query response.

config

Returns Astral Assembly parameters.

{
  "config": {}
}

proposals

Returns the current proposal list.

{
  "proposals": {
    "start_after": 10,
    "limit": 10
  }
}

proposal

Returns information about a specific proposal.

{
  "proposal": {
    "proposal_id": 123
  }
}

proposal_votes

Returns information about the votes cast on a proposal.

{
  "proposal_votes": {
    "proposal_id": 123
  }
}

proposal_voters

Returns list of voters of specified proposal.

{
  "proposal_voters": {
    "proposal_id": 123,
    "vote_option": "for",
    "start": 30,
    "limit": 15
  }
}

user_voting_power

Returns user voting power for a specific proposal.

{
  "user_voting_power": {
    "user": "terra...",
    "proposal_id": 123
  }
}

total_voting_power

Returns total voting power for a specific proposal.

{
  "total_voting_power": {
    "proposal_id": 123
  }
}

Dependencies

~15MB
~316K SLoC