The purpose of this repo is to develop and release a set of asset management/compounding contracts predicated upon the functionality enabled by the CSDK Authz module.
- Outpost contracts do not and should not hold user funds.
CompPrefs
refers to the users' selected settings for how they would like the outpost to automate their funds- There is a dedicated
comp_prefs
contract meant for local chain storage of user comp prefs
- There is a dedicated
Destination Projects
/DestProjects
refer to the various targets that a user can select from when coming up with their comp prefs.- Each outpost contract is built for a specific chain and is deployed only there.
- It is only distinct from it's sibling contracts to avoid grant collisions in the Authz module.
- For example osmostake and osmodca are seperate so that they each have their own address and thus hold their own unique grants from users and the grants given to one never clash with the other.
- It is only distinct from it's sibling contracts to avoid grant collisions in the Authz module.
- Each chain that we're deploying outposts to should have it's own chain-destinations package where code can be reused between the different outpost contracts
- A key part of the way the system can function is that the contracts contain queries called
GrantSpec
andRevokeSpec
- These queries allow the outposts to dynamically specify the Authz grants/revokes required of the user.
- See cw-grant-spec for more information on how grants are meant to be declared.
- Care has been taken to made the destination projects modular and easily extendable when new projects/targets become available
The expected flow should go as such:
- The user should generate their own set of compounding preferences and have them stored wherever they expect to be broadcasting the compounding message (This could be with Yieldmos itself or in the dapp/browser or potentially on the user's own computer for use via the cli).
- The comp prefs should be given to the outpost in the grants query with the outpost returning a list of the requisite grants that will be needed to fulfilled in order for the outpost be able to later compound for them according to their comp prefs.
- The user should grant the previously noted Authz grants to the outpost contract's adress.
- The outpost's compound message can now be called whenever the compounding of rewards should occur.
Chain ID | Rewards | Status |
---|---|---|
juno-1 |
staking |
deployed |
juno-1 |
wynd staking |
deployed |
juno-1 |
white whale satellite market |
deployed |
juno-1 |
juno dca |
deployed |
osmosis-1 |
staking |
in progress |
osmosis-1 |
osmo dca |
in progress |
migaloo-1 |
whale dca |
in progress |
migaloo-1 |
migaloo stake |
in progress |
Package Name | Description |
---|---|
deploy | cw-orchestrator scripts for deploying the contracts |
juno-destinations | Types, message generators, and grant generators for Juno specific destinations |
migaloo-destinations | Types, message generators, and grant generators for Migaloo specific destinations |
osmosis-destinations | Types, message generators, and grant generators for Osmosis specific destinations |
osmosis-helpers | Helpers for interacting with Osmosis DEX (both lping and swapping) |
sail-destinations | Types, message generators, and grant generators for SAIL specific destinations |
terraswap-helpers | Helpers for interacting with Terraswap DEX |
universal-destinations | Types, message generators, and grant generators for destinations that are expected to be use on every outpost |
utils | Base utilities for building outposts |
wynd-helpers | Helpers for interacting with Wynd Staking and Wyndex |