Giter Site home page Giter Site logo

arux-btt / mymonero-app-js Goto Github PK

View Code? Open in Web Editor NEW

This project forked from mymonero/mymonero-app-js

0.0 2.0 0.0 7.91 MB

The MyMonero Desktop and Cordova Javascript Apps

License: BSD 3-Clause "New" or "Revised" License

JavaScript 99.53% Shell 0.08% CSS 0.02% HTML 0.36%

mymonero-app-js's Introduction

MyMonero JS Desktop & Cordova Apps

Logo

General Info

  1. What's in This Repo?
  2. What is MyMonero?
  3. Features
  4. Downloads
  5. Requirements & Install Locations
  6. Reporting Bugs & Making Feature Requests
  7. Related Documents

Contributing and Testing

  1. Getting the Source Code
  2. Repository Contents
  3. Building for Production
  4. Running in Development Mode
  5. Contributing
  6. MyMonero Core Contributors
  7. License and Copyrights

What's in This Repo?

This repository holds the source code, resources, and build scripts for the official MyMonero downloadable desktop and Cordova-based mobile apps, which are built in Javascript.

What is MyMonero?

MyMonero is a simple and featureful way to use the next-generation private digital currency called Monero. The MyMonero app lets you manage your Monero wallets, address book, and transactions by storing your information locally and keeping it encrypted.

MyMonero is currently available for:

  • desktop on Mac, Windows, and Linux; and
  • mobile on iOS and Android.

The main reasons people use MyMonero are its convenience and featurefulness. To accomplish this convenience and other features of MyMonero, there's the privacy trade-off of sharing your private Monero "view key" with the MyMonero server, so that it can scan the network for your wallets' transactions on your behalf. But it's impossible for MyMonero to spend any of your funds or otherwise access your metadata, because your "private spend key" and "private wallet mnemonic/seed" are never sent to our server. So MyMonero is often described as a 'non-custodial' service. In fact, in the near future, even the above trade-off will be eliminated as we're presently working to open-source a version of the back-end, which anybody can run as their own server at home.

Desktop Screenshot: Welcome to MyMonero! Let's get started.

Features

  • Multiple wallets at a time

  • Contacts address book

  • Deep OpenAlias integration (use domain or email instead of long Monero address)

  • Creation of QR codes and messages to request Monero be sent to you

  • Sending money to contacts, OpenAlias, or other Monero addresses (these may be input manually, or automatically by either dropping a request QR code on the Send screen or clicking a monero:โ€ฆ request URL on MacOS or Windows)

  • Settings (for clearing data, managing preferences such as idle timeout, etc.)

  • Strong (AES256) encryption to password protect all sensitive user data

  • Improved UX, including informative tooltips

Downloads

Download the latest version from our website at mymonero.com/app or from the Releases tab. (Coming soon)

Developers and pre-release testers who would like to use and work on the app can run it by obtaining the source and running one of the build commands below.

To get set up with the source code, please see Getting the Source Code below.

Requirements & Install Locations

The desktop app is built on Electron and can be packaged to run on modern versions of:

  • MacOS (.app)
  • Windows (installer .exe)
  • Linux (.appimage)

The mobile apps are built on Apache Cordova and can be packaged for iOS and Android.

User Data Locations

Reporting Bugs & Making Feature Requests

If you would like to report an issue or share a feature request, please create a Github Issue on this project.

If you're reporting a bug, be sure to include all information which we would need to reproduce the issue, such as the operating system and app version on which you saw the bug, and the steps you took, if you can tell.

For customer support, you can also contact us directly.

Related Documents

Contributing & Testing

Getting the Source Code

Download & Install

  1. Clone or otherwise download this repository. Then, in your terminal, cd into the repo directory.

  2. (To get the bleeding edge, and/or if you are going to make changes) Switch to the develop branch by executing git checkout develop.

  3. Install all dependencies by executing npm install.

On Debian/Ubuntu/Linux

  • Debian/Ubuntu now calls the node binary nodejs. Workaround is to symlink /usr/bin/nodejs to /usr/bin/node, either manually, or by installing the "nodejs-legacy" package.

  • libgconf is now a requirement for running Electron under Linux, and can be installed with apt install libgconf-2-4 (electron/electron#1518)

Cordova

If you are going to run the app under any of the Cordova / mobile platforms

  1. Install all Cordova development dependencies for iOS and Android. See Cordova Installation Notes for details.

  2. Run bin/setup_repo_for_cordova.

Repository Contents

  • Executable scripts for common tasks are located in bin/

  • Local, application source code is located in local_modules/. This includes bundled/static third-party "Vendor" libraries such as EmojiOne.

  • After installation, non-bundled third-party modules (such as Electron) will be located in node_modules/.

  • App package and build process info is located in package.json.

  • Cordova build configuration and dependencies are located in config.xml, cordova_res/, et al. Cordova build intermediate assets and stages are also located in plugins/, platforms/, and www/.

  • This readme is located at README.md, and the license is located at LICENSE.txt.

Building for Production

Unless you are a MyMonero pre-release tester, you will not need to produce a production build of MyMonero, especially because you want to be using a verified build of MyMonero for daily usage.

If you're testing a pre-release version of this app, you may want to build a production-ready version of the app rather than only running it in dev mode to verify its behavior in production mode.

See Packaging the App for Production Mode for information.

Running in Development Mode

Desktop

Does not require you to package, sign, and install the app, and will cause the Developer window to be shown. Certain features, such as URL opening under MacOS, require production build.

bin/start_dev_desktop

Cordova

iOS - Simulator

Causes the Safari Web Inspector to be shown and attached to the Simulator app's WebView (Update: inspector auto-open now commented due to conflict with web workers, see #63)

bin/start_dev_cordova_ios_sim

iOS - Device

Requires you to specify your signing info, e.g. development team in the Xcode project

bin/start_dev_cordova_ios_device

Android - Emulator

Debugging is possible through Chrome; navigate to "chrome://inspect"

bin/start_dev_cordova_android_emu

Android - Device

Needs more testing

Ensure that the USB Debugging is enabled and that the session is accepted on your Android device if you get device.js error. Also try removing the USB cable and replacing it. Navigate to "chrome://inspect" to monitor debug status. Also may help to run adb logcat while installing.

bin/start_dev_cordova_android_device

Browser

Used for Cordova debug only - not distributed

bin/start_dev_cordova_browser

Contributing

Contributions by way of pull request are very welcome, and you will be credited in the release notes if your PR is merged.

If you would like to contribute, please scan the technology notes in order to find information on libraries used, the reasons behind various architectural choices, and how to write tests.

Feel free to create a Github issue if you want to report bugs, discuss improvements, submit feature ideas, or ask development & QA-specific questions.

For background on this project, see Why We Built the Native Apps.

There is no specific code styleguide yet (with the exception of the preference of tab-indentation) but we ask that code contributions:

  • are kept modular or well factored, either platform-agnostic or with platform specified (see Technology Notes),
  • are written in a clear, understandable, simple, and maintainable manner,
  • employ best practices, and
  • are well tested and don't break anything, especially security.

You may also like to read the unofficial Technology Roadmap to get a peek at what we're thinking about for the future.

There's also an icebox of ideas, features, improvements, known issues, and other todos waiting to be knocked out which are kept in the Issues tracker.

At the moment, the performance of the Cordova apps needs improvement and further testing. Contributions welcome. Information can be found on issue #63.

MyMonero Core Contributors

Contributors to each release are credited in release notes.

The MyMonero core contributors listed below either work full-time on MyMonero or have made ongoing and/or critical contributions.

  • ๐Ÿ‚ Paul Shapiro endogenic โ€“ Project maintainer; Lead client app developer; Partner

  • ๐Ÿฆ„ Riccardo Spagni fluffyponyza โ€“ Advisor; Partner; Monero project core member

  • ๐Ÿ˜Ž Lee Clagett vtnerd โ€“ Lead back-end developer

  • ๐Ÿ”ฅ Matt D Smith mds โ€“ v1/MVP app designer

  • ๐Ÿ„ luigi1111 luigi1112 โ€“ Monero tech advisor; Built client-side RingCT support

  • ๐ŸŒ  Your name here?

License and Copyrights

See LICENSE.txt for license.

All app source code and assets copyright ยฉ 2014-2017 by MyMonero. All rights reserved.

mymonero-app-js's People

Watchers

James Cloos avatar Arux avatar

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.