GithubHelp home page GithubHelp logo

inzhoop-co / leth Goto Github PK

View Code? Open in Web Editor NEW
106.0 19.0 62.0 43.61 MB

The First mobile Lightwallet for Ξthereum

License: GNU General Public License v3.0

JavaScript 88.43% HTML 1.86% Java 0.02% CSS 6.05% SCSS 3.65%

leth's Introduction

LΞTH (deprecating...)

The Only mobile ligthwallet built with Ξthereum community in mind!

About

LΞTH (Ligth Ξthereum Mobile Wallet) is the first hybrid mobile app to manage an Ethereum wallet built using Ionic framework with the aim to serve the open community.

Features

Thanks to the great job of library of ConsenSys (eth-lightwallet), the app could manage the key-pairs securely on smartphone side without send any password out of the wallet. Every transaction could be signed directly with the smartphone and sent to an ethereum node public/private.

With LETH you could:

  • Create a HD ligthwallet
  • Manage an Ethereum wallet address
  • Set host node address private/test/public
  • Send / Receive ETH
  • Send / Receive TOKENS
  • List your transactions
  • Share Address via SMS, Email or Whisper v5 (Shh)
  • Share your geolocation
  • Request payments via SMS, Email or Whisper (Shh)
  • Send messages / images to friends and community using Whisper protocol in unpersisted chat
  • Send private unpersisted crypted messages to friends
  • Backup / Restore wallet using Mnemonic passphrase
  • Protect access with TouchID / PIN code
  • Currency convertion value via Kraken API
  • Add Custom Token and Share it with friends
  • Run DAppLeth (Decentralized external dapps embedded at runtime)

Beta Testers

Become a BETA tester, install the App and help the community to grow up. Visit Inzhoop website Contact to Gitter

References

https://github.com/ConsenSys/eth-lightwallet

Stuff and info for the project (Draft!)

Install some stuff lke Node.js and npm

https://nodejs.org/dist/v4.2.3/node-v4.2.3.pkg

Install ionic and cordova

sudo npm install -g cordova ionic

Clone the project

git clone https://github.com/inzhoop-co/LETH.git

Test on browser in localhost:8100

ionic serve

Screenshots

License

GNU GENERAL PUBLIC LICENSE 3.0

leth's People

Contributors

dependabot[bot] avatar emiyoox avatar esi-inzhoop avatar esidev avatar grishick avatar hacktar avatar inzhoop avatar jdejoode avatar makoto avatar milyinzhoop 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  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  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  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  avatar  avatar  avatar  avatar  avatar

leth's Issues

Send Token requires double switch

as reported from users:

"When Wallet is clicked in LETH and you want to send the above token to a recipient, you always have to switch to the token.
First, the token must be changed before the destination address is scanned.
Once the destination address (QR code) has been scanned in, you will need to switch back to the token so you can enter the token number before clicking Send.
Each time Wallet jumps the currency to ETH and does not stay on the custom token.
Whether Android or iOS version."

plus
"If we transfer Custom Token to Leth Wallet, the Balance on the Leth Wallet will not automatically refresh."

share address with friend -- where to proceed?

When sharing an ether address I can choose email, SMS (both working) or chat. Once I chose a friend to share the address with, I can't proceed in any way. Maybe this is related to connection problems.

Dapp event messages style

Change the css style of automatic messages from Dappleth (like Beth Lottery ) aligning to center.
Change alignment own messages to right.

Wallet password prompt should appear above "Loading" overlay

When my DApp sends a transaction, I want to lock the screen with "Loading" or "Working" or some kind of similar overlay until the transaction succeeds or fails. However, if I call $service.loadingOn() before making the transaction call, then password prompt will appear underneath "Loading" overlay. If I do not call $service.loadingOn(), then the UI remains active and the user can navigate away from current screen before password prompt appears, because the password prompt may take from a second to a couple of minutes to appear.

localisations - German

We would be happy to translate a localisation in German for use in D-A-CH Germany/Austria/Switzerland.
Menu-Strings are most important maybe something like that would increas usability in DACH

Here are the important translations (in the menu at the bottom of the app)

Store-Store
Chat-Chat
Friends-Freunde
Wallet-Brieftasche
Address-Adresse
Settings-Einstellungen

Custom token - zusätzlicher Token
Add a custom Token - zusätzlicher Token hinzufügen

and here are the low priority translations in the Menu - Settings - Einstellungen

Host type - host typ
host - host
Backup - Backup
Backup your Wallet - Backup Brieftasche
Restore a Wallet - eine Brieftasche wiederherstellen
PIN - PIN
Enable - aktivieren
Activity - Aktivität
Background mode - Hintergrundsmodus
Vibrate notification - Vibrationsbenachrichtigung
Communication - Kommunikation
NFC sensor - NFC Sensor
Geolocation - Geolokalisation
Exchange - Börse
Base currency - Basiswährung

Constant functions return empty results in LETH when they work with MetaMask

My Solidity contract has the following function

    function getFriend(address _friend) public view returns (bytes32 friendName) {
        require(_friend != address(0));
        return addressBook[msg.sender][_friend];
    }

In my LETH DApp I have a call to this function that looks like this:

dappContract.getFriend(addr, function(error, friendName) {
                if(error) {
                    console.log("Error in getFriend: ", error)
                    if(cb) {
                        cb(error, null);
                    }
                } else {
                    console.log("Received friend name in hex", friendName);
                }
            });

calling this code, results in the following network trace in Chrome Developer console:

Request:
{"jsonrpc":"2.0","id":269,"method":"eth_call","params":[{"to":"0xd2c92e41106ae0cc0e573d19ed739b433bcc33ae","data":"0x30ead4690000000000000000000000006a0c0b023cafd4a1f7b6f16575329b7ac0d59fcc"},"latest"]}

Response:
{"jsonrpc":"2.0","id":269,"result":"0x0000000000000000000000000000000000000000000000000000000000000000"}

The response is incorrect, because "addressBook" contains the element that should be returned. In this case, the element's value is "0x4163633300000000000000000000000000000000000000000000000000000000".

When I enable MetaMask extension, unlock the wallet in MetaMask and reload LETH web app, MetaMask injects its own web3 provider instead of LETH's. With MetaMask's web3 provider the same call works correctly:

Request:

{"jsonrpc":"2.0","id":38,"method":"eth_call","params":[{"to":"0xd2c92e41106ae0cc0e573d19ed739b433bcc33ae","data":"0x30ead4690000000000000000000000006a0c0b023cafd4a1f7b6f16575329b7ac0d59fcc","from":"0x9451def8ca3662d40b5569dc9181383789515748"},"latest"]

Response:
{"jsonrpc":"2.0","id":38,"result":"0x4163633300000000000000000000000000000000000000000000000000000000"}

Failure to display number of token owned

After adding a custom Token in the store section, going to the Wallet section and choosing the token in " coin to pay with", when selecting the custom token the number displayed is wrong. It is the number of Ether at the address instead.
Sending the token works properly

Backdate parameter

Whisper messages are not persisted on LETH, except that for running session.
On opening the user receives messages 1 hour backdated from last readed message.
Is better to use a settable parameter for backdate.

Orbot integration for privacy

This is intended to be a feature request. I love this app and I think it would be cool to route the traffic through Tor via Orbot (local SOCKS proxy) to enhance privacy.

Cannot change host setting

This is in Advanced Settings in the mobile app on iOS. Typing in new host name or tapping the second pre-filled URL does not have any effect.

Sound and Media send/receive

Chats without media contents are out of date!
Maybe using Swarm, it's necessary introduce media contents managements, even just for send and receive audio and video.

$service.closeOptionButtons() throws "$ionicListDelegate is not defined" error

In my DApp I have a list and each list item has two option buttons defined by "ion-option-button" tags:

<ion-option-button class="button-positive" ng-click="openUser(user)">
				See favors
			</ion-option-button>

In the method that is triggered by pressing an option button I call
$service.closeOptionButtons();
in order to close the option buttons, but this call results in an exception "$ionicListDelegate is not defined"

loading progress bar

After the initial password input, the loading takes forever (ok, nearly, at least a few minutes, not finished yet). Please add a progress bar to show the user what's happening or if the app is stuck at some point.

Ionic2 porting

Now that ionic 2 seem running well, we need to start a spike from scratch for Leth 2.0

Shh v2 obsolete after fork Ropsten

The Metropolis release on Ropsten (and the on mainnet) is forcing to adopt whisper v5 and is incompatible with current v2 version.
To do:
Upgrade nodes geth version.
Use whisper v5.

User interface message chat board copying

Long clicking on a message doesn t display a menu to copy/share the message
Also when selecting the field to write, the keyboard pops up as usual but don't push the chat field to the last message. Therefore when the user write he has to push the conversation up to see the last message

HTML and HREF on chat

Chat messages accepts html and you can add href link to external resources but when you follow a link the result page opened has no navigation bar and no back button.

sent messages in chat don't show up

  1. type a message in the chat tab
  2. click blue arrow next to the keyboard to send it
  3. message doesn't show up in chat protocoll

Maybe this is related to connection errors but I would expect the message to be shown anyway, also if it hasn't been successfully sent yet.

White screen

When I load the Android version on your page, I just get a white screen. What is the minimum version of Android required for this to run?

Add Ethereum Classic Support

Transaction price in forked Ethereum kills some applications of the technology because of the current coin quotation. Ethereum Classic can be rather used to make sure smaller transactions are still viable. So adding it will greatly increse LETH user base.

can't abort loading

When I try to abort the "loading" process by hitting the built in back button of my phone, nothing happens. I would expect it to go "where it came from" = last screen without loading.
Problem is related to "back button doesn't work" in #33 and "loading takes forever" in #34.

can't navigate back from initial password input

In issue #32 I was told to not use a wallet with a public seed. Trying to go back to the entropy generator ("shake to start") fails, because my built in back button doens't work. I have to kill and restart the app.

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.