desmos-labs / dpm Goto Github PK
View Code? Open in Web Editor NEWRepository of the Desmos Profile Manager mobile application
Repository of the Desmos Profile Manager mobile application
We should use the mainnet endpoints when releasing the beta
As there is a profile icon at the top of the application it would be correct to have a different icon in the navigation bar, something similar to the home icon.
On iOS when importing the seed phrase during the chain link procedure the next button is covered from the keyboard.
Currently the ESLint configuration has all the rules turned off. This causes the code to not be compliant with any rule. Instead, I suggest we start using the [eslint-config-airbnb
]https://www.npmjs.com/package/eslint-config-airbnb) package to make sure the code always complies with the proper linting rules.
From #21:
Inside the Home Screen title should show DPM instead of Desmos
Currently when sending some DSM to another user, the only language that is supported inside the amount input is the English one. Unfortunately, this makes it impossible to send non-round amounts (eg. 0.5 DSM
) to another user if the device is set to use a different language that uses a different decimal separator from .
(eg. Italian uses ,
).
To fix this, we should support the input of non-round amounts even in other languages so that the decimal separator does not have to be only .
.
Currently DPM is only able to handle a set of message types inside the transaction list present in the home page as well as inside the confirmation page of a transaction.
Since DApps can require the user to sign any kind of message, the following needs to be implemented as well:
Create a terms of service markdown file and add it to the linked resources
I'll be using this issue to write my general feedbacks
Will be updated when more versions are released
device: iphone 12
Import Recover Phrase Screen:
Secret Recover Phrase Screen:
From #21:
Inside the Secret Recover Phrase Screen consider adding a small loader before showing the mnemonic. As the mnemonic phase gets generated too fast it will lower the importance of keeping these words safe and cause user distrust that it actually works
When I delete an additional account I created, the application actually deletes all the accounts that have been created.
At this point, all the accounts data will be gone and you are prompted to create a new wallet as the previous ones have been deleted.
Create the screens that shows to the user the application terms of service and privacy policy before creating a new account or importing an existing one.
Currently the application is relying on the REST APIs of the chain to fetch the data about the balance of an account or else. Instead, I think it would be better to use the GraphQL endpoints to also be able to subscribe to changes automatically. Here are the details of the endpoint that you can use:
gql.mainnet.desmos.network
gql.morpheus.desmos.network
You should be able to query data without any authentication. If you need access to the console, you can find the details on Bitwarden.
Software Version:15.1
Mobile Device: iPhone 11
DPM version: 0.0.5(0.1.7)
The menu icon seems to be compressed.
Can we move the navigation bar down a bit?
Change copy icon color to white (Light mode)
Remove colon (:)
-The font of Amount and nickname should be #Poppins Medium 22 px
Another visual issue:
should use the correct image in dark mode**
the UI should be like:
Currently the application is using the udaric
as the token unit. Instead, we should use Daric to make things simpler for the user (1 Daric
= 1.000.000 udaric
). If #7 is implemented, you can also use the following query to get the details of various token units:
query TokenUnits {
token {
token_units {
denom
exponent
token_prices {
price
timestamp
}
}
}
}
Currently when saving a profile no input validation is performed on the values inserted by the user. This can make the transaction fail with different errors (eg. invalid DTag, invalid Bio, etc). To solve this we can:
x/profiles
parameters stored on chainTo get the parameters the following GraphQL query can be used:
query Params {
profiles_params {
params
}
}
Here is an example response:
{
"data": {
"profiles_params": [
{
"params": {
"bio": {
"max_length": "1000"
},
"dtag": {
"reg_ex": "^[A-Za-z0-9_]+$",
"max_length": "30",
"min_length": "3"
},
"oracle": {
"ask_count": 5,
"min_count": 3,
"script_id": 32,
"fee_amount": [],
"execute_gas": 200000,
"prepare_gas": 50000
},
"nickname": {
"max_length": "1000",
"min_length": "2"
}
}
}
]
}
}
You can only consider the bio
, dtag
and nickname
fields as they describe the limitations applied to profiles.
Currently it is not possible to switch between the testnet and the mainnet when using DPM. This would be particularly useful for DApp users thus I think it's worth being implemented.
Currently DPM is only able to handle a set of message types inside the transaction list present in the home page as well as inside the confirmation page of a transaction.
Since DApps can require the user to sign any kind of message, the following needs to be implemented as well:
Currently when the application starts there it does not ask for any kind of authentication. Since it contains sensitive material and allows to send money to other people, we should instead ask the user to authenticate each time the application is opened or un-paused.
All buttons should be flat buttons instead of raised ones. The elevation should be set to 0
.
Currently the app only allows to log-in and confirm transactions via the text-based password that the user has set during the setup of their wallet. Instead, we should also support biometric-based authentication (fingerprint and, if possible, face) to allow the user to confirm such actions and unlock the app.
We need to fix graphql endpoints and queries following the new API and changes introduced by Desmos.
The keyboard would block the buttons in the following occasion:
Running npm install
returns the following errors:
$ npm install
npm ERR! code ERESOLVE
npm ERR! ERESOLVE unable to resolve dependency tree
npm ERR!
npm ERR! While resolving: [email protected]
npm ERR! Found: [email protected]
npm ERR! node_modules/react
npm ERR! react@"17.0.2" from the root project
npm ERR!
npm ERR! Could not resolve dependency:
npm ERR! peer react@"17.0.1" from [email protected]
npm ERR! node_modules/react-native
npm ERR! react-native@"0.64.2" from the root project
npm ERR! peer react-native@"^0.0.0-0 || ^0.60.6 || ^0.61.5 || ^0.62.2 || ^0.63.2 || ^0.64.0 || ^0.65.0 || 1000.0.0" from @react-native-async-storage/[email protected]
npm ERR! node_modules/@react-native-async-storage/async-storage
npm ERR! @react-native-async-storage/async-storage@"^1.15.8" from the root project
npm ERR!
npm ERR! Fix the upstream dependency conflict, or retry
npm ERR! this command with --force, or --legacy-peer-deps
npm ERR! to accept an incorrect (and potentially broken) dependency resolution.
npm ERR!
npm ERR! See /home/riccardo/.npm/eresolve-report.txt for a full report.
npm ERR! A complete log of this run can be found in:
npm ERR! /home/riccardo/.npm/_logs/2021-10-01T05_40_15_610Z-debug.log
It works when using the --force
flag though.
When starting DPM on iOS on metro is displayed the following error:
ERROR TypeError: _reactNativeSensitiveInfo.default.hasEnrolledFingerprints is not a function. (In '_reactNativeSensitiveInfo.default.hasEnrolledFingerprints()', '_reactNativeSensitiveInfo.default.hasEnrolledFingerprints' is undefined)
ERROR Invariant Violation: Module AppRegistry is not a registered callable module (calling runApplication). A frequent cause of the error is that the application entry file path is incorrect.
This can also happen when the JS bundle is corrupt or there is an early initialization error when loading React Native.
ERROR Invariant Violation: Module AppRegistry is not a registered callable module (calling runApplication). A frequent cause of the error is that the application entry file path is incorrect.
This can also happen when the JS bundle is corrupt or there is an early initialization error when loading React Native.
In order to publish DPM on both the Google Play Store and the iOS App Store we should achieve a high level of stability within the application. To to this, we need to implement all the missing screens as well as fixing the most prominent bugs out there.
Currently when writing a mnemonic phrase inside the proper input, initial and ending spaces are not stripped from the input itself. This results in the app returning "Invalid mnemonic" even if there is only an additional space at the end (or beginning) or the input.
In order to improve the overall UX, I think it would be better to automatically remove all the initial and ending spaces from the input phrase, so that they do not count during the validation process of the mnemonic phrase itself.
The font should be changed from SF-Pro
to Poppins
all over the app.
Currently DPM is only able to handle a set of message types inside the transaction list present in the home page as well as inside the confirmation page of a transaction.
Since DApps can require the user to sign any kind of message, the following needs to be implemented as well:
Currently the data shown inside the home page is only refreshed when the page is shown for the first time.
We should also allow users to refresh the data whenever they want by simply pulling the page from the top.
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.