Code Monkey home page Code Monkey logo

eclair-mobile's Introduction

⚠️ Eclair Mobile is now in End-Of-Life mode. Do not use it for new wallets.

This app will only be updated if we discover a critical bug.

We recommend switching to Phoenix, a pure Lightning wallet also developed by us.


Eclair Mobile is a next generation, Lightning-ready Bitcoin wallet. It can be used as a regular Bitcoin wallet, and can also connect to the Lightning Network for cheap and instant payments.

This software is based upon eclair, and follows the Lightning Network standard.

Installation

The wallet is available on Google Play, you can also download APKs from the releases page.

Usage with Lightning

Opening a LN channel

  1. Make sure you have funds (swipe to the left from the home screen to display your address and receive funds).

  2. Swipe to the right from the home screen, and click on the green + button.

  3. You can now choose to scan/paste the adress of a Lightning Node.

    Alternatively, choose Autoconnect to initiate a connection with one of our nodes.

  4. Enter the capacity of the channel and click Open.

    A transaction will be sent to fund the channel. You can find it in the transactions list as an outbound Bitcoin transaction, with an amount corresponding to the channel's desired capacity. At this point the channel will have a WAIT_FOR_CONFIRMED state and can not be used yet.

  5. Once the channel reaches the NORMAL state (the funding transaction has 2+ confirmations) you can send payments!

Sending a LN payment

  1. Make sure you have at least one channel in a NORMAL state with enough balance.

  2. In the Transaction view, click the Send button.

    You can now scan or paste a Lightning Payment request. This is an invoice generated by a node in the network, and which contains the necessary informations required to execute a LN payment. We have set up Starblocks, a virtual coffee shop for testers. You can use it to generate LN payment requests on testnet.

  3. A window will open to display the informations about the payments. Click Send Payment.

    The wallet will now find a route from your node to the destination node. Depending on the topology of the network and the amount of hops needed to reach the destination node, you will pays fees. For now, this wallet does not enable you to limit the fees. Once a valid route is found, the balance of one of your channels will be updated.

    If no route can be found, the payment fails and your channels are unchanged. The reasons can be multiple:

    • the destination node is not online;
    • none of your channels has enough funds;
    • the nodes between you and the destination node do not have channels with sufficient capacity to relay your payment;
    • ...

Receiving LN payments

  1. Make sure you have at least one channel in a NORMAL state with enough receiving capacity.
  2. Go to the Settings page and toggle Enable receive over Lightning.
  3. Swipe to the left from the home screen and click the LIGHTNING tab.
  4. A Lightning Payment request is displayed; it can be paid from any Lightning-enabled wallet.

NB: when you enable receiving over Lightning, you must be aware of a couple limitations:

  • Your phone needs to regularly have access to the internet to monitor the blockchain, otherwise your funds may be at risk. Eclair-mobile runs a background task that will check the blockchain, even if you don't launch the app daily.
  • Your phone needs to be online with the app open to receive a payment.

See here for more thorough explanations.

Closing a channel

  1. In the LN channels list, click on the channel you want to close.

  2. Click on the Close channel button

    If the channel is not in a NORMAL state, the closing will be uncooperative. It means that you will have to wait for 144 blocks to receive your funds. This is a Lightning Network specification to prevent theft.

  3. You will receive a Bitcoin transaction with the leftover balance of the channel.

Developers

  1. clone this project

  2. clone eclair and checkout the android branch.

    Follow the steps here to build the eclair-core library.

  3. Open the Eclair Mobile project with Android studio. You should now be able to install it on your phone/on an emulator.

eclair-mobile's People

Contributors

dpad85 avatar kevkevinpal avatar pm47 avatar prusnak avatar rodasmith avatar sstone avatar t-bast 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

eclair-mobile's Issues

Mainnet payments failed

I tried two LN payments to different merchants (blockstream store and hodlmoney) and both attempts failed.

Two screenshots of the payment request and the errors. It is reproducible:

image 2018-04-06 20 53 45

image 2018-04-06 20 53 49

Any idea what is causing this?

[Mobile] Channel closed unexpectedly on app launch

Issue by fresheneesz
Thursday Dec 21, 2017 at 17:16 GMT
Originally opened as ACINQ/eclair#313


I opened eclair just now and then went to my home screen without doing anything in the app. I then got a notification that my channel had begun closing uncooperatively from my side (details say the close is "local"). It's disconcerting that my channel could close automatically without me initiating it.

Also the notification doesn't do anything when i tap it - I'd expect it to bring me into the app at least.

[mobile] Confusing label on channels list

Issue by patestevao
Wednesday Apr 04, 2018 at 09:49 GMT
Originally opened as ACINQ/eclair#534


Hi, I'm using Eclair 0.2.5 in Android 5.1.

I think the label “With…” that appears on top of each open channel doesn’t deliver a clear message.
Should it display the alias or the address of the node or am I missing something?

Thanks!

Here is a screenshot:
eclair_21

open channel fees too high

First of all, congratulations to all the team!!! today is another great day with this release 😄

I have 218047 sats (14,82 USD) on my eclair btc address, when I try to open a channel it only let me to open the channel with 118000 sats (8 USD), in other case I get a "not enough funds" message, why is that? this means that the chain opening channel fee it's going to be of 6+ USD?

screenshot_20180404-163625

Destination that is reachable for LND is unreachable for Eclair going through that LND node

While trying to send funds to Community Jar (https://www.coinpanic.com/Lightning/CommunityJar) using the Eclair mainnet mobile wallet, I get the error message "payment fee was below the minimum required by the channel". My Eclair wallet only has one channel, which is open to my LND node. My LND node is able to find a route to, and pay, Community Jar with no issue (when I initiate the payment on the LND node, rather than with Eclair). Ideally Eclair should be able to find a route in every case that LND is able to.

Note that my LND node is well-connected to the network, with large channel sizes, and their is a large channel that I opened from my Eclair Wallet to my LND node. The problem almost certainly lies with Eclair's route selection and not with LND.

How to repro:

  1. Using the Eclair android wallet, open a channel with my LND node (don't have any other channels open): 03aeca3b52e028b68c67d01a62eede65df55bda5cd04e4341ac42688d25fc151cd@73.239.115.62:9735
  2. Generate invoice with CommunityJar (https://www.coinpanic.com/Lightning/CommunityJar).
  3. Attempt to pay invoice using Eclair.

Example CommunityJar invoice:
lnbc10040n1pdvd060pp5jms0h3vc79lngfqvej3mzndcxm3tpj6nlugp4d2jhn3fuekwsdmsdp9gdhkjmnsv9hxjceqgdhk6mt4de5hg7fqffshycqzys4jf4kayrkeptzv8rfl874jxfcwy3npq24hynrz0lg8jk8sgcz5n9nr29y649ecz82vgztf9wh3w47fksgvr2cm5hel6r2530le9kadcp4268nt

8 decimals BTC precision

when you use bitcoin units, it should be nice to be able to show 8 decimals.
i can only select 2 , 5 or "exact"
for instance, sometimes it only shows 7 which is a bit confusing.

bech32 nodeid QR

Shouldn't QR code with a bech32 encoded nodeid work?
It seems only the hex version works.
Would be much smaller QR codes.

After upgrading 0.2.5 app fails to work

Issue by capricornuscipher
Wednesday Mar 21, 2018 at 19:20 GMT
Originally opened as ACINQ/eclair#502


Upon opening a message is shown "Seed is unreadable. Aborting." No user suggestion is given and no UI is available. After swipe exit and/or Force Stop from Android: still behaves visually the same with same error message.

Feature request: max amount option when choosing new channel amount

I put a few millibits into the wallet intending to put it all (less fees) into a channel, but there is no easy way to put the max amount into a channel.

Something like your "Empty wallet" option when sending an on chain transaction is what I'm looking for, but for opening a channel.

[Feature] show balance in Fiat

There is an option to select Fiat currency in settings, but there is no fiat balance shown anywhere in the TX history.

I would expect to see the fiat equivalent of total balance at least.

Cloning project in Android Studio

Anybody here manage to do it? I cloned the wallet project, cloned eclair, checked out android branch, built core with maven but I'm having issues with gradle.build where it can't resolve "compile 'fr.acinq.eclair:eclair-core_2.11:0.2-android-SNAPSHOT' ". I have a feeling it's because eclair core needs to be in a folder within the project but I have no idea where to put it.

HELP PLZ!!!!

How can I request a lightning payment? I want to receive from a friend, I have no idea how to create a request. I'm already connected to ACINQ's lightning network.

CLOSING (uncooperative) forever

Set up a channel from eclair to my lnd node
For unknown reason eclair decided to uncooperatively close it shortly after (about 90 minutes or so).
Never actually used that or any other channel.
the channel has now been stuck in acinq as closing for days. Restarted app, phone and even cleared cache on it.
The closing TX is well confirmed
My three other channels are in state normal
https://www.robtex.com/lightning/channel/568042891378425856

Channel closed and funds not refunded.

channel closed uncooperatively. App became inaccessible when attempting to check refund next day. App was uninstalled, reinstalled and recovered and funds still missing.

Remote Failure

https://imgur.com/a/CQMb4

Opened a channel with ACINQ and can't pay for anything on block stream store. Is this just a routing issue where ACINQ does not have an open channel to the LN store?

Channel forcibly closed and funds not returned

Funding tx was 731c6e69338f4cc58b595227cf5f2b8bf631e645a197445bcc7bf4f57f5098fb, I forcibly closed the channel id fb98507ff5f47bcc5b4497a145e631f68b2b5fcf2752598bc54c8f33696e1c73 and the state in the wallet is still CLOSING.

More than 144 blocks have passed since the funding transaction, shouldn't the funds have been returned?

Transaction wan't broadcast from android wallet - epic confusion ensues.

Issue by lambohunter
Saturday Jan 27, 2018 at 19:47 GMT
Originally opened as ACINQ/eclair#413


Using Android wallet...

Transaction ID: f5a84164895d418fe6a76a86224b046c855b92fc00fefff26ed31fdcb4c03e08

  1. Attempted to open a channel. funding

  2. Funding transaction never got broadcast.

  3. Stuck with waiting for confirmation for days.

  4. Tried to close channel.
    closing

  5. Cannot close channel because funding transaction was never broadcast.

Might also be helpful to allow in app reporting of errors.

show correct date of transaction history

it would make more sense to show the correct date of a transaction under "transaction history" rather than when the wallet first saw it.
(noticed since i upgraded to new app, and it found all old transactions and listed them as they just happened)

Incorrect balance displayed

I seem to have been able to get two records for closing a single channel. I initially attempted to close the channel, when checking the resulting transaction id does not exist as far as the blockchain explorers are concerned. I chose to re-broadcast, the second closing has worked. However, both closing amount's have been included in my total btc balance, so it is now higher than the total btc I have sent to the wallet.

I have also now attempted to open a new channel, this transaction id cannot be found in the network. So i have two 0 conf transactions in my history, one channel close, and one open, both where the txid's cannot be found.

Update: Force closed the channel, it is now sitting in a CLOSING (Uncooperative) state, the txid not existing in the network, can't open another channel to the same node due to no duplicate channels being allowed

not enough funds

I just downloaded from google play store main net realse.
First i sent 73 800 sat but i figure out that 100 000sat is min to open a channel.
So i sent another 72 000 sat.
Now i have both with 6+ conf but cant open a channel.
Wallet is saying "not enough funds" no matter if i try to open 140k or 100k sat channel.

Any idea why?

Attempting a cooperative close results in an unwanted force close if there are pending HTLCs

I opened a node between my Eclair mobile wallet and my (well-connected) LND node, and made multiple Lightning transactions using my Eclair wallet (through my LND node). One of these transactions got stuck in the pending state for three days at which point I decided to attempt to cooperatively close the channel (for unrelated reasons). At this point the cooperative close failed due to still having a pending HTLC (LND detected this and decided to error out). Upon the cooperative close failing, a force close was initiated without prompting me.

So there appear to be four issues here:

  1. It is unclear to the user why the HTLC went pending rather than resolving almost immediately.
  2. It doesn't seem like a standard HTLC should stay pending indefinitely (or at least for 3 days).
  3. It doesn't seem like a cooperative close should be attempted at all if there are still pending HTLCs (both from a user experience perspective and so as to not rely on the peer to do validation).
  4. It doesn't seem like a force close should be initiated without the user's permission.

Note I made several similar payments to the payment that triggered the pending HTLC that all went through, and unfortunately I don't have error logs from when it first went into pending. I assume that some random network condition or similar triggered the problem.

Here's the invoice associated with the pending htlc:

{
"destination": "03a9d79bcfab7feb0f24c3cd61a57f0f00de2225b6d31bce0bc4564efa3b1b5aaf",
"payment_hash": "96e0fbc598f17f34240ccca3b14db836e2b0cb53ff101ab552bce29e66ce8377",
"num_satoshis": "1004",
"timestamp": "1522974543",
"expiry": "3600",
"description": "Coinpanic Community Jar",
"description_hash": "",
"fallback_addr": "",
"cltv_expiry": "144"
}

Is there any other information I can provide here?

Channel closing (uncooperative) - no progress in status even after 144 blocks

So I set up a channel with the SLEEPYARK node to buy some blockstream stickers. However, since my funding amount was a bit less, I couldn't make a purchase tx so I decided to close the channel. On clicking close, the status changed to closing (uncooperative) and there has been no progress since then. I closed the channel over 2 days back so it is well past 144 blocks. However, there is no on chain tx to return my funds and I see the status as closing (uncooperative). Any ideas what could be the issue?
screenshot_20180408-094843

Long delay at "Reading the invoice, please wait"

Issue by Xeroxcoin
Tuesday Jan 02, 2018 at 17:58 GMT
Originally opened as ACINQ/eclair#356


I'm using Eclair on Android, trying to pay starblocks. I received a recent upgrade that required wiping the app data, which went fine. Now when I scan the invoice there is a > 1 minute pause before I have the option to pay. If I press the Back button, Android says Eclair is unresponsive. Behind the dialog ("Reading the invoice, please wait"), I see the transaction list clear, then repopulate. Finally the dialog appears to press "Pay". After pressing that, I get "Reading the invoice" again. Finally I get to press "Pay" again and it goes through. Not sure how else to help with debugging this.

Payment attempt failed

Attempt to make payment to blockstream store using random eclair node. Get the following message

screenshot_20180407-143041

Attempted a few times and also unchecked uncapped fees preference.

Each time I try I keep getting the same node offline. Basically no route to host?

Also I attempted to open a channel directly to the blockstream store and the channel never successfully opened, and I forced closed it and my funds are in limbo. (Not concerned about that I read the FAQ ;) )

Suggestions are welcome to complete this transactions.

Wallet could not find a path to the payee

I've been playing with the eclair wallet (mainnet) and have opened a channel to bitrefill. I have tested payments to bitrefill and it works. However I cannot pay yalls.org even $0.01 because of a payment routing error. How can this be the case when they are directly connected with a relatively large capacity channel?

The error I'm getting specifically is: "The wallet could not find a path to the payee"

Does anyone know what's going on here? I know I can try my luck and open more channels, but it seems like there is no reason why such a simple route would fail.

[mobile] Send button is too subtle

Issue by patestevao
Wednesday Apr 04, 2018 at 09:52 GMT
Originally opened as ACINQ/eclair#535


Hi, I'm using Eclair 0.2.5 in Android 5.1.

Here is something I noticed.
The send button is one of the most important in this interface and it doesn’t call enough attention to itself.

Maybe the button could be in a brighter background color and/or slightly larger.
Let me know if I can help with some ideas and sketches on this.
Thanks!

For now, here is a screenshot with the button on the screen:
eclair_18

Funded a channel - txid for funding does not exists, causes issue when trying to close "channel"

I have funded a channel, after not seeing any confirmations for quite a while, i tried to look at the funding tx on the main chain (or mempool) and it does not exist. Now the problem is that I cannot seem to close this "channel" and I doubt it will auto close after 144 blocks as there is no actual transaction.

Using rebroadcast did not make any difference, not sure what would happen when trying to rebroadcast a create channel tx when that same channel is now attempting to close itself.

Feels like if this could be resolved then the process would actually be straight forward, I reckon my app has now gotten itself into a weird state, should I re-install and use the previous seed?

More options for fees - i.e "Cap at 20%"

Issue by CubicEarth
Friday Apr 06, 2018 at 15:15 GMT
Originally opened as ACINQ/eclair#548


The only option currently is to cap fees at 3%, or to not enforce at all.
I am sure that a more sophisticated approach will be developed in time, but until then, it would be good to have an option to allow fees to be up to some higher amount, while still caping them.

Is it possible that an uncapped fee could be more than 100%? For the next few months, people are going to be making many small 'test' payments to try out this new system. And fees are often higher than 3%. But an 'uncapped' fee seems like it opens up an attack vector.

So perhaps a second toggle button to allow fees up to 20%, or a simple slider to select a fee level?

Testnet wallet: "Seed is unreadable. Aborting"

I had the testnet wallet installed and already used it a few times. Just wanted to buy a blockachino again but now I get this message:
image

Tried:

  • start with old data -> as above
  • uninstall / reinstall testnet wallet -> same
  • delete app-data and app-cache, and uninstall / reinstall testnet wallet -> same

In the meantime I have the prodnetwallet also installed - might there be an overlap of the data storage?

Testnet wallet: v0.2.5

[mobile] Show total funds value in fiat currency

Issue by patestevao
Wednesday Apr 04, 2018 at 09:34 GMT
Originally opened as ACINQ/eclair#533


Hi, thank you for your work on this; I liked what I saw so far.
I've just finished an UX research on Lightning Network (including wallets) and found some possible improvements on Eclair's interface.

In this issue, the specific problem I'd like to discuss is that the total amount of funds in the wallet (displayed on top of every page) could be shown in fiat currency, as well.

If valid, I think this should be in a smaller font and placed next to or below the total value. And if there are any questions or I can help on the discussion, just ping me here please.

I will file other separated issues so things don't get too cluttered here; I hope they are helpful. :)
If somebody would like to see more about the research, here is the Eclair part specifically..
Thanks!

Edit: By the way, I was using Eclair 0.2.5 in an Android version 5.1.

Here is a screen lacking the value in fiat currency as an example:
eclair_1

[Mobile] possible regression, no longer a suggested app to handle LN payment requests

Issue by ric2b
Wednesday Mar 21, 2018 at 13:43 GMT
Originally opened as ACINQ/eclair#494


Hello,

The new version of eclair no longer shows up as an option on my Android 7.1 phone when I tap an LN payment request link (I tested yalls and starblocks). Instead it now directly opens the lightning-wallet (what a confusing name, by the way, they should change it).

Previous versions of eclair used to show up as one of the two options for opening LN payment requests.

WAIT_FOR_FUNDING_LOCKED after 16+ confirmations

I thought only 3 confs were needed to start using the LN channel. After a couple hours and 16+ confirmations I still see this waiting for funding notification.

My other channel with ACINQ opened just fine after 3 confs. This is a channel with the Blockstream Store.

Tx ID: 3661c86357a84301a76b0c7a552b7a581d150887b4b0ddf443eed419cef51bce

https://imgur.com/a/hj5tx

Not Enough Balance to Send Bitcoin Mainnet Lightning Payment . . . But There Is

I have a problem with the program saying there are not enough funds while there appear to be enough funds, too.

I get the message: "None of your Lightning channels has enough balance to send this payment.", when trying to pay a 1,090 microbitcoins (1.09 millibitcoins) BitRefill.com order. I have a channel with BitRefill's node that has 1,122 microbitcoins (1.122 millibitcoins) in "NORMAL" status. #confused

BIP39 Seed: verify checksum on restore

While migrating from the old prod-wallet to the new one, I managed to make a typo while restoring the masterseed. The wallet did not show any error or warnings, but created a new empty wallet.

BIP39 specifies:

Although using a mnemonic not generated by the algorithm described in "Generating the mnemonic" section is possible, this is not advised and software must compute a checksum for the mnemonic sentence using a wordlist and issue a warning if it is invalid

Also: was 24 words chosen deliberately? seems a bit overkill for a mobile wallet. Even "Trezor T" now defaults to 12 words ("The Model T generates a unique, 12-word long recovery seed for you")

Add receive capability over "trusted" channel

Perhaps there are other blockers preventing receiving in eclair-wallet, but I know a big one is lack of Watchtowers.

It occurred to me that a workaround in the interim would be to allow designating a channel as "trusted", i.e. a connection to a full Lightning node that you control. Similar to how many SPV wallets allow you to connect to a trusted full node, this would allow safe receiving as your own node will never cheat you.

Is this something that would be considered in the interim? It would make demoing Lightning a much easier experience.

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.