Git Product home page Git Product logo

moneroandroidwallet's Introduction

Monero Android Wallet (NDK & SDK java)

This App is using the NDK (native development kit) to port the native Monero C++/C code into it. The NDK is using a interface called JNI. This interface will sit between the Monero native code and the Java application. This project is public and available for anyone who wants to collaborate.

NDK native functions

To create a native function you will need to use the keyword native like this: public native int DaemonHeight()

The native function will also need to be linked in the JNI file. The JNI file is called native-lib.cpp located in the app/src/main/cpp There, you have to specify where the native function will be used. For example:

Java_com_example_root_monerotest_Services_SyncWalletService_InitWallet

( Project package )(Package) ( FileName ) (Method)

You can find native methods all around the proyect. Just make sure that you are loading the lib in the file that will be using it. For example:

static { System.loadLibrary("native-lib"); }

App's UI

At this moment, all the navigation is contain in a drawerLayout that holds a NavigationView (The menu). Every item of the menu is attached to its corresponding fragment. Only one (1) activity is being used. The toolbar changes custom views depending on the fragment that the user is currently located.

How to Contribute

A good way to help is to test, and report bugs. ( Please wait until the application is stable enough for testing first)

Patches are preferably to be sent via a GitHub pull request. If that can't be done, contact me either on IRC, reddit or directly on GitHub and something can be figured out

Patches should be self contained. A good rule of thumb is to have one patch per separate issue, feature, or logical change. Also, no other changes, such as random whitespace changes or reindentation. Following the code style of the particular chunk of code you're modifying is encourgaged. Proper squashing should be done (eg, if you're making a buggy patch, then a later patch to fix the bug, both patches should be merged).

Currently completed but might be missing more testing

  • Binaries for Armv7 (32bit), armV8 (64bit), and x86.
  • Generate a new wallet.
  • Load wallet from external storage.
  • Sync wallet to remote node.
  • Send transactions (little buggy, needs more testing).
  • Display all transactions from wallet into a ListView.
  • Ability to generate a QR image using the integrated address.
  • Ability to read a QR image and validate data. (Send Fragment)
  • Functionality to select a remote node in the settings fragment.

What is currently missing?

  • (Optional) Splash screen to give a better experience to user while loading libs.
  • Initial activity to either generate a new wallet or load one from file storage. note: For loading wallet from location I'd like to using some sort of file explorer to allow the user to chose the location. However, i'm up for ideas.
  • Wallet will automatically update itself whenever the phone is plugged and connect to WIFI.
if you have more ideas or features, please PM me.

moneroandroidwallet's People

Contributors

andreabdel27 avatar dternyak avatar gkruja avatar smmarat avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

moneroandroidwallet's Issues

please update root-zone trust-anchors in unbound-anchor.c file

Users of your software that enable DNSSEC will not be able to validate DNS after October the 11th 2018.

Your repository contains a unbound-anchor.c file without the new DNSSEC trust-anchors:

". IN DS 19036 8 2 49AAC11D7B6F6446702E54A1607371607A1A41855200FD2CE1CDDE32F24E8FB5\n";

It should also include:

". IN DS 20326 8 2 E06D44B80B8F1D39A95C0B0D7C65D08458E880409BBC683457104237C7F8EC8D\n";

More information can be found at: https://www.icann.org/resources/pages/ksk-rollover

Please don’t hesitate to get in touch.

Warmly,

Roy Arends
ICANN

please update root-zone trust-anchors in dns_utils.cpp

Users of your software that enable DNSSEC will not be able to validate DNS after October the 11th 2018.

Your repository contains a dns_utils.cpp file without the new DNSSEC trust-anchors:

. IN DS 19036 8 2 49AAC11D7B6F6446702E54A1607371607A1A41855200FD2CE1CDDE32F24E8FB5
It should also include:

. IN DS 20326 8 2 E06D44B80B8F1D39A95C0B0D7C65D08458E880409BBC683457104237C7F8EC8D

More information can be found at: https://www.icann.org/resources/pages/ksk-rollover

Please don’t hesitate to get in touch.

Warmly,

Roy Arends
ICANN

Unable to run on arm64

Trying to run in on arm64 so maybe i can give it a go and make a few contributions. But,

After needing to add a few dependencies with the System.loadLibrary calls.

I've set InitActivity static init as :

    static {
        System.loadLibrary("easylogging");
        System.loadLibrary("common");
        System.loadLibrary("cryptonote_basic");
        System.loadLibrary("ringct");
        System.loadLibrary("blockchain_db");
        System.loadLibrary("cryptonote_core");
        System.loadLibrary("wallet");
        System.loadLibrary("c++_shared");
        System.loadLibrary("native-lib");

    }

Running it , i get the following error :

com.example.root.monerotest E/art: dlopen("/data/app/com.example.root.monerotest-2/lib/arm/libeasylogging.so", RTLD_LAZY) failed: dlopen failed: cannot locate symbol "_ZN2el4base9elStorageE" referenced by "libeasylogging.so"...

Any guesses ? Some header missing maybe ?

please update root-zone trust-anchors in dnssec_test.py file

Users of your software that enable DNSSEC will not be able to validate DNS after October the 11th 2018.

Your repository contains a dnssec_test.py file without the new DNSSEC trust-anchors:

resolver.add_ta(". IN DS 19036 8 2 49AAC11D7B6F6446702E54A1607371607A1A41855200FD2CE1CDDE32F24E8FB5")

It should also include:

resolver.add_ta(". IN DS 20326 8 2 E06D44B80B8F1D39A95C0B0D7C65D08458E880409BBC683457104237C7F8EC8D")

More information can be found at: https://www.icann.org/resources/pages/ksk-rollover

Please don’t hesitate to get in touch.

Warmly,

Roy Arends
ICANN

Request: a "How to Contribute" and a "License" section in the README

I think there is probably a good amount of people that would like to contribute to this repo in one or the other. A section in the README that outline how to do so would help those people get started. An a full featured example is here https://github.com/monero-project/monero/blob/master/CONTRIBUTING.md . But it doesn't have to be that extensive. Just a section header and a few lines is fine.

For the license, you have lots of options. I recommend the MIT license https://en.wikipedia.org/wiki/MIT_License . It's short and sweet and can be summed up with: "use/sell this software however you like, just dont call me if it causes you a problem".

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.