Prize Bounty
80,000 ASTRO
Challenge Description
Finalize the metastable pool implementation. In order to be eligible for the bounty, a developer needs to submit an implementation that satisfies the following criteria:
- Use this PR as a base for the final metastable pool implementation
- As opposed to the virtual metastable pool implementation from the PR mentioned above, this metastable pool should fetch prices (for the token that deviates in price over time, e.g stLUNA, ampLUNA) from another contract and facilitate swapping and liquidity provision according to the latest price. You do NOT need to implement this external price feed contract but the way you call the oracle contract from the pool contract should allow for a wide range of oracle contract implementations
- Ensure the base stableswap logic is similar to the one in the vanilla stableswap implementation (besides adding the feature to account for the price divergence in one token)
- Allow the Astroport protocol to charge swap fees for the metastable pool type similar to how it charges fees for vanilla stableswaps. This means the metastable pool will not be “virtual” like it was initially intended in the linked PR
- Reintegrate the initial metastable pool code with the Astroport Factory and Maker
- Full unit test coverage and integration
- Unit tests for swapping tokens such as stLUNA-LUNA and stINJ-INJ
- Integration tests to ensure the Astroport Maker can swap fees using a metastable pool and that the Factory contract can be used to create new pools of this type
- Deploy the pool on one of Astroport's testnets (Terra 2 Pisco, Injective testnet etc) and show that it works as expected
Lastly, each contestant must resolve any issues and comments that arise during the revision process.
Submission Requirements
Send submissions by replying to the bounty announcement thread on Discord.
Your final submission must be in a PR where you acknowledge that the code will be released under Astroport’s license.