Skip to content

Commit

Permalink
Debrand and clean up
Browse files Browse the repository at this point in the history
  • Loading branch information
CosmoJG committed Jun 9, 2017
1 parent 8c09eab commit 366cd2c
Showing 407 changed files with 3,930 additions and 3,702 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -4,3 +4,4 @@
*.iml
.DS_Store
/build
.directory
14 changes: 8 additions & 6 deletions COPYING
Original file line number Diff line number Diff line change
@@ -1,16 +1,18 @@
### Coinomi for Android ###
### OpenWallet for Android ###

An open source project https://github.com/Coinomi/coinomi-android
The first truly free, libre, and open source light wallet for multiple cryptocurrencies (Bitcoin, Ethereum, Ripple, etc) on Android https://gitlab.com/openwallet/openwallet-android

Wallet module source code licensed under:

- GNU General Public License 3
- Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

Core module source code licensed under Apache License Version 2.0
Core module source code licensed under:

Uses Bitcoinj library http://bitcoinj.github.io/
- Apache License Version 2.0

Forked from Coinomi https://coinomi.com
Uses Bitcoinj library https://bitcoinj.github.io
QR-code functionality by ZXing https://github.com/zxing/zxing
Crypto-icons by Chris Shepherd https://github.com/shphrd/crypto-icons
Font-icons by Daniel Bruce http://www.entypo.com

Font-icons by Daniel Bruce https://www.entypo.com
1 change: 0 additions & 1 deletion DESCRIPTION

This file was deleted.

399 changes: 399 additions & 0 deletions LICENSE

Large diffs are not rendered by default.

225 changes: 28 additions & 197 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,228 +1,59 @@
Coinomi Wallet
OpenWallet for Android
===============

Our goal is to support every cryptocurrency with an active development team. Store all the best cryptocurrency through a single app, without sacrificing security. Private keys are stored on your own device. Instead of having one backup file for every coin, you get a master key that can be memorized or stored on a piece of paper. Restore all wallets from a single recovery phrase.
The goal of this project is to build the best free, libre, and open source light wallet for multiple cryptocurrencies (Bitcoin, Ethereum, Ripple, etc) on Android. Security and usability are, of course, the priorities. For this reason, your private keys never leave the device. Luckily, this wallet is compliant with BIP32, BIP39, and BIP44. A single 24-word mnemonic phrase may be used to recover each and every one of your cryptocurrency wallets.

TODOs:

* Create instrumentation tests to test a signed APK


## Building the app

Install [Android Studio](https://developer.android.com/sdk/installing/studio.html). Once it is
running, import coinomi-android by navigating to where you cloned or downloaded it and selecting
settings.gradle. When it is finished importing, click on the SDK Manager ![SDK Manager](https://developer.android.com/images/tools/sdk-manager-studio.png). You will need to install SDK version 21.

<br/>
Make sure that you have JDK 7 installed before building. You can get it [Here](http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html). Once you have that installed, navigate to File > Project Structure > SDK Location and change the path of your current JDK to the path of the new JDK. **The project will not build with JDK 8**.

<br/>
Once it is finished installing, you will need to enable developer options on your phone. To do so,
go into settings, About Phone, locate your Build Number, and tap it 7 times, or until it says
"You are now a Developer". Then, go back to the main Settings screen and scroll once again to the
bottom. Select Developer options and enable USB Debugging.

<br/>
Then plug your phone into your computer and hit the large green play button at the top of
Android Studio. It will load for a moment before prompting you to select which device to install
it on. Select your device from the list, and hit continue.
## Contributions

**NOTE**
If you are attempting to build on a Lollipop emulator, please ensure that you are using *Android 5.*.* armeabi-v7*. It will not build on an x86/x86_64 emulator.
Contributions aren't just welcome, they're financially encouraged! (Well, they will be soon. Hang tight!) Eventually, we hope to set up a cryptocurrency-based (likely BTC or ETH) rewards system for contributions, be they new features, new translations, or new coins. As always, all you've gotta do is fork and pull!

## Contributions
By the way, if you'd like to add new coins, check out this document provided by Coinomi: [document](https://coinomi.com/AddingSupportForANewCurrency/).

Your contributions are very welcome, be it translations, extra features or new coins support. Just
fork this repo and create a pull request with your changes.
You should find that a lot of Coinomi's documentation applies to OpenWallet as well. This is because OpenWallet was forked from Coinomi before it ditched the open source model in favor of a more proprietary, "source-available" model. **OpenWallet is, and forever will be, free, libre, and open source!**

For new coins support read this [document](https://coinomi.com/AddingSupportForANewCurrency/).
Generally you need:
Anyway, back to the coins. Generally you'll need:

* Electrum-server support
* Coinomi core support
* OpenWallet core support
* A beautiful vector icon
* Entry to the [BIP44 registry](https://github.com/satoshilabs/docs/blob/master/slips/slip-0044.rst) that is maintained by Satoshi labs
* BIP32, BIP39, and BIP44 compliance

## How to Go About Building an Independent Fork of This App

## Releasing the app
First off, ensure that your client device is running Android Lollipop or later. Second, ensure that your client device is running an ARM processor as this project is currently incompatible with x86_64/amd64.

To release the app follow the steps.
Start up Android Studio and import this repository (openwallet-android) in its entirety (click on settings.gradle). When that's done, install Version 21 of the SDK. Note that this project must be built with JDK 7 as it is currently incompatible with JDK 8.

Once built, enable developer options on your Android smartphone as well as USB debugging. Plug your smartphone into your computer, and install your shiny new app through Android Studio.

## How to Go About Releasing an Independent Fork of This App

1) Change the following:

* in strings.xml app_name string to "Coinomi" and app_package to com.coinomi.wallet
* in build.gradle the package from "com.coinomi.wallet.dev" to "com.coinomi.wallet"
* in AndroidManifest.xml the android:icon to "ic_launcher" and all "com.coinomi.wallet.dev.*" to "com.coinomi.wallet.*"
* in strings.xml app_name string to "OpenWallet" and app_package to com.openwallet.wallet
* in build.gradle the package from "com.openwallet.wallet.dev" to "com.openwallet.wallet"
* in AndroidManifest.xml the android:icon to "ic_launcher" and all "com.openwallet.wallet.dev.*" to "com.openwallet.wallet.*"
* remove all ic_launcher_dev icons with `rm wallet/src/main/res/drawable*/ic_launcher_dev.png`
* setup ACRA and ShapeShift

2) Then in the Android Studio go to:
2) Then perform the following in Android Studio:

* Build -> Clean Project and without waiting...
* Build -> Generate Signed APK and generate a signed APK. ... and now you can grab yourself a nice cup of tea.

3) Test this APK (TODO: with instrumentation tests).

For now test it manually by installing it `adb install -r wallet/wallet-release.apk`
3) Test the APK.

> This one is in the TODOs and must be automated
> because it will be here that you take a break ;)
Install the APK with `adb install -r wallet/wallet-release.apk`

4) Upload to Play Store and check for any errors and if all OK publish in beta first.
4) Upload everything to the Play Store, and continue checking for any errors. If all goes well, you're good to go!

5) Create a GIT release commit:
5) Create a git release commit:

* Create a commit with the log entry similar to the description in the Play Store
* Create a tag with the version of the released APK with `git tag vX.Y.Z <commit-hash>`
* Create a commit with a detailed description
* Create a tag with the version of the released APK using `git tag vX.Y.Z <commit-hash>` or something similar


## Version history

New in version 1.6.0-1.6.2
- Overview screen
- Optimized memory usage
- Sweep paper wallets
- “Pull to refresh” functionality
- Synchronized progress bar
- Option to rename accounts
- Option to modify fees in the Settings area
- Transactions now include Date stamps
- Improved handling of addresses of coins with conflicting address versions
- Support for landscape view
- User interface and usability tweaks
- New coins: Auroracoin, Gulden, Potcoin, Bata, Verge, Asiacoin, e-Gulden, OKCash, Clubcoin, Richcoin

New in version 1.5.22
- Improved UI for setting a BIP39 passphrase
- New coins: Clams, GCRcoin, Dogecoindark

New in version 1.5.21
- Fixed memory leak when restoring a wallet
- Fixed crash when adding a coin account with the wrong password in the exchange screen
- Fixed crash on empty password in sign/verify message screen
- Added coin: ParkByte

New in version 1.5.20
- Fixed crashes on some devices
- Added coins: Novacoin, Canada eCoin and ShadowCash
- Experimental req-addressrequest support

New in version 1.5.19
- Possibility to sign and verify messages
- Account details screen to view the public key
- Transaction messages in Vpncoin
- Russian translation
- Some UI optimizations
- Bug fixes
- Increase the default size of the recovery phrase

New in version 1.5.18
- Can set an amount in receive screen
- Added Chinese and Japanese translations
- Updated the recovery phrase creation procedure
- Added coins: Namecoin, Vpncoin, Vertcoin, Jumbucks, Neoscoin

New in version 1.5.17
- Added Greek translation
- Fixed Peercoin and Digitalcoin rare invalid transaction creation
- New block explorer for Blackcoin
- Added Neoscoin
- Small UI fixes

New in version 1.5.16
- Changed the way balance is calculated and added the possibility to spend unconfirmed transactions
- Small optimizations when handling the QR code and transactions

New in version 1.5.15
- Support payment URIs requests from browsers and other apps
- Changed NuBits and NuShares URIs to "nu"
- Added Monacoin and Digibyte
- Added ability to spend own unconfirmed change funds
- Usability tweaks and bug fixes

New in version 1.5.14
- Added exchange history log
- Can send alt-coins from bitcoin wallet and vise-versa
- Make exchange rates appear faster in the UI
- Fix rare crash when viewing the exchange status of Peercoin or NuBits

New in version 1.5.13
- Integrated exchange (beta)
- Rebranding of Darkcoin to Dash
- UI tweaks

New in version 1.5.12
- Click on any addresses to edit the label or copy it
- Dedicated copy address button in the receive screen
- New user interface for Android Lollipop devices
- Improved icons
- Bug and crash fixes

New in version 1.5.11
- New settings screen
- Ability to view recovery phrase in settings
- Manual receiving address management (enable in settings)
- Testnet for Bitcoin, Litecoin and Dogecoin
- Usability tweaks
- Bug and crash fixes

New in version 1.5.10
- Balance screen shows the amount with 4 decimal places (click to view the full amount)
- Basic address book

New in version 1.5.9
- Ask confirmation before creating a new address

New in version 1.5.8
- Added the ability to create new addresses and view the previous ones
- When creating a new wallet, it is now possible to select the passphrase and copy it
- Usability fix when setting a password
- Better bug/crash reporting

New in version 1.5.6 and 1.5.7
- Cannacoin, Feathercoin, Digitalcoin and Rubycoin support

New in version 1.5.5
- Revert BTC fees to previous values, as transactions are not included fast enough in the blocks
- Added local currency values in the sign transaction screen

New in version 1.5.4
- Improved transaction broadcasting and send validation logic
- Fix issue where the balance was incorrectly calculated in some cases
- Updated Darkcoin p2sh address versions

New in version 1.5.3
- Changed Blackcoin code from BC to BLK

New in version 1.5.2
- Added exchange rates for various national currencies
- Blackcoin support
- Implemented multiple coin selection on creation or restoring wallet
- Improved automatic connectivity management with faster reconnects and detection of network change. Added feature to disconnect when the app is in background and idle for 30 minutes.
- Fix issue when restoring a wallet the previous wallet could reappear
- General usability and bug fixes

New in version 1.5.1
- Added beta support for Blackcoin

New in version 1.5.0
- The supported coins are now Bitcoin, Litecoin, Dogecoin, Peercoin, Darkcoin, Reddcoin, NuBits and NuShares. All will work without changing your seed!
- Cleaner interface and bug fixes.

New in version 1.4.1
- Re-design of the create wallet tutorial and set more sane defaults
- Fix crash when refreshing a non connected wallet
- Small UI tweaks

New in version 1.4.0
- New balance screen design
- Optimization for old 2.3.x Androids with very small screens
- Fix crash when emptying an already empty wallet
- When refreshing, do it only for the current coin
- General UI and usability tweaks
- Optimize layouts for small screens
- Fixed crash in older Androids due to a missing API
- Fixed camera crash in low resolution screens
- Able to install app in external storage
- ... and many fixes and optimizations
All previous history is available at the following repository, which is an unmodified fork of Coinomi prior to its license change:
https://github.com/CosmoJG/open-coinomi-android
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
@@ -6,7 +6,7 @@ buildscript {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.0.0'
classpath 'com.android.tools.build:gradle:2.3.3'
// classpath 'org.robolectric:robolectric-gradle-plugin:0.11.+'

// NOTE: Do not place your application dependencies here; they belong
3 changes: 1 addition & 2 deletions core/COPYING
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@

Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
@@ -199,4 +198,4 @@
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
limitations under the License.
5 changes: 4 additions & 1 deletion core/build.gradle
Original file line number Diff line number Diff line change
@@ -6,6 +6,9 @@ configurations {
}

dependencies {
targetCompatibility = '1.7'
sourceCompatibility = '1.7'

compile fileTree(dir: 'libs', include: ['*.jar'])

compile 'com.google.guava:guava:16.0.1'
@@ -42,4 +45,4 @@ task unitTest(type:Test, dependsOn: assemble) {
}

// bind to check
check.dependsOn unitTest
check.dependsOn unitTest
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.coinomi.core;
package com.openwallet.core;

import com.coinomi.core.wallet.AbstractAddress;
import com.openwallet.core.wallet.AbstractAddress;
import com.google.common.base.Joiner;

import org.bitcoinj.crypto.MnemonicCode;
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.coinomi.core;
package com.openwallet.core;


/*
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.coinomi.core.coins;
package com.openwallet.core.coins;

import com.coinomi.core.coins.families.BitFamily;
import com.coinomi.core.coins.families.PeerFamily;
import com.openwallet.core.coins.families.BitFamily;
import com.openwallet.core.coins.families.PeerFamily;

public class AsiacoinMain extends PeerFamily {
private AsiacoinMain() {
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.coinomi.core.coins;
package com.openwallet.core.coins;

import com.coinomi.core.coins.families.BitFamily;
import com.openwallet.core.coins.families.BitFamily;

/**
* @author Myckel Habets / Auroracoin dev team
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.coinomi.core.coins;
package com.openwallet.core.coins;

import com.coinomi.core.coins.families.BitFamily;
import com.openwallet.core.coins.families.BitFamily;

/**
* @author John L. Jegutanis
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.coinomi.core.coins;
package com.openwallet.core.coins;

import com.coinomi.core.coins.families.BitFamily;
import com.openwallet.core.coins.families.BitFamily;

/**
* @author John L. Jegutanis
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.coinomi.core.coins;
package com.openwallet.core.coins;

import com.coinomi.core.coins.families.BitFamily;
import com.openwallet.core.coins.families.BitFamily;

/**
* @author John L. Jegutanis
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.coinomi.core.coins;
package com.openwallet.core.coins;

import com.coinomi.core.coins.families.PeerFamily;
import com.openwallet.core.coins.families.PeerFamily;

/**
* @author John L. Jegutanis
Loading

0 comments on commit 366cd2c

Please sign in to comment.