Skip to content

Commit

Permalink
updating readmes
Browse files Browse the repository at this point in the history
  • Loading branch information
kakucodes committed Feb 26, 2024
1 parent a131b39 commit 0dce2e1
Show file tree
Hide file tree
Showing 5 changed files with 37 additions and 55 deletions.
48 changes: 23 additions & 25 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,18 @@ The purpose of this repo is to develop and release a set of asset management/com

## Outpost Architecture

* 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
* `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.
* 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` and `RevokeSpec`
* These queries allow the outposts to dynamically specify the Authz grants/revokes required of the user.
* See [cw-grant-spec](https://github.com/kakucodes/authzpp/tree/main/packages/grant-spec) for more information on how grants are meant to be declared.
- 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
- `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.
- 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` and `RevokeSpec`
- These queries allow the outposts to dynamically specify the Authz grants/revokes required of the user.
- See [cw-grant-spec](https://github.com/kakucodes/authzpp/tree/main/packages/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

## Protocol Usage

Expand All @@ -25,8 +26,6 @@ The expected flow should go as such:
3. The user should grant the previously noted Authz grants to the outpost contract's adress.
4. The outpost's compound message can now be called whenever the compounding of rewards should occur.



## Outposts Progress

| Chain ID | Rewards | Status |
Expand All @@ -40,18 +39,17 @@ The expected flow should go as such:
| `migaloo-1` | `whale dca` | [`in progress`](./contracts/osmodca/README.md) |
| `migaloo-1` | `migaloo stake` | [`in progress`](./contracts/osmodca/README.md) |


## Packages

| Package Name | Description |
| ------------------------------------------------- | ---------------------------------------------------- |
| [deploy](./packages/deploy/README.md) | [cw-orchestrator](https://orchestrator.abstract.money) scripts for deploying the contracts |
| [juno-destinations](./packages/juno-destinations/README.md) | Types, message generators, and grant generators for Juno specific destinations |
| [migaloo-destinations](./packages/migaloo-destinations/README.md) | Types, message generators, and grant generators for Migaloo specific destinations |
| [osmosis-destinations](./packages/osmosis-destinations/README.md) | Types, message generators, and grant generators for Osmosis specific destinations |
| [osmosis-helpers](./packages/osmosis-helpers/README.md) | Helpers for interacting with Osmosis DEX (both lping and swapping) |
| [sail-destinations](./packages/sail-destinations/README.md) | Types, message generators, and grant generators for SAIL specific destinations |
| [terraswap-helpers](./packages/terraswap-helpers/README.md) | Helpers for interacting with Terraswap DEX |
| Package Name | Description |
| --------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- |
| [deploy](./packages/deploy/README.md) | [cw-orchestrator](https://orchestrator.abstract.money) scripts for deploying the contracts |
| [juno-destinations](./packages/juno-destinations/README.md) | Types, message generators, and grant generators for Juno specific destinations |
| [migaloo-destinations](./packages/migaloo-destinations/README.md) | Types, message generators, and grant generators for Migaloo specific destinations |
| [osmosis-destinations](./packages/osmosis-destinations/README.md) | Types, message generators, and grant generators for Osmosis specific destinations |
| [osmosis-helpers](./packages/osmosis-helpers/README.md) | Helpers for interacting with Osmosis DEX (both lping and swapping) |
| [sail-destinations](./packages/sail-destinations/README.md) | Types, message generators, and grant generators for SAIL specific destinations |
| [terraswap-helpers](./packages/terraswap-helpers/README.md) | Helpers for interacting with Terraswap DEX |
| [universal-destinations](./packages/universal-destinations/README.md) | Types, message generators, and grant generators for destinations that are expected to be use on every outpost |
| [utils](./packages/utils/README.md) | Base utilities for building outposts |
| [wynd-helpers](./packages/wynd-helpers/README.md) | Helpers for interacting with Wynd Staking and Wyndex |
| [utils](./packages/utils/README.md) | Base utilities for building outposts |
| [wynd-helpers](./packages/wynd-helpers/README.md) | Helpers for interacting with Wynd Staking and Wyndex |
16 changes: 4 additions & 12 deletions contracts/osmodca/README.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,9 @@
# Osmodca Outpost

Compounding outpost that allows users to specify how they would like to manage OSMO dcaing by percentage. It is intended to be called on a regular basis by Yieldmos so that delegators can manage their rewards in whatever way they would like.
Compounding outpost that allows users to specify how they would like to manage their liquid OSMO balance. Users can select how much OSMO they would like applied to each execution and how frequently they would like it called (as well as how long they are authorizing the outpost to operate on their account for). It is intended to be called on a regular basis by Yieldmos so that delegators can manage their rewards in whatever way they would like.

Care has been taken to made the Destination projects modular and easily extendable when new projects/targets become available
This contract should be deployed along side an instnace of the `comp_prefs` contract which can store the users' outpost settings and `osmostake` which is another outpost contract.

<!-- ## Available Destination Projects
## Further Reading

The things you can do with your rewards during any given compounding.
| Destination Project | Status | Note |
| ------------------- | --------- | -------------------------------------------- |
| `Juno Staking` | `working` | Can specify any validator address |
| `Wynd Staking` | `working` | Can specify any valid unbonding period |
| `Neta Staking` | `working` | |
| `Token Swap` | `working` | Can pick any token that's on Wyndex |
| `Wyndex LPs` | `working` | Must specify the given pool contract address | -->
To learn about the specific destinations that this outpost should support view the [osmosis-destinations](../../packages/osmosis-destinations/README.md) package as that is where the osmosis destination code is meant to be shared.
14 changes: 3 additions & 11 deletions contracts/osmostake/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,8 @@

Compounding outpost that allows users to specify how they would like to manage OSMO staking rewards by percentage. It is intended to be called on a regular basis by Yieldmos so that delegators can manage their rewards in whatever way they would like.

Care has been taken to made the Destination projects modular and easily extendable when new projects/targets become available
This contract should be deployed along side an instnace of the `comp_prefs` contract which can store the users' outpost settings and `osmodca` which is another outpost contract.

<!-- ## Available Destination Projects
## Further Reading

The things you can do with your rewards during any given compounding.
| Destination Project | Status | Note |
| ------------------- | --------- | -------------------------------------------- |
| `Juno Staking` | `working` | Can specify any validator address |
| `Wynd Staking` | `working` | Can specify any valid unbonding period |
| `Neta Staking` | `working` | |
| `Token Swap` | `working` | Can pick any token that's on Wyndex |
| `Wyndex LPs` | `working` | Must specify the given pool contract address | -->
To learn about the specific destinations that this outpost should support view the [osmosis-destinations](../../packages/osmosis-destinations/README.md) package as that is where the osmosis destination code is meant to be shared.
10 changes: 7 additions & 3 deletions packages/osmosis-destinations/README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
### Yieldmos Outpost Ju Helpers
# Osmosis Destinations

This is a set of helper functions to be used by the outpost contracts when interacting with the Juno Network. This should increase ergonomics arounds juno destination projects.
This is the space to store specific logic related to the individual destinations that should be made accessable exlusively on the Osmosis Outposts.

Please note that this is still a pre-release version and breaking changes are expected to be frequent
## Current Destinations

- An up to date list of the currently supported destinations can be viewed in the [`OsmosisDestinationProject`](./src/comp_prefs.rs) enum.
- Implementations of the destination projects (aka `msg gens`) can be seen in all of the different `*-destinations` packages but most notibly [Osmosis `dest_project_gen`](./src/dest_project_gen.rs).
- Grant generator implementations for the `osmosis-destinations` can be found in [Osmosis `grants`](./src/grants.rs).
4 changes: 0 additions & 4 deletions packages/universal-destinations/README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1 @@
### Yieldmos Outpost Ju Helpers

This is a set of helper functions to be used by the outpost contracts when interacting with the Juno Network. This should increase ergonomics arounds juno destination projects.

Please note that this is still a pre-release version and breaking changes are expected to be frequent

0 comments on commit 0dce2e1

Please sign in to comment.