Git Product home page Git Product logo

qtum-android's Introduction

About
Combining a modified Bitcoin Core infrastructure with an intercompatible version of the Ethereum Virtual Machine (EVM), Qtum merges the reliability of Bitcoin’s unfailing blockchain with the endless possibilities provided by smart contracts. Designed with stability, modularity and interoperability in mind, Qtum is the foremost toolkit for building trusted decentralized applications, suited for real-world, business oriented use cases. Its hybrid nature, in combination with a first-of-its-kind PoS consensus protocol, allow Qtum applications to be compatible with major blockchain ecosystems, while providing native support for mobile devices and IoT appliances.

Getting Started
1)Clone project
2)Open with Android Studio

Configurations
The project has two configurations: default and local.

Default configuration contains mainnet parameters.

If you want to define your network settings, then you
1)Build project (gradle creates local.properties configuration file)
2)Edit local.properties configuration file.

Setting Custom Network Parameters

package org.qtum.wallet.utils.CurrentNetParams

    public static NetworkParameters getNetParams() {
        return QtumMainNetParams.get(); // or QtumTestNetParams.get();
    }

	public static String getUrl() {
        return "http://127.0.0.1:5555/";
    }

Change return value in getUrl() method like this

Gradle version

com.android.tools.build:gradle:2.3.3

Minimal Android SDK Version

19

Build Tools version

25.0.3

Technologies

  • Java (v. 7)
  • Google Firebase (v. 9.0.2)
  • Java RX (v. 1.1.6, Android RX – v. 1.2.1)
  • Retrofit 2 (v. 2.1.0)
  • Socket IO (v. 0.8.3)

Third Party Libraries (gradle)

  • 'com.github.designsters:android-fork-bitcoinj:1.+' – fork bitcoinj (with QTUM functionality)
  • 'com.google.zxing:core:3.2.1' – QR-Code/Barcode scanner
  • 'io.reactivex:rxjava:1.1.6', 'io.reactivex:rxandroid:1.2.1' – Java RX
  • 'io.socket:socket.io-client:0.8.3' - Socket IO Client
  • 'com.squareup.retrofit2:retrofit:2.1.0' HTTP Client

Android Fork BitcoinJ
The android fork bitcoinj library is a Java implementation of the Bitcoin protocol, which allows it to maintain a QTUM wallet and send/receive transactions without needing a local copy of Bitcoin Core. It comes with full documentation and some example apps showing how to use it
Link: https://github.com/bitcoinj/bitcoinj

BitcoinJ Technologies

  • Java 6 for the core modules, Java 8 for everything else
  • Maven 3+ - for building the project
  • Google Protocol Buffers - for use with serialization and hardware communications

qtum-android's People

Contributors

kirillvolkov avatar lebedevich avatar

Stargazers

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

Watchers

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

qtum-android's Issues

error in ui getHistoryList

wallet/ui/fragment/wallet_fragment/WalletInteractorImpl.java

public Observable<HistoryResponse> getHistoryList(int limit, int offest) {
    return HtmlcoinService.newInstance().getHistoryListForSeveralAddresses(getAddresses(), limit, offest);

....................offset is spelled offest

Mobile Wallet token sending bug

  1. Click the token send button in your mobile wallet
  2. 100 HLC Send
  3. The actual number of HLCs received is very small.
    ex) 1 send max coin -> 2 HLCs

If you try to send a token, it will not be sent to the quantity you entered.
For example, when you send 100 HLCs, you only send 2 HLCs if you enter 100.

Wear build gradle update

// wear/build.gradle should be edited like this

apply plugin: 'com.android.application'

repositories {
maven { url 'https://maven.fabric.io/public' }
maven { url "https://jitpack.io" }
google()
}

android {

Properties buildProps = getBuildProperties('local')

compileSdkVersion 26
flavorDimensions "default"

defaultConfig {
    minSdkVersion 23
    targetSdkVersion 26
    applicationId buildProps['APPLICATION_ID']
    versionCode buildProps['VERSION_CODE'].toInteger()
    versionName buildProps['VERSION_NAME'].toString()
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }

    debug {
        debuggable = true
    }
}

}

dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])

implementation 'com.google.android.support:wearable:2.1.0'
implementation 'com.google.android.gms:play-services-wearable:11.8.0'
implementation 'com.android.support:percent:26.1.0'
implementation 'com.android.support:support-v4:26.1.0'
implementation 'com.android.support:recyclerview-v7:26.1.0'
implementation 'com.android.support:wear:26.1.0'
compileOnly 'com.google.android.wearable:wearable:2.1.0'
compile group: 'com.google.code.gson', name: 'gson', version: '2.8.2'

compile 'com.jakewharton:butterknife:8.8.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'

compile 'com.android.support:appcompat-v7:26.1.0'

compile 'com.google.zxing:core:3.3.0'

}

def getBuildProperties(buildType) {
def propertiesFile = file(buildType + '.properties')
if (propertiesFile.canRead()) {
Properties versionProps = new Properties()
versionProps.load(new FileInputStream(propertiesFile))
return versionProps
} else {
copy {
from 'default.properties'
into '.'
rename { String fileName ->
fileName.replace('default.properties', 'local.properties')
}
}
getBuildProperties(build)
}
}

[Question] Android REST APIs

I just want to make my own qtum-android wallet based on my server.
where can I use this android REST APIs?

It doesn't fits with any another REST APis like insight-api, built-in qtumd rest apis.

Thanks.

Manifest android:allowBackup Attribute Not Disabled

Described in Detail: he Flag android:allowBackup flag is set by default to True if not present in the manifest file. If True, it means that the application can be backed up by the user using any backup system. The backup systems include 'adb backup' or the default Android application backup functionality or any third party application.

Attacker or user can use 'adb backup packagename' to backup the internal files of the application
to his desktop. He can then view or change the files, including any private information in them, and restore.

Also, there is a vulnerability found in the android backup mechanism which allows an attacker to inject additional applications (APKs) into the backup archive without the user's consent.

Evidence of the Vulnerability: Screenshot Attached

Repair Plan: In the manifest file change the value to false [android:allowBackup="false"]

Below are the reference link:
http://www.securityfocus.com/archive/1/535980
http://www.search-lab.hu/about-us/news/110-android-adb-backup-apk-injection-vulnerability
https://nelenkov.blogspot.com/2012/06/unpacking-android-backups.html
https://blog.c22.cc/advisories/cve-2013-5112-evernote-android-insecure-storage-of-pin-data-bypass-of-pin-protection/
backup enabled

QR code can't be read

I'm trying to scan in the QR code displayed on my Android phone, but the software I'm using (QR Journal on macOS) doesn't read it. I think that's because it's in blue and white whereas every other app that I use on my phone displays QR codes in black and white and I've had no problems with them. Please could you change your app so that it too displays QR codes in black and white?

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.