(DRAFT AIP) Make the distribution of staking rewards (execute buyback function) accessible to everyone

Summary
A short description of what the Astroport Improvement Proposal (AIP) is focused on. Suggest 30 words max.

The proposal suggests adding a “button” or any user-friendly interface in the Astroport app governance tab that would trigger the buyback function. And therefore the accumulation of ASTRO rewards for ASTRO stakers.

Abstract
A 2-4 sentence description of the full AIP going through the problem it solves, how it’s solved and who will and how it will be implemented.

  • Problem Statement - Every trade that happens on Astroport requires a fee paid in LUNA in Terra 2.0.
    A portion of that fee can be used to periodically purchase ASTRO on the open market and deposit it into the xASTRO staking pool.
    However this is not automatic, this ASTRO buyback is designed to happen permissionlessly via an on-chain function call that anyone can make.

Moreover, this buyback function needs to be called for every pair listed on Astroport. So everytime a new pair is added, the code to execute the buyback has to evolve (or some rewards will not be collected)

  • Proposed Solution - a) Add a button or any user-friendly interface on the Astroport app governance tab that would trigger the buyback function (on every pool) so that everyone can do it.
    b) Make sure that every time a new pair is added, the relevant piece of code is added to the buyback function

Motivation
Make the distribution of staking rewards more accessible and more visible. Make it easier for user to engage with the Astroport app and become stakers.

Specification
Proposed process standard details - describes the new process or feature and the problem it is solving.

  • None proposed/necessary (not relevant to this type of request)

Implementation
Describes how the AIP can be implemented or if it was already implemented, how it was done.

  • Write a comprehensive collect_all function to be added to the Maker contract () that would execute all collect functions on currently listed Astroport pools
{
  "collect": {
    "pair_addresses": [
      "terra...",
      "terra..."
    ]
  }
}
  • Modify the execute_create_pair function of the Factory contract so that when it is called, the collect_all buyback function of the Maker contract will collect fees from this new pool as well.
  • Similarly modify the deregister function of the Factory contract
  • Add a button on a governance tab of the Astroport app that would trigger the collect_all function of the Maker contract.

References
A list of supporting materials referenced by this AIP.