Giter Site home page Giter Site logo

autonomoussoftware / metronome-wallet-desktop Goto Github PK

View Code? Open in Web Editor NEW
18.0 11.0 12.0 7.2 MB

๐Ÿ’ป๐Ÿ’ฐ Metronome wallet for desktop devices

Home Page: https://metronome.io

License: MIT License

JavaScript 99.05% HTML 0.45% Makefile 0.08% Shell 0.33% Batchfile 0.09%
wallet ethereum metronome-wallet electron-app metronome erc20

metronome-wallet-desktop's Introduction

Metronome Wallet Desktop

๐Ÿ’ป๐Ÿ’ฐ Metronome Wallet for desktop computers

Build Status JavaScript Style Guide

Metronome Desktop Wallet

Development

Create a local .env file with the following content:

ENABLED_CHAINS=
ROPSTEN_NODE_URL=

Requirements

  • Node.js LTS (v12 minimum, v14 recommended)

Launch

# Install dependencies
npm i

# Run dev mode
npm run dev

Troubleshooting

  • For errors related to node-gyp when installing the dependencies, try using sudo to postinstall the dependencies.
  • For Windows, installing windows-build-tools may be required. To do so, run:
npm i --global --production windows-build-tools

Logs

The log output is in the next directories:

  • Linux: ~/.config/<app name>/logs/{process-type}.log
  • macOS: ~/Library/Logs/<app name>/logs/{process-type}.log
  • Windows: %USERPROFILE%\AppData\Roaming\<app name>\logs\{process-type}.log

process-type being equal to main, renderer or worker

More info github.com/megahertz/electron-log.

Settings

  • Linux: ~/.config/metronome-desktop-wallet/Settings
  • macOS: ~/Library/Application Support/metronome-desktop-wallet/Settings
  • Windows: %APPDATA%\\metronome-desktop-wallet\\Settings

To completely remove the application and start over, remove the settings file too.

Production Build

# Run build process
npm run dist

# or

# Run build process and publish to GitHub releases
npm run release

macOs

The app needs to be signed and notarized. To do so, install the .p12 file in the local keychain (double click on it).

The certificate is obtained from the Apple Developer website. The Developer ID Application is required. The Developer ID Installer may be required too. Once obtained, the .cer files have to be converted to .p12 by providing the certificate passwords/private keys.

In addition to that, the following environment variables have to be set to publish:

# See below to complete these two:
APPLE_ID=
APPLE_ID_PASSWORD=
# See `electron-build` docs on how to complete these two:
CSC_LINK=
CSC_KEY_PASSWORD=
# Github personal access token to upload the files to repo releases.
GH_TOKEN=

Follow these steps to create an app specific password. The APPLE_ID variable is the Apple ID used to create the password. APPLE_ID_PASSWORD is the password Apple created for the app.

The GitHub personal access token needs repo permissions. See the docs on how to create a personal access access token for more information.

The signing certificate shall be in the root folder of the repository. The certificate password will be required during the signing process. The signing process may take several minutes because notarization requieres uploading the app to Apple.

In order to verify that the application has been successfully signed and notarized, run:

# Verifies the app has been signed
codesign --verify --verbose ./dist/mac/Metronome\ Wallet.app

# Verifies the app has been notarized
spctl -a -t exec -vvv ./dist/mac/Metronome\ Wallet.app

Windows

To sign the application, a certificate for the Microsoft Authenticode platform is required. The certificate, a .p7b file, will then be required during the build process.

Current provider is DigiCert.

License

MIT

metronome-wallet-desktop's People

Contributors

gabmontes avatar gndelia avatar ianaya89 avatar jcvernaleo avatar martincarrera avatar

Stargazers

 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

metronome-wallet-desktop's Issues

Receiving wallet not showing transactions

Sent ETH and MTN is not showing up in the receiving wallet. Sent 3 transactions to the same address. Receiving wallet does not see transactions under all or receiving tabs. Version 0.4.0

Login screen does not display

Bought some MTN, clicked the All View Tab, and the app crashed. Restarted laptop, when attempted to relaunch the app received unhandled error "Browser Can't Load". Then the login page appears, login, press send, and page appears blank

Converter calls are not working.

  • Enable converter button
  • Contract call for ETH>MET
  • Contract call for MET>ETH
  • Display ETH>MET in txs row
  • Display MET approval and MET>ETH in txs row

Send MTN to another MTN Wallet

I tried to Send MTN to another users MTN wallet. Since it was during initial auction period i was expecting it to error out, but it was accepted. But looks like my balance didnt update, still says 0 MTN which is expected.

Wallet can't subtract

Spent 133.3 ETH and noted the ETH total in the wallet did not change. Quitting and restarting the wallet updated to expected amount

Unhandled error after bringing the app from minimize mode

Minimized the app for a few hours where computer also went to sleep. At maximizing the app, it popped up the "Unhandled Error" message.

"Unhandled Error
ReferenceError: event is not defined at BrowserWindow.
(/Applications/MetronomeWallet.app/Contents/Resources/app.asar/build/main/mainWindow.js:37:18)"

initial transaction does not show up in list

Starting with a fresh wallet (so 0 balance) had someone send me some eth. It did not show up in the balance until I closed and reopened.

Once reopened, the balance showed up but it does not appear in the tx list.

Could not sync to the latest block

v0.3.0 on Ubuntu 16.04 I keep getting a 'Could not sync to the latest block' error pop up regularly in the GUI and shows up in the terminal as well:

jcv@triforce ~ $ metronome-desktop-wallet 
[11:06:17.312] [info] loading url: file:///opt/Metronome Wallet/resources/app.asar/build/index.html
[11:06:17.315] [info] App ready, initlilizing...
[11:06:17.319] [verbose] Settings file /home/jcv/.config/metronome-desktop-wallet/Settings
[11:06:17.323] [silly] Current settings { app: 
   { node: { websocketApiUrl: 'ws://parity.bloqrock.net:8546' },
     defaultDerivationPath: 'm/44\'/60\'/0\'/0',
     indexerApiUrl: 'http://api.indexer.bloqrock.net',
     bestBlock: -1 },
  coincap: { ethPriceEmitRate: 5, ETH_USD: 930 },
  metronome: 
   { contracts: 
      { token: '0xf583c8fe0cbf447727378e3b1e921b1ef81adda8',
        auctions: '0xddfd00e05901fae4df5d1b01f4212e62887177fc',
        converter: '0xfe3e820560bd3af2c3a807cae8a2e92bc3577a7e' } },
  tokens: { '0xf583c8fe0cbf447727378e3b1e921b1ef81adda8': { symbol: 'MTN' } },
  user: 
   { passwordHash: 'f582c0ea6efdfbaaf61e741e4a3d5e4b550ea01a27011a48ce07754f82fddf20',
     wallets: { cc7c62a257be3441ed32729eb98fa4f1713f501a3be90e17ca31e951f77306dc: [Object] },
     activeWallet: 'cc7c62a257be3441ed32729eb98fa4f1713f501a3be90e17ca31e951f77306dc' } }
[11:06:18.210] [verbose] --> ui-ready:cjdq4mixt0000esis1ryw80b2 
[11:06:18.211] [verbose] Initializing CoinCap listener
[11:06:18.224] [verbose] Sending cached ETH price
[11:06:18.225] [verbose] <-- eth-price-updated 930
[11:06:18.225] [verbose] Attaching listener to ETH price changes
[11:06:18.249] [verbose] <-- ui-ready:cjdq4mixt0000esis1ryw80b2 {"onboardingComplete":true}
[11:06:18.525] [verbose] Auction status { genesisTime: 1518370860,
  currentPrice: '590338668492800000',
  tokenRemaining: '7999870226452654492656570',
  nextAuctionStartTime: 1518998400,
  currentAuction: '0' }
[11:06:18.526] [verbose] Converter status { availableMtn: '1000000000000000000',
  availableEth: '1000000000000000000',
  currentPrice: '333333333333333333' }
[11:06:22.544] [verbose] --> open-wallets:cjdq4mma80001esis3ci8opx5 
[11:06:22.544] [verbose] Supplied password is valid
[11:06:22.547] [verbose] Current best block -1
[11:06:22.550] [verbose] <-- open-wallets:cjdq4mma80001esis3ci8opx5 {"walletIds":["cc7c62a257be3441ed32729eb98fa4f1713f501a3be90e17ca31e951f77306dc"],"activeWallet":"cc7c62a257be3441ed32729eb98fa4f1713f501a3be90e17ca31e951f77306dc"}
[11:06:22.552] [verbose] []
[11:06:22.552] [verbose] <-- Transactions 0xf10826bf57a35ab8c3b5c5c500a80e0ef4b97cc1 0
[11:06:22.565] [verbose] <-- MTN 0xf10826bf57a35ab8c3b5c5c500a80e0ef4b97cc1 0
[11:06:22.581] [debug] ETH balance updated { address: '0xf10826bf57a35ab8c3b5c5c500a80e0ef4b97cc1',
  balance: '0' }
[11:06:22.582] [verbose] <-- Balance 0xf10826bf57a35ab8c3b5c5c500a80e0ef4b97cc1 { balance: '0' }
[11:06:22.830] [debug] Syncing [ '0xf10826bf57a35ab8c3b5c5c500a80e0ef4b97cc1' ] 431765
[11:06:35.722] [verbose] <-- eth-price-updated 930
[11:06:40.284] [verbose] New block header 431766
[11:06:40.303] [verbose] <-- MTN 0xf10826bf57a35ab8c3b5c5c500a80e0ef4b97cc1 0
[11:06:40.363] [verbose] Auction status { genesisTime: 1518370860,
  currentPrice: '590140236436000000',
  tokenRemaining: '7999870226452654492656570',
  nextAuctionStartTime: 1518998400,
  currentAuction: '0' }
[11:06:40.364] [verbose] Converter status { availableMtn: '1000000000000000000',
  availableEth: '1000000000000000000',
  currentPrice: '333333333333333333' }
[11:06:45.313] [verbose] <-- eth-price-updated 929.99
[11:06:56.107] [verbose] <-- eth-price-updated 930
^[[B[11:07:06.126] [verbose] <-- eth-price-updated 930
[11:07:13.199] [verbose] <-- eth-price-updated 930
[11:07:19.856] [verbose] <-- eth-price-updated 930.08
[11:07:22.461] [warn] <-- Error: Could not sync to the latest block { walletId: 'cc7c62a257be3441ed32729eb98fa4f1713f501a3be90e17ca31e951f77306dc' }
[11:07:26.656] [verbose] <-- eth-price-updated 930.09
[11:07:32.499] [verbose] <-- eth-price-updated 930.09
[11:07:37.557] [verbose] <-- eth-price-updated 930.09

Issue in updating URL in setting

I am stuck after I updated URL in setting to connect my local blockchain . if I enter wrong URL or somehow not able to connect local chain, I get error on login, which is fine But main issue is I can not update that URL again to enter correct URL. I uninstalled wallet again from my laptop and installed new copy but still same error. . I am stuck now can not use wallet anymore. is there any way clean it up and install again ? I am using mac.

Unhandled Promise Rejection
Error: connection not open
at WebsocketProvider.send (/Applications/Metronome Wallet.app/Contents/Resources/app.asar/node_modules/web3-providers-ws/src/index.js:219:18)
at Timeout._onTimeout (/Applications/Metronome Wallet.app/Contents/Resources/app.asar/node_modules/web3-providers-ws/src/index.js:204:19)

Add confirmation dialogs

Most operations like Buy, Send and Restore will need a confirmation dialog before performing the desired action.

auction time units

v0.3.0 on Ubuntu 16.04

The time units for the auction have the smallest units as segs which probably is supposed to be secs.

Parity Compatibility

Parity wallet is using a different derivation path, we need to include a feature to restore accounts generated with parity and support its derivation path

Update "Terms & Conditions" URL

When starting the wallet up (v0.3.0 on ubuntu 16.04) the initial splash screen provides a link to see the license you need to accept but it just goes to the main metronome page rather than a license.

User had no eth, but pending tx was accepted

  • User created wallet
  • Started with 0 MTN 0 ETH
  • User tried to buy MTN with 999 ETH
  • Transaction was accepted

screen shot 2018-02-16 at 10 45 57 am

- Transaction shows up as pending and MTN balance updated - User tries to buy MTN again with 0 eth, but now says Insufficient funds

Here is what he sees in explorer
screen shot 2018-02-16 at 10 50 36 am

Incorrect link for software license

At application install click the "software license" link prior to agreeing

"our software license" on splash page takes to Metronome's main page - not license. It is not clear what the next action is for the user from there. What have I read & agreed to by accepting the next these terms?

Identify known contracts in send txs

If the transaction is outgoing and the destination is a known contract, show that instead of the address:

image

Should read "PENDING TO MTN TOKEN CONTRACT".

Could not connect to latest block

When minimizing Metoronome it creates a pool of 'could not connect to latest block'. Cleans itself up quickly but the the in-app notifications should not accumulate so much. Version 0.3.0

Unhandled Promise Rejection Error

With the app open and not doing anything, some background process triggered a pop up with the error Unhandled Promise Rejection Error.

Unhandled Promise Rejection
Error: read ETIMEDOUT
screen shot 2018-02-15 at 4 21 05 pm

Crash when confirming auction buy

To reproduce:

  • Start from scratch
  • Receive ETH
  • Buy in Auction
  • Wait

The error seen is:

image

Possible solution: check in L207 for tokenData being null.

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.