risevision / rise-react-wallet Goto Github PK
View Code? Open in Web Editor NEW:electric_plug: Wallet for the RISE DPoS blockchain
License: GNU General Public License v3.0
:electric_plug: Wallet for the RISE DPoS blockchain
License: GNU General Public License v3.0
Currently the settings dialogs only features the close button, however, depending on the step in the different flows, that isn't always correct.
For example, the vote for delegate flow:
Get in touch with @vekexasia regarding the new API endpoint, which supports error messages
Blocks: #35
The vote delegate form should display an error message (like setup 2nd passphrase and register delegate forms) when the account balance is too low to submit the vote transaction.
The back and close buttons don't have aria attributes for accessibility.
Some of the API calls use fetch
and have to be converted to dpos-offline
and dpos-api-wrapper
Many places are missing translations
Typesafe mobx inject method - mobxjs/mobx-react#256
Eg no "Unnamed account" next to "Unnamed account"
Divide /components/forms/SettingsPassphrase
into:
/components/forms/SettingsPassphraseForm
(not an Observer
)/containers/wallet/SettingsPassphrase
(an Observer
)In the vote delegate dialog, the search only works when searching by username. When searching by account address, it doesn't work.
When switching between accounts quickly, the transaction list loaded can be that of the previously selected account.
Steps to reproduce:
Currently the signout button in the wallet components signs the user out immediately.
Mocks in #1
rise-react-wallet/src/utils/utils.ts
Lines 1 to 8 in 1c1e3b7
We should not be using floats to represent money. Floats by design cannot represent exact values and it is bound to create weird bugs down the line, where the user enters a value with many decimal places and then ends up sending a different value.
A proper decimal (library) that represents the value exactly should be used instead.
The current theme colors result in this bright green color for UI elements (settings toggle, FAB [if not overriden]). A better color combination should be selected in the global theme provider for everything to look nice without having to override colors constantly.
This is a tracking issue for various accessibility problems we still need to address.
<a href>
for navigation elements - #85Decouple wallet and onboarding stores from rootStore
to avoid downloading when not needed
Unify the transaction format passed to the UI. Right now sent and received has different fields, which makes handling complicated.
Extract UI stores from WalletStore
AccountStore
TransactionStore
We need to use an external provider for the exchange rates
Add linter rule "," after the last element of array/object (requested by @roosmaa )
Like the old wallet we should implement a push mechanism to get updates from the server. Ideally a less intrusive one than the previous (no pulling).
When searching for delegates in the vote dialog, the returned delegate objects lack the rate
field, so uptime is displayed as NaN
.
Mocks in #1
Mocks in #1
This also includes other states of the dialog (in progress, success, error).
Disclaimer 1: I will be editing the issue description to contain the latest mocks, if you have any comments regarding a mock, please copy the URL of that image into your comment so that the context of your comment would survive my edits
Disclaimer 2: the mocks are more meant to indicate the flow and general design direction. They will have some padding, spacing and font size issues which will be tweaked in the conversion to HTML step.
Remarks:
Remarks:
Remarks:
Remarks:
Remarks:
Remarks:
Remarks:
TODO
Currently the URL mapping is as follows:
/wallet
/wallet/settings
/wallet/send
We should migrate to the following:
/accounts/:address
(e.g. /account/1231413R
) for account overview/accounts/:address/settings
for account settings/accounts/:address/send
for sending from a specific account/accounts
for the list of all accounts (accessible from drawer if user has too many accounts)Blocked by the limitation of TS decorator, FUT microsoft/TypeScript#4881
ES modules build for modern browsers will allow us to avoid transpilation for runtimes which dont need it. Should work based on the script[nomodule]
attribute.
Deploy a live demo, ideally directly from a CI
It seems that the first receive transaction doesn't show under the account overview. Only after another transaction is made, does it show up.
Steps to reproduce:
Global loading indicator component component should be used in App.tsx
and Wallet
components before the selected account has been loaded
Currently the transaction list looks like:
The screenshot above has these issues:
Z
is the delegate username)So all of the possible transaction summaries should be verified to be correct.
Onboarding should check if all the params required by the registration are present and redirect to the start page if not.
We should handle uncaught exceptions with a global error handler, either showing a msg to the user or redirecting to a fallback URL (or both).
Delegate search should be case insensitive, but currently it is case-sensitive. For example, when searching for cor
and Cor
, the results are different.
I don't want to just lowercase the user input as that is probably wrong (as delegates can contain uppercase letters as well). Most likely the API request needs to indicate that this is a case insensitive search.
rise-react-wallet/src/containers/wallet/VoteDelegate.tsx
Lines 62 to 67 in 50c57df
The code snippet above has a small chance of picking a single delegate into 2 (or more) slots.
One option to fix this would be to shuffle the whole active array and then just selecting a slice from that.
Currently there's no errors form the API we use to submit transactions we don't really have a way to implement proper behaviour for the error states of the transaction dialogs.
The following things need to be implemented:
ConfirmTransactionDialog
.The behaviour for the "Try again" button is defined in #1 as:
If the reason why the submission failed was due to connectivity problems, the "Try again" button should be visible and resend the same signed tx that's in the memory. If the error is some account state related and the signed TX itself is invalid and will never be accepted, the "Try again" button should be hidden.
Blocked by: #22
Eject create-react-app configs to be able to customize
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.