aragon / client

(Aragon 1) Create and manage decentralized organizations on Ethereum.
https://client.aragon.org
GNU Affero General Public License v3.0
829 stars 273 forks source link

Global Setting: Token Watchlist #740

Open lkngtn opened 5 years ago

lkngtn commented 5 years ago

Is your feature request related to a problem? Please describe. I've been testing Autark's Projects and Allocations apps, and noticed that there seems to be a pattern where an application needs to know which token addresses it should watch in order to populate the UI. In finance when a token is deposited for the first time it will monitor the vault for that token from that point forward. It will also include it when populating the "select token" dropdown. There is a seperate issue #624 which asks to add a watchlist function to finance, so a token can be added to the finance apps watchlist without having to make a deposit (which is sometimes not practical), eg when a token has been sent to the vault directly but the user doesn't have any of those tokens to deposit into the finance app.

The projects and allocations have similar functionality where a list needs to be populated with tokens, but it only makes sense to populate the list with tokens that the organization cares for.

Describe the solution you'd like I would like to see this idea of adding a token address to a token watchlist done via some sort of organization wide global setting that applications can reference instead of independently implementing the same thing over and over.

It would be great if this could also address #739 by allowing the organization to add metadata about the tokens.

Describe alternatives you've considered Rather than as a global settings, this could be implemented as standalone app, but then it would likely need to be a dependency for finance and other apps which would reference it.

sohkai commented 5 years ago

This is blocked by organizations holding data blobs, but afterwards should be quite easy to introduce into apps as a new API.

We could look at consolidating this with #624, but my impression is that the two have different use cases:

I imagine users may also want to specify different tokens for different apps and manage them differently, however both would ideally persist across different browsing sessions.

lkngtn commented 5 years ago

I'm not sure how often the "App-specific" tokens would come up, even with finance, it seems like most apps would be interested in watching the same tokens?

Is there a case where you would want to watch a token in finance, but not want to watch it in say TPS allocations or projects apps?

sohkai commented 5 years ago

One particular one would be reputation tokens; they don't really have a "financial" use but are useful in TPS' apps. Another one would be NFTs; they're useful for an Agent app / etc, but may not be as useful in the context of finance.

My impression is that there will be a lot of random tokens people will be interested in, in various specialized applications, such that it may become too noisy if every application used the entire set of watched tokens.

lkngtn commented 5 years ago

I wouldn't consider NFT in a global token watchlist, I'm thinking ERC20 tokens specifically.

Reputation (or non-transferrable tokens) in general is an interesting case to explore. The problem is that currently non-transferrable tokens are fully non-transferrable, so they don't make sense in finance OR projects. In the future TPS plans to add support for assigning non-transferrable tokens via bounties and allocations but this will require some sort of adjustment to make tokens "conditionally non-transferrable" eg they are only transferrable to by specific contracts (such as the bounties contract or allocations contract... or even finance)