Skip to content

A mobile wallet where you own the keys, using TypeScript, JavaScript, and React Native

License

Notifications You must be signed in to change notification settings

wrkzcoin/wrkzcoin-mobile-wallet

 
 

Repository files navigation

TonChan - A mobile, native TurtleCoin wallet

Screenshot

Initial Setup

  • cd TonChan
  • yarn install

Running

  • node --max-old-space-size=8192 node_modules/react-native/local-cli/cli.js start (Just need to run this once to start the server, leave it running)
  • react-native run-android

Logging

react-native log-android

Creating a release

You need to bump the version number in:

  • src/Config.js - appVersion
  • android/app/build.gradle - versionCode and versionName
  • package.json - version - Not strictly required
  • Update user agent in android/app/src/main/java/com/tonchan/MainApplication.java and android/app/src/main/java/com/tonchan/TurtleCoinModule.java

Then either run yarn deploy-android, or:

cd android

Create an AAB

./gradlew bundleRelease

Create an APK

./gradlew assembleRelease

Deploy to device

./gradlew installRelease

Integrating QR Codes or URIs

TonChan supports two kinds of QR codes.

  • Standard addresses / integrated addresses - This is simply the address encoded as a QR code.

  • turtlecoin:// URI encoded as a QR code.

Your uri must begin with turtlecoin:// followed by the address to send to, for example, turtlecoin://TRTLv2Fyavy8CXG8BPEbNeCHFZ1fuDCYCZ3vW5H5LXN4K2M2MHUpTENip9bbavpHvvPwb4NDkBWrNgURAd5DB38FHXWZyoBh4wW

There are a few optional parameters.

  • name - This is used to add you to the users address book, and identify you on the 'Confirm' screen. A name can contain spaces, and should be URI encoded.
  • amount - This is the amount to send you. This should be specified in atomic units.
  • paymentid - If not using integrated address, you can specify a payment ID. Specifying an integrated address and a payment ID is illegal.

An example of a URI containing all of the above parameters:

turtlecoin://TRTLv2Fyavy8CXG8BPEbNeCHFZ1fuDCYCZ3vW5H5LXN4K2M2MHUpTENip9bbavpHvvPwb4NDkBWrNgURAd5DB38FHXWZyoBh4wW?amount=10000&name=Starbucks%20Coffee&paymentid=f13adc8ac78eb22ffcee3f82e0e9ffb251dc7dc0600ef599087a89b623ca1402

This would send 100 TRTL (10000 in atomic units) to the address TRTLv2Fyavy8CXG8BPEbNeCHFZ1fuDCYCZ3vW5H5LXN4K2M2MHUpTENip9bbavpHvvPwb4NDkBWrNgURAd5DB38FHXWZyoBh4wW, using the name Starbucks Coffee (Note the URI encoding), and using a payment ID of f13adc8ac78eb22ffcee3f82e0e9ffb251dc7dc0600ef599087a89b623ca1402

You can also just display the URI as a hyperlink. If a user clicks the link, it will open the app, and jump to the confirm screen, just as a QR code would function. (Provided all the fields are given)

Developing

  • Trigger a background sync to fire: adb shell cmd jobscheduler run -f com.tonchan 999

About

A mobile wallet where you own the keys, using TypeScript, JavaScript, and React Native

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 51.6%
  • C++ 37.7%
  • HTML 4.6%
  • Java 4.1%
  • Objective-C 0.7%
  • C 0.5%
  • Other 0.8%