Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: release Astroport Governance v3 #109

Merged
merged 52 commits into from
Apr 5, 2024
Merged

Conversation

epanchee
Copy link
Collaborator

@epanchee epanchee commented Apr 2, 2024

This PR brings new native xASTRO token based Astroport Governance which will be deployed on Neutron during the Hub move. It also contains WIP contracts for the new vxASTRO design and interchain governance (excluded from workspace for now).

Related PRs:

Notable changes

  • Assembly requires native xASTRO to be sent along with submit proposal message;
  • xASTRO balance tracking is now handled through tracker contract which is set in token factory bank hook;
  • Revamped Assembly's state design which now helps to handle more voters and reduces voting gas cost;
  • Special migration logic to gratefully convert Satellite contract to Assembly on Neutron;
  • Builder unlock contract was fully revamped; removed unused functions, updated state design and made it able to handle native ASTRO.

donovansolms and others added 30 commits July 14, 2023 13:23
* Add ability for generator controller to create immediate proposals
* Add main vxASTRO lite contract
* Add Generator Controller contract for vxASTRO lite
* Update contracts/voting_escrow_lite/src/execute.rs

Co-authored-by: Timofey <[email protected]>

* Move check_controller_supports_channel to package for reuse
* Rework update_networks, tune_pools and group_pools_by_network
* Set generator-controller-lite to v1.0.0
* Set vxASTRO lite to v1.0.0
* Update terra to use wasm instead
* Update tune_pools attributes
* Restructure attributes in tune_pools
* Enforce emissions proposals to have messages
* Update ExecuteEmissionsProposal to confirm to updated Assembly
* Make Assembly address required on instantiate
* Make Assembly required in generator controller
* Rework vote cooldown logic
* Add automatic kicking of unlocked vxASTRO holder
* Update packages/astroport-tests-lite/src/lib.rs

Co-authored-by: Sergei Shadoy <[email protected]>

* feat(vxastro_lite): Enable interchain voting and governance
* fix(vxastro_lite): Finalise Outpost unlock on confirmation
* Update contracts/voting_escrow_lite/src/execute.rs

Co-authored-by: Timofey <[email protected]>

* Update contracts/generator_controller_lite/src/utils.rs

Co-authored-by: Timofey <[email protected]>

* fix(assembly): Change Addr to String
* fix(generator_controller_lite): Remove use of Addr in favour of String
* Update contracts/generator_controller_lite/src/contract.rs

Co-authored-by: Timofey <[email protected]>

* fix(generator_controller_lite): Reject removing of native network
* fix(generator_controller_lite): Implement custom address generator

---------

Co-authored-by: Timofey <[email protected]>
Co-authored-by: Sergei Shadoy <[email protected]>
* feat(hub): Add Hub contract
* feat(outpost): Add Outpost contract
* feat(interchain): Add documentation
* feat(hub): Add all unit tests
* feat(outpost): Add tests
* feat(interchain): Forward blacklisted address to Hub
* feat(hub/outpost): Only unlock vxASTRO when kick is confirmed
* fix(outpost): Relock vxASTRO on Hub failure
* Update contracts/hub/src/state.rs

Co-authored-by: Timofey <[email protected]>

* Update contracts/hub/src/execute.rs

Co-authored-by: Timofey <[email protected]>

* Update contracts/hub/src/ibc_misc.rs

Co-authored-by: Timofey <[email protected]>

* fix(hub): Use reply_on_success instead of reply_always in staking/unstaking
* fix(hub/outpost): Use minimal proposal format in queries
* Update contracts/hub/src/execute.rs

Co-authored-by: Timofey <[email protected]>

* feat(hub): Add ability to query user funds stuck on Hub
* fix(hub): Implement whitelisted IBC packet accept
* fix(hub): Use reply_on_success instead of reply_always
* fix(outpost): Add non_exhaustive to Hub enum
* fix(outpost): Move to IBC channel whitelisting
* fix(outpost): Add additional IBC auth check tests
* fix(hub): Fail transfers with memo not for us
* Update contracts/outpost/src/execute.rs

Co-authored-by: Timofey <[email protected]>

* Update contracts/hub/src/ibc.rs

Co-authored-by: Sergei Shadoy <[email protected]>

* fix(outpost): Cache votes to prevent spamming
* fix(hub): Improve test coverage
* fix(actions): Bump to Rust version 1.68
* fix(assembly): Add additional safety checks for Outpost voting
* fix(hub): Track balances of xASTRO minted at timestamps
* feat(assembly): Enable guardian to remove Outpost votes
* fix(hub): Remove temporary CW20-ICS20 TransferMsg
* fix(Hub): Add invariant check for emission voting power
* Update contracts/hub/src/ibc.rs

Co-authored-by: Sergei Shadoy <[email protected]>

* Update contracts/hub/src/ibc.rs

Co-authored-by: Sergei Shadoy <[email protected]>

* fix(hub/outpost): Check channel support when updating config
* fix(hub): Track total balance separately
* fix(hub): Add paging to Outposts query

---------

Co-authored-by: Timofey <[email protected]>
Co-authored-by: Sergei Shadoy <[email protected]>
* fix(assembly): replace ListChannels with Channel query

* fix(tests): Add IbcQuery::Channel mock

---------

Co-authored-by: Donovan Solms <[email protected]>
don't be upset we'll add them after we move the hub
# Conflicts:
#	Cargo.lock
#	contracts/assembly/Cargo.toml
#	contracts/hub/src/mock.rs
#	contracts/outpost/src/mock.rs
#	packages/astroport-governance/Cargo.toml
#	packages/astroport-governance/src/utils.rs
feat(governance): move the Hub to Neutron; support for native ASTRO and xASTRO
* bump astroport to v4

* bump astroport-governance to v3

* remove unused scripts; bust Rust in CI
# Conflicts:
#	.github/workflows/tests_and_checks.yml
#	Cargo.lock
#	contracts/assembly/Cargo.toml
#	contracts/builder_unlock/Cargo.toml
#	contracts/escrow_fee_distributor/Cargo.toml
#	contracts/generator_controller/Cargo.toml
#	contracts/voting_escrow/Cargo.toml
#	packages/astroport-governance/Cargo.toml
#	packages/astroport-tests/Cargo.toml
#	scripts/check_artifacts_size.sh
@epanchee epanchee merged commit c3f3de1 into main Apr 5, 2024
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants