Commit graph

23 commits

Author SHA1 Message Date
seven
584008004b Convert to Android-only project (#1)
We were trying to target Android/iOS/Desktop with the same codebase using Kotlin Multiplatform, but that proved to be more complicated than anticipated. We are simplifying the scope of the project a bit by focusing on Android.

Co-authored-by: Severiano Jaramillo <severiano.jaramillo@gmail.com>
Reviewed-on: #1
2024-04-29 22:37:45 +00:00
Severiano Jaramillo
32bc268594 Update crytpo module package structure 2024-04-28 18:23:24 -07:00
Severiano Jaramillo
f70176d47c Add getKeyAndLanguageFromWords() method to Mnemonics class.
- The getKeyAndLanguageFromWords() method receives a list of words and validates that they correspond to an actual Dero seed, and obtains the corresponding Key and language.
- Added tests to verify that the getKeyAndLanguageFromWords() method works as expected in different scenarios.
2024-04-12 19:46:59 -07:00
Severiano Jaramillo
c690d839da Add verifyChecksum method to Mnemonics class.
- The verifyChecksum() method uses the calculateChecksumIndex() method internally to obtain the checksum index, which is then used to confirm that the checksum word is correct.
- Added tests for all verifyChecksum() scenarios.
- Created MnemonicsDataProvider to more easily provide the data used in MnemonicsTest.
2024-04-12 17:06:38 -07:00
Severiano Jaramillo
53bc55ec9f Add calculateChecksumIndex() method to Mnemonics class.
- The calculateChecksumIndex() method uses the newly added method to calculate the CRC-32 to obtain the index of the word to be used for the seed checksum.
- Added a few unit tests to validate the correct functionality of the calculateChecksumIndex() method.
2024-04-12 16:25:18 -07:00
Severiano Jaramillo
7dab5227dc Introduce CRC-32 validation functionality.
- Created a new shared module 'crypto' that will contain crytography specific functionality.
- Added a class to validate data using the CRC-32 algorithm. We had to create a class to do this from scratch because there is no readily made library available for Kotlin Multiplatform yet.
- Configured unit tests in the crypto module to confirm that the CRC-32 functionality is correctly implemented.
- Introduced a Mnemonics class that contains logic to convert mnemonics to a valid Dero key and viceversa. This functionality is not complete yet.
- Introduced Mnemonics support for two languages for now, English and Spanish. Adding support for more languages is a matter of adding a new Mnemonics[Language] instance. We can do that later when necessary.
2024-04-11 19:49:59 -07:00
Severiano Jaramillo
4829994d52 Minor formatting fixes 2024-03-29 18:55:43 -07:00
Severiano Jaramillo
8512178a24 Restore the desktop target.
- We are not targetting desktop for the time being, but unfortunately the IDE previews (which are very useful when developing UI) are only available for the Desktop target for now. It is worth keeping the desktop target just for that. We won't be spending much time focusing on desktop though.
- Updated Compose multiplatform plugin and Kotlin versions.
- Added coroutines swing dependency to be ablet o run the desktop app.
2024-03-29 11:45:15 -07:00
Severiano Jaramillo
26436eb687 Show current block number in Import Account screen.
- Updated NodeStatus component to show the current block count if connected to the Dero node, or a 'Not connected' text otherwise.
- Updated ImportAccountScreenModel to extend from StateScreenModel with a State data class that contains the blockCount for now. This State is observed by ImportAccountScreen which automatically adjusts to the latest State and shows the proper UI.
2024-03-28 21:09:47 -07:00
Severiano Jaramillo
8189b590d3 Implement two way communication with Dero node.
- Implemented basic two way communication with the Dero node. The Bridge is listening for Dero node updates and requests the Block Height when receiving a Height update from the node.
- Renamed Bridge to StargateBridge and added basic documentation.
- Created model for DeroNode instances. We use only one node for now, but will add more down the line.
2024-03-28 19:55:55 -07:00
Severiano Jaramillo
8b9727082a Add basic WebSocket connectivity with Dero node.
- Created a new stargate module that will contain the code to connect with the Dero nodes. This stargate module will use the ktor library, which is a multiplatform networking library that works on both Android and iOS.
- Added a bassic connectivity with a Dero node. It just connects with the node, listens for messages, and prints them out to the standard output.
- Introduced the ScreenModel library and created a basic ImportAccountScreenModel. ScreenModel classes serve to host all the logic for their corresponding screens.
- Added the Internet permssion to the Android app, to be able to connect with the internet.
- Removed the Desktop target. After discussing with Ken, we decided that investing on a Desktop app does not make sense. We will focus on Android and iOS only.
2024-03-25 21:14:16 -07:00
Severiano Jaramillo
34c82ba8f6 Add module for managing user preferences.
- Navigate to Import Account screen if there is no active account.
- Add basic node status placeholder in Import Account screen.
2024-03-09 19:06:33 -06:00
Severiano Jaramillo
ca86caa72e Add word counter to Import Account screen 2024-03-07 00:46:00 -06:00
Severiano Jaramillo
ea27b33b3e Improve launcher icon appearance 2024-03-07 00:12:25 -06:00
Severiano Jaramillo
b5a724137a Styling improvements
- Configure app edge to edge for better status bar appearance.
- Set minSdk to 26.
- Set launcher icon using Kee icon.
- Minor UI improvements to Import Account screen.
2024-03-06 23:55:17 -06:00
Severiano Jaramillo
3368f38a45 Configure dark theme on current screens
- Show light and dark screen previews for current composables
2024-03-06 23:55:17 -06:00
Severiano Jaramillo
d87431bce2 Add ImportAccountScreen with basic functionality.
- Make HomeScreen the default navigator destination
- Create reusable TopAppBar component
2024-03-06 23:55:17 -06:00
Severiano Jaramillo
ce79a8fc4d Introduce Voyager lib and configure basic Navigation.
- Voyager is a navigation library that allows us to navigate between Composable screens.
- I created basic LicenseScreen and HomeScreen.
2024-03-06 23:55:17 -06:00
Severiano Jaramillo
888d29e436 Re-arrange code structure 2024-03-06 23:55:17 -06:00
Severiano Jaramillo
2dba2b6b53 Initial commit 2024-03-06 23:55:12 -06:00
61839a2667 Update README.md 2024-03-03 15:59:07 +00:00
2434441757 Update README.md 2024-03-02 14:14:00 +00:00
9f8ec93dde Initial commit 2024-02-28 23:42:27 +00:00