3.5 KiB
Idea code: DEV#003 Status: Done Created: 2017-11-08 Started: 2017-11-14 Ended: 2018-01-04
Summary
Add ERC20 support
Idea proposal
As a user I want my ERC20 tokens to be first class citizen.
Swarm Participants
- Lead Contributor: @jeluard
- Contributor: @goranjovic
- Support: @3esmit
- Tester: @asemiankevich
Swarm channel: 3-erc20
Requirements
A user should be able to manage its ERC20 tokens pretty much the same way as ETH.
In particular wallet
and send
command must support ERC20 tokens.
As a first step considered ERC20 tokens will be based on a static list embedded in the application. This might be revisited later (see #18).
ERC20 extensions might also be considered: ERC223, Minime (SNT itself is a Minime token).
Zeplin references
- Assets https://zpl.io/blwD8ka
- wallet main screen (with list of assets shown + managin assets) https://zpl.io/b6d1eNV
Board
https://github.com/status-im/status-react/projects/4
Goals & Implementation Plan
Following features should be considered:
- list wallet tokens
- provide default token
- send tokens to a contact
- request token from a contact
- get current price
- get historical price
- get token details (historical price, market cap, # tokens, volume, crowdsale)
- list historical transactions
- add gas and data support when sending transaction
- chart graphs
Can be split in 4 categories:
- wallet token details (access and management)
- token details (static and dynamic data)
- token price details
- token transactions
Token details will require some metadata currently not available in ethereum.
Token price details can be provided by cryptocompare
.
Minimum Viable Product
List user tokens and display token details
Goal Date: 2017-12-01 Started: 2017-11-15 Completed: 2017-12-05 Description: token list and details
Iteration 1
Allow sending and requesting tokens. Show token historical data and update percentage info
Goal Date: 2017-12-15 Started: 2017-12-06 Completed: 2018-01-04 Description: send/request tokens
Post Mortem
What could be improved
App structure refinement was defined during the first iteration and significantly impacted the scope of this iteration. Specifically @goranjovic work around asset details had to be removed.
A number of technical elements has been discovered and added to the todo list during development. It appears primordial to spend some time during the first days to have a detailed understanding of what's to be done and technical impacts. It appears our decentralized nature makes some usually simple things harder to implement.
Finally we discovered pretty late some technical limitations that prevented us to implement some features (e.g. token transaction history).
What went well
Overall implementation went smoothly and we had fast test cycle thanks to @asemiankevich .
Appendix: archive of future work
Known limitations
Due to technical constraints some features have been left out and will be addressed after prerequisites have been implemented.
- no token transaction history (etherscan API doesn't support that)
- send command: no token support (requires upgrade to API, support for deep linking)
- request disabled for tokens (requires upgrade to API)
Copyright
Copyright and related rights waived via CC0.