Code Monkey home page Code Monkey logo

nova-spektr's People

Contributors

asmadek avatar dependabot[bot] avatar egor0798 avatar github-actions[bot] avatar leohar avatar pgolovkin avatar sokolova-an avatar stepanlav avatar tbaut avatar tuul-wq avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

nova-spektr's Issues

As a developer I'm getting too much notification from the metadata portal #2vtm4m9

As a developer I'm getting too much notification from the metadata portal
I'd like to get only critical notifications or call to actions.

Job
Where event may happen
Error code
What does it mean
ASIS notification
TOBE notification
update&sign
Any fault
0
Some unexpected error
❌️ Error updating metadata! ❌
❌️ Error updating metadata! ❌
update&sign/update
Update QRs from RPC nodes
12
Some of networks were not checked for updates
Some networks were not available! Please, check the log!
Some networks were not available! Please, check the log!
update&sign/update
Run collector
12
Some of network RPC node were not added to the data.json file. This file is required for the deployment only.
Some networks were not available! Redeployment required!
May be removed
update&sign/check-deployment
Check existing deployment
12
Some of networks metadata is outdated
Redeployment required!

May be removed
update&sign/check-deployment
Run collector

12
Some of network RPC node were not added to the data.json file. This file is required for the deployment only.
Some networks were not available! Redeployment required!
May be removed
deploy
Run verifier
0
Bad meetadata signature
❌️ Error deploying metadata! ❌
❌️ Error deploying metadata! ❌
deploy
Run collector
12
Some of network RPC node were not added to the data.json file. This file is required for the deployment only.
Warning metadata deployed but should be updated one more time!
Warning metadata deployed but should be updated one more time!

deploy
Any fault
0
Some unexpected error
❌️ Error deploying metadata! ❌
❌️ Error deploying metadata! ❌

According to the table below notifications will be sent only if:
Some of networks were not available during the update and Metadata PR preparation
Metadata signature verification error
If network is not available during the deployment and it's out of data.json , as a result it won't be added to the UI
Unexpected errors

Watch only flow. Wrong hint processing for continue button #2wmjvnj

If you paste an address without entering a wallet name - continue button will show wrong error "Type or paste an address..."

Case:
Go to onboarding via Watch Only flow
Paste an address

Actual result:
Final button show wrong message (also looks like it is wrong state, as address icon shows like address isn't correct)

Expected result:
Final button shows hint:
"Type a name to finish..."

As a user I'd like to be able to find the asset/network on the balances page #2vxnguq

As a user I'd like to be able to find the asset/network on the balances page
Pre-requisites:
Omni application is running
The user is on the balances page
Valid scenario:
User types something in the search field
The Omni application show search results based on Search rules on the balances page
Alternative scenarios:
n/a
Error scenarios:
n/a

Search algorithm:
Search should compare token name or ticker or network name with the search string
Given that:
== is equals ignore case
a contains b mean that string a contains substring b ignoring the case
if search string == ticker then added the token to the search result go to 1.a
For all other tickers check if search string == ticker then added the token to the search result end.
if token name contains search string then add token to the search result go to 3
if network name contains search string then add whole network with all tokens to the search result end.

Search by token name or ticker or network
If network match search criteria then show the network and all it's tokens
If ticker match search criteria then show the network and token(s) that matches the ticker
If token name match search criteria then show the network and token(s) that match the token name
The search not case sensitive
The search should work by substring ( like in SQL). if user sta then Astar should be found.
The search shows tokens with zero balance even if Hide zero balances is on

The example for search by Astar word.

DOD:
Search implementation
Unit tests

Network connection type selector component #2x76p77

Network connection type selector component that will allow to:
Switch between radio buttons items
Navigate to edit or remove some items
Add new items
The Disable network button
Open pop up with warnings where user will be able to proceed or not
Open pop up with add/edit dialogue

As a metadata portal developer I'd like to get notification about CI and CD updates in the telegram #2vj6hk1

As a metadata portal developer I'd like to get notification about CI and CD updates in the telegram
Pre-requisites:
Metadata portal CI or CD is running
Valid scenario:
Metadata portal QR codes updated
Send message to the Telegram
Alternative scenarios:
n/a
Error scenarios:
Error updating QR codes 2.a ➝ Send message to the telegram

Pre-requisites:
Metadata portal CI or CD is running
Valid scenario:
Metadata portal was deployed
Send message to the Telegram
Alternative scenarios:
n/a
Error scenarios:
Error on deployment 2.a ➝ Send message to the telegram

DOD:
Add env variable for turn on/off Telegram notifications
Add Telegram bot credentials
Configure notifications for deploy and update&sign actions
Turn off matrix notification

As a User I'd like to be able to hide and show zero balances on the Balances page #2kchfkt

As a User I'd like to be able to show zero balances on the Balances page
Pre-requisites:
The Omni application is running
The User has opened the Balances page
Valid scenario:
The user toggles the "Hide zero balances" to off
The Omni application show the list of all supported networks and tokens even if the token balance is 0
Alternative scenarios:
n/a
Error scenarios:
n/a

As a User I'd like to be able to hide zero balances on the Balances page
Pre-requisites:
The Omni application is running
The User has opened the Balances page
The "Hide zero balances" toggled to off
Valid scenario:
By default (after the application installed) the zero balances are hided (toggle is in on state)
The user toggles the "Hide zero balances" to on
The Omni application hides the list of tokens where user's balance is 0
If the balance of all tokens from the same chain is 0 then the network should be hided too
Alternative scenarios:
n/a
Error scenarios:
n/a

Wallet service implementation #2unj3eu

Wallet service implementation.

Wallet services should:
Save wallet into the DB
Read wallets from the DB
Read wallet from the DB
Save the list of the selected wallet
Save the wallet type (WATCH_ONLY, PARITY_SIGNER)

As a user I'd like to get the latest metadata even if some network metadata wasn't updated #2vc9xey

As a user I'd like to get the latest metadata even if some network metadata wasn't updated
Pre-requisites:
The Metadata portal metadata was updated and merged
Some of the networks has performed the runtime upgrade
The Metadata portal upgrade was started
Valid scenario:
The Metadata portal checks if the Metadata is up to date
The Metadata portal runs the deployment
Alternative scenarios:
2.a the Metadata is not up to date ➝ Send the notification to the Matrix chat and proceed the deployment
Error scenarios:
n/a

DOD:
Update the check deployment process in order not to fail if the metadata is not updated
Send the notification to the Matrix if Metadata is not updated

Onboarding. Watch-only flow. Wallet address field is not safety. #2vxgacc

Wallet address field, crash when type "0x20" after address.
https://t24368000.p.clickup-attachments.com/t24368000/a38cd0bc-0ac6-4977-8dc9-d3de17bc0758_large.png

Case:
Start adding wallet via watch-only flow
Paste address in field, for example - r4SoBpxKYpUpXGTGtNpTzcP2L8faPD8xQExZG6vj55Q94SZ
Add space after that address

Actual result:
App will crash

Expected result:
Special symbols process right, without some errors.
Also, it would be nice to trim symbols like:
space - " "
tab - " "
line break - "
"

As a user I'd like to see the onboarding screen with onboarding options #2unhcg5

As a user I'd like to see the onboarding screen with onboarding options
Pre-requisites:
The Omni application is installed
db.wallets is empty (the user hasn't added a wallet yet)
Valid scenario:
The User runs the Omni application
The Omni application shows the welcome screen
There are 3 options for the onboarding:
Watch only (enabled)
Parity signer (enabled)
Ledger (disabled)
Alternative scenarios:
n/a
Error scenarios:
n/a

Language switcher UI component #2unhz9e

Language switcher UI component.

There should be 2 options: small (with language code) and big (with language name).

There should be:
Non-active state
Active state (with list of supported languages shown)
Selector opening should be customisable (from top to bottom or from bottom to top)

RU and EN are supported.

Wrong Substrate balance storing. #2vxeyhn

There are some problems with balance:
Looks like we store free balance in reserved part instead of "reserved" our implementation which is has in FrameSystemAccountInfo object
The miscFrozen part is not processed (balance describe - https://wiki.polkadot.network/docs/learn-accounts#balance-types) example on NovaWallet iOS
Typo in getting orml balance - https://github.com/nova-wallet/omni-enterprise/blob/dev/src/renderer/services/balance/balanceService.ts#L114

Case for reserved part of balance:
Actual result:
assetId: "0"
chainId: "0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3"
free: "23408486631710"
frozen: "23234599283358"
publicKey: "0x7a28037947ecebe0dd86dc0e910911cb33185fd0714b37b75943f67dcf9b6e7c"
reserved: "23408486631710"
verified: true
https://t24368000.p.clickup-attachments.com/t24368000/e3ed5b96-c0cc-4c61-adbb-037a06d95338_large.png
Expected result:
reserved = 0
https://t24368000.p.clickup-attachments.com/t24368000/5f343de1-ffe3-4c5b-81d2-ae5dca24b88c_large.png

Frozen balance case:
It should be sum of all elements in balance.locks

Actual result:
frozen = 23234599283358

Expected result:
frozen = 23_234_599_283_358 + 10_000_000_000
Also, it would be nice to store all part of frozen amount with special ID for processing it in future.

Metadata portal network search and sort works wrong #2wekuek

Metadata portal network search works wrong
Valid scenario
Type the network name in the search string
Expected result:
If network name matches then it will be in the search result
Actual result:
Network appear even if it's name doesn't match

For example type node in the search.

Valid scenario
Open the metadata portal
Expected result:
Networks are sorted by title in alphabet order
Actual result:
Networks aren't sorted by title in alphabet order

Root-cause analysis: The metadata portal searches by network spec name, but should search by network title.

Hide zero balances. Status is not saved. #2wu7bmx

IF you leave from balances page - hide zero balances state updates to default.

Case:
Run app
Switch Hide zero balances on
Reload/leave balances page
Return back

Actual result:
Hide zero balances status return to default value

Expected result:
If user has switched to hide zero balances "on", this should be retained regardless of leaving the page or restarting the app.

As a User I'd like to be able to get balances for all connected networks for a single wallet #2kchfkq

As a User I'd like to be able to get balances for all connected networks
Pre-requisites:
The Omni application is running
The user has at least 1 wallet with main and chain accounts
Valid scenario:
User clicks to the Balances menu item
In the background the Omni application keep network connection
If the Omni application loads balances for the wallet for the 1st time (cache is empty):
The Omni application shows the loading state of the balances page
In the background the Omni application loads the balances cache with the Balances service
The Omni application gets the balance from the network
The Omni application stops showing the loading effect
If the Omni application loads balances for the wallet not for the 1st time (cache is not empty):
The Omni application shows the balance from the cache with the loading state
In the background the Omni application updates the balances with the Balances service
The Omni application gets the balance from the network
The Omni application stops showing the loading effect
The Omni application shows balances from the Balances service storage for the selected wallet
Alternative scenarios:
on 2.c and 2.d user specified chain accounts for some chains ➝ load the data for chain accounts for networks there theses accounts were specified
Error scenarios:
Error on 2.c
Error on 2.d

Important:
Filter, Hide zero balances toggle, Fiat values, Balance breakdown, send and receive buttons is not a part of this task
Keep in mind that the balances page will contain fiat values, balances breakdown, send/receive buttons

DOD:
Balances page with assets balances

Network sorting rules:
Polkadot
Kusama
Production (Live) networks (parachains) with fiat ordered by fiat equivalent (from high to low)
Production (Live) networks (parachains) without fiat ordered by token amount (from high to low)
Production (Live) networks (parachains) ordered by natural alphabet order
Test networks (parachains) ordered by token amount (from high to low)
Test networks (parachains) ordered by natural alphabet order

Token sorting rules (inside each network):
ordered by fiat equivalent (from high to low)
ordered by token amount (from high to low)
ordered by id as Omni gets from the network

As a user I'd like new networks will be turned on automatically #2za6z12

As a user I'd like new networks will be turned on automatically
Pre-requisites:
The Omni application is running
New networks were added to the chains.json file
Valid scenario:
The Omni application reads the chains.json file
The Omni application identifies new networks
The Omni application adds networks and turns them on
The Omni application tries to connect to networks
Alternative scenarios:
n/a
Error scenarios:
n/a

DOD:
Turn on new networks in the chains.json file when it changes
Existing networks should be kept in the existing state

First run. Shimmering state should keep till all balances will not be downloaded. #2wu7xqf

When user start app first time and get on balances page it should has shimmering effect till all part of balance will be downloaded.

Case:
Clean app
Run app
Add watch only wallet
Go to balances page

Actual result:
When user came on balances page happens:
Shimmering all balances
Show a lot of "zero" balances when it connected
Wait a few time
Show all actual balances

Expected result:
Shimmering should keep till we will ready to show all actual balances.

Rename Metadata portal logo parameter to icon URL from file name to url #2yt15zj

The problem
The chain configuration is used by Nova Wallet, Omni Enterprise and Metadata portal. Keeping it in mind it will be good to keep the same naming for common parameters. The Metadata portal uses the logo name when the Nova Wallet and Omni enterprise use the icon name. Also the format is different: Metadata portal saves only the image name in config when Omni and Nova Wallet use the full URL.
The solution
Rename the logo param to the icon the Metadata portal
Replace images name with full url in config.toml
Remove the icon path builder from the UI in the Metadata portal
The example
Here is the example for Omni and Nova https://github.com/nova-wallet/nova-utils/blob/master/chains/v5/chains.json#L54

Components have not rules for user-selection. #2vqz3fn

User selection rules for components.
It would be nice to switch off user-select for some components, like Language switcher for example and buttons.

Case:
Open Language drop-down
Hold left button and select language

Actual result:
The text will be highlighted
https://t24368000.p.clickup-attachments.com/t24368000/e173b373-ba25-4bcc-a241-696001e98840/user_select.mp4
Expected result:
User selection is disabled for some special components as buttons and drop-downs as it is like anti-pattern.
Сomponents those text cannot be randomly selected - feel more pleasing.

Discussion:
https://stackoverflow.com/questions/826782/how-to-disable-text-selection-highlighting

As a user I'd like amounts (balances) to be formatted according the selected locale #2weu1k3

As a user I'd like amounts (balances) to be formatted according the selected locale
Pre-requisites:
Omni application is running
Valid scenario:
User opens some page with balances (fiat or tokens). For example Balances screen, History screen, Create transaction screen.
The balances are formatted according the Selected locale
Alternative scenarios:
n/a
Error scenarios:
n/a

DOD:
Supported locales: RU, EN
Add settings for each locale where the amount format will be stored
Implement component that format amount (token amount or fiat) according to the selected locale
User the component on the balances page

Links:
Decimal separator https://en.wikipedia.org/wiki/Decimal_separator (dot for US, EN, comma for RU)
Styles https://en.wikipedia.org/wiki/Decimal_separator 1,234,567.89 for US, EN; 1234567,89 for RU

Do not handle message about incorrect address. #2w37kkt

When we enter incorrect address in watch-only flow, then will show error:
Error: Decoding 5C5BDLw8tzzWB6XQbVPuzeL34d6GmPYPH1NaqsWBaJWzz42a: Invalid decoded address checksum

instead of showing near the field (it would be add in mockups soon):

As a user I'd like to be able to add a watch-only wallet by blockchain address #2kchcpj

As a user I'd like to be able to add a watch-only wallet by blockchain address so that I'll be able to track the account activity.
Pre-requisites:
The user has selected the onboarding with the watch-only wallet
Valid scenario:
The User enters the address of the wallet
The Omni application checks if the address is a valid SS58 address
The User enters the wallet name and clicks Continue
The Omni application saves the wallet
Alternative scenarios:
On each step user is able to go back to the Onboarding screen
Error scenarios:
on 2.b the address is not a valid SS58 address ➝ The Omni application show the error message
on 2.c the wallet name is not valid ➝ The Omni application show the error message

Wallet name validation:
Wallet name shouldn't be longer then 256 chars

As a user I'd like to get the information about transferable, locked (staked, reserved, redeemable, unstaking) balances #2kchfkz

As a user I'd like to get the information about transferable, locked (staked, reserved, redeemable, unstaking) balances
Pre-requisites:
The Omni application is running
The user has opened the Balances page
Valid scenario:
The user clicks on the token balance line
The Omni application loads the token breakdown from the Balances service
The Omni application shows the token breakdown
Alternative scenarios:
n/a
Error scenarios:
n/a

As a user I'd like to see tutorial in order to understand what to do during the Parity Signer onboarding #2unhwb8

As a user I'd like to see tutorial in order to understand what to do during the Parity Signer onboarding
Pre-requisites:
The user is on the Parity Signer onboarding flow
Valid scenario:
The Omni application shows to the user how to generate and scan QR code
If user clicks on the arrow the tutorial shows the next step
The Omni application shows how to scan the QR code
Alternative scenarios:
n/a
Error scenarios:
n/a

As a user I'd like to be able to switch language in order to understand the text in the application #2unj0t2

As a user I'd like to be able to switch language in order to understand the text in the application
Pre-requisites:
The Omni application is up and running
Valid scenario:
The user changes the Language with the Language UI switcher component
The Omni application changes the language to the language that the user has selected
Alternative scenarios:
n/a
Error scenarios:
n/a

DOD:
Implement the language service that stores the selected language
Work with the application context that sets the language

As a user I'd like to see the list of networks grouped by the enabled or disabled state with connection info #2x00qqb

The use case
As a user I'd like to be able to see the list of networks grouped by the connection status
Pre-requisites:
The Omni application is running
Valid scenario:
The user opens the Network management settings
The user sees the list of Enabled networks and Disabled networks:
Enabled networks are in status: CONNECTED , CONNECTING , ERROR
Disabled networks are in status: DISABLED
Disabled networks list is collapsed by default.
For each group there is a counter with number of networks in each state
For each network there is
status of the connection for Enabled networks
status of the data verification for Enabled networks
drop down for connection selector (out of the scope)
For each network there is a turn-off button (out of the scope)
Alternative scenarios:
n/a
Error scenarios:
n/a

Network sorting algorithm:
In each group and sub-group network should be in the following order:
Polkadot
Kusama
Natural alphabet order

There are 2 groups:
Disabled networks (DISABLED state)
Active networks (CONNECTED , CONNECTING , ERROR states)

Active networks has 3 sub-groups:
networks in ERROR state
networks in CONNECTING state
networks in CONNECTED state

DOD:

Extend the connection table in the IndexDB in order to save the custom nodes, selected node or connection type
Implement the layout
Load network information from the database and group networks according the connection status
Reflect the connection status change on the layout
Show the state for the networks on the screen

As a user I'd like to be able to add a wallet by scanning a QR code with Parity signer #2kchcp9

As a user I'd like to be able to add a wallet by scanning a QR code with Parity signer so that I'll be able to make transactions in the Omni application.
Pre-requisites:
The user has selected the onboarding with the Parity Signer
The User has the Parity Signer installed on his phone
The User has an account in the Parity signer
Valid scenario:
The User generates the address QR code in the Parity Signer
The User scans the QR code with the Omni application
The Omni application validates that the QR code contains valid SS58 address
The Omni application shows the address that was scanned
The User enters the wallet name and clicks Continue
The Omni application saves the wallet
Alternative scenarios:
on 2.d the address doesn't match the address that user would like to import ➝ User clicks the Rescan QR code button and goes back to the scanning screen.
on every step user is able to go back to the Onboarding screen
Error scenarios:
on 2.b the camera is not available ➝ Omni application shows the error message
on 2.c the address is not valid SS58 address ➝ The Omni application shows the error under the QR code scanning placeholder.
on 2.e the wallet name is not valid ➝ The Omni application shows the error for the wallet name

Wallet name validation:
Wallet name shouldn't be longer then 256 chars

As a user I'd like to be able to see the actual state of the network connection #2x00r15

As a user I'd like to be able to see the actual state of the network connection
Pre-requisites:
The Omni application is Running
The User is watching the Network management screen
The Network connection status is changing
Valid scenario:
The Network connection status should be updated on the Network management screen
For custom node, auto balance, rpc node that Omni application should show the address of the node it's connected
For Light client Omni application should show that it's running Light Client
Alternative scenarios:
n/a
Error scenarios:
n/a

DOD:

Update the network connection status for the network in case of network connection change
Update the connection status on the Network management screen
Actual statuses are DISABLED , CONNECTING , CONNECTED , ERROR according to the https://app.diagrams.net/#G1aeafOwvVE-4DxdIPxGx2NPf3TT2B8P6e
Add global network connection status listener in order to notify the user in future about it (maybe NetworkContext will be good for it)
Show the RPC node to which the node is connected or that Light client is running

As a User I'd like to see the balances page after the onboarding #2rw92x1

As a User I'd like to see the balances page after the onboarding so that I'll be able to check the balances
Pre-requisites:
The user has Onboarded to the Omni application
Valid scenario:
The small animation takes place
The Omni application shows the Balances page for the wallet that was entered by the use during the onboarding
Alternative scenarios:
n/a
Error scenarios:
n/a

As a user I'd like to be able to see all the derived accounts after entering or scanning address #2unhdvn

As a user I'd like to be able to see all the derived accounts after entering or scanning address
Pre-requisites:
The user has entered his address in watch-only or Parity Signer mode
Valid scenario:
The Omni application generated the SS58 for all supported chains and show it to the user with block explorer links
Alternative scenarios:
n/a
Error scenarios:
n/a

Also the empty state for the list of derived addresses should be implemented for the watch-only onboarding.

How to generate block explorer links for account:
find the network in the chains (https://github.com/nova-wallet/nova-utils/blob/master/chains/v5/chains.json) file
find the list of explorers and get the "account" url
Replace the {address} with user's main or chain address in SS58 format for the specific network
Add the logo with the link to the user interface
Sub.id is not available for the MST account

As a user I'd like to be able to get metadata even if some of the chain nodes is not available #2vc9uyn

As a user I'd like to be able to get metadata even if some of the chain nodes is not available
Pre-requisites:
The Metadata portal QR codes are updating
Valid scenario:
The Metadata portal start collecting new QR codes
The Metadata portal gets the node information from the config.toml file
The Metadata portal reads the metadata from the node
Alternative scenarios:
Error on the 2.c ➝ The Metadata portal switches to the next node from the config.toml file for the network and proceed with 2.c
Error scenarios:
Error on 2.c and all the nodes were listed ➝ Proceed with the next network and send the notification to the Matrix.

DOD:
Update the config.toml file so that it contains the list of nodes.
Update update and sign and collector job so that it will switch to node if previous attempt fails
Send the Matrix chat notification if all nodes fail for the network.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.