Git Product home page Git Product logo

breezmobile's Introduction

breez

In order to build breez you will need to install gomobile and go 1.19.x. If you install go from homebrew, you will have to ensure the GOPATH environment variable is set yourself.

Prepare your environment

git clone https://github.com/breez/breez.git
go install golang.org/x/mobile/cmd/gomobile
go install golang.org/x/mobile/cmd/gobind
export PATH=$PATH:$GOPATH/bin
gomobile init

Building breez for Android

You need to install the ndk as part of your sdk Tools. If you have a separate ndk installed then make sure to set the ANDROID_NDK_HOME environment variable to your ndk install location.

export ANDROID_HOME=<your android sdk directory>

Or in case you want to use a direct ndk path

export ANDROID_NDK_HOME=<your android ndk directory>

If you are using NDK 24+, install NDK r19 and point ANDROID_NDK_HOME to it's folder due to gomobile incompatibility. Alternatively, you can add -androidapi 19 to gomobile command in build script.

If the library will be run on an emulator target, add -ldflags=-extldflags=-Wl,-soname,libgojni.so to gomobile command in build script.

Then you are ready to run the build:

./build.sh

The file breez.aar will be built in build/android/

Building breez for iOS

./build-ios.sh

The bindings.framework will be built in build/ios/

breezmobile's People

Contributors

ademar111190 avatar alwin-stockinger avatar arbadacarbayk avatar bitcoinuser avatar caloon avatar chr1cr avatar daveajones avatar erdemyerebasmaz avatar fiatjaf avatar free-freethinker avatar icota avatar jssdwt avatar kingonly avatar marnixcroes avatar merryoscar avatar nochiel avatar omahs avatar peteclubseven avatar porcupinenick avatar reyml avatar rkfg avatar roeierez avatar sahilsingh0808 avatar sarthak13gupta avatar sunboyy avatar thedavidcoen avatar tlindi avatar trigger67 avatar ubbabeck avatar yaslama 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

breezmobile's Issues

Feature: configure unit BTC or sats

Would be great if it was possible to choose unit for Balance and invoices:
BTC or sats

Most people would be easier with sats imo as it is pretty easy to make mistakes with so many decimal zeros.

Further, it would be an easy fix for #142

Can't install on my Samsung Galaxy S7

I joined the beta program on Google Play, but I can't find the app on my device's Play store, and when viewing the app on the Play store's website, I can select a device to install the app to, but only my Samsung Galaxy S9 is selectable, but not my S7.

I found this other issue that sounds related: #83
But in my case the S7 does have a 64bit SoC.

Is there any other reason why I'm not able to install Breez on my device? Maybe because it's Android 6?

In any case, this should be documented somewhere on the website or the GitHub repo. Like some note that says that 64bit etc. are required.

Failed to retrieve address from Breez server

I just downloaded the tester version from the Play store. It synced up and a new inbound channel was opened successfully. But going to "Add funds" results in an error. Logs indicate rate limiting?

screenshot_20190210-155209

2019-02-10 21:44:41.993 [INF] BRUI: getBreezClientConnection - after Ping; err: rpc error: code = ResourceExhausted desc = /breez.Information/Ping is rejected by ratelimit, please retry later.
2019-02-10 21:44:41.993 [INF] BRUI: getFundManager - connection state = READY
2019-02-10 21:44:42.153 [ERR] BRUI: Error in AddFundInit: rpc error: code = ResourceExhausted desc = /breez.FundManager/AddFundInit is rejected by ratelimit, please retry later.
2019-02-10 21:44:43.675 [INF] BRUI: getBreezClientConnection - before Ping;
2019-02-10 21:44:43.675 [INF] BRUI: getBreezClientConnection - before Ping;
2019-02-10 21:44:43.834 [INF] BRUI: getBreezClientConnection - after Ping; err: rpc error: code = ResourceExhausted desc = /breez.Information/Ping is rejected by ratelimit, please retry later.
2019-02-10 21:44:43.834 [INF] BRUI: getFundManager - connection state = READY
2019-02-10 21:44:43.838 [INF] BRUI: getBreezClientConnection - after Ping; err: rpc error: code = ResourceExhausted desc = /breez.Information/Ping is rejected by ratelimit, please retry later.
2019-02-10 21:44:43.838 [INF] BRUI: getFundManager - connection state = READY
2019-02-10 21:44:43.979 [ERR] BRUI: Error in updateChannelPolicy: rpc error: code = ResourceExhausted desc = /breez.FundManager/UpdateChannelPolicy is rejected by ratelimit, please retry later.
2019-02-10 21:44:43.983 [ERR] BRUI: Error in updateChannelPolicy: rpc error: code = ResourceExhausted desc = /breez.FundManager/UpdateChannelPolicy is rejected by ratelimit, please retry later.
2019-02-10 21:44:45.029 [INF] BRUI: getBreezClientConnection - before Ping;
2019-02-10 21:44:45.187 [INF] BRUI: getBreezClientConnection - after Ping; err: rpc error: code = ResourceExhausted desc = /breez.Information/Ping is rejected by ratelimit, please retry later.
2019-02-10 21:44:45.187 [INF] BRUI: getFundManager - connection state = READY
2019-02-10 21:44:45.339 [ERR] BRUI: Error in updateChannelPolicy: rpc error: code = ResourceExhausted desc = /breez.FundManager/UpdateChannelPolicy is rejected by ratelimit, please retry later.
2019-02-10 21:44:46.011 [INF] DISC: Broadcasting batch of 14 new announcements
2019-02-10 21:44:46.103 [INF] BRUI: getBreezClientConnection - before Ping;
2019-02-10 21:44:46.103 [INF] BRUI: getBreezClientConnection - before Ping;
2019-02-10 21:44:46.267 [INF] BRUI: getBreezClientConnection - after Ping; err: rpc error: code = ResourceExhausted desc = /breez.Information/Ping is rejected by ratelimit, please retry later.
2019-02-10 21:44:46.267 [INF] BRUI: getFundManager - connection state = READY
2019-02-10 21:44:46.267 [INF] BRUI: getBreezClientConnection - after Ping; err: rpc error: code = ResourceExhausted desc = /breez.Information/Ping is rejected by ratelimit, please retry later.
2019-02-10 21:44:46.268 [INF] BRUI: getFundManager - connection state = READY
2019-02-10 21:44:46.419 [ERR] BRUI: Error in updateChannelPolicy: rpc error: code = ResourceExhausted desc = /breez.FundManager/UpdateChannelPolicy is rejected by ratelimit, please retry later.
2019-02-10 21:44:46.419 [ERR] BRUI: Error in updateChannelPolicy: rpc error: code = ResourceExhausted desc = /breez.FundManager/UpdateChannelPolicy is rejected by ratelimit, please retry later.```

Suggestion of how Breez sidebar is opened

Hi,

When you swipe the finger to open the breez sidebar, the user need to go to the beginning of left part of window. On telegram for example is different, works in almost any part of the window.
I prefer the telegram way because it's easier to open the menu using only one hand.

Receive limit in "Create an Invoice" should account for any pending deposits

  1. Start with a new installation of Breez Mobile.
  2. Choose to "Add Funds" by depositing to a Bitcoin address. Note that the displayed deposit limit is over 900 ksat. Send a deposit of 500 ksat.
  3. Before the deposit transaction confirms, choose to "Create an Invoice." Note that the displayed receive limit is over 900 ksat. Create an invoice for 500 ksat.
  4. Pay the invoice from another Lightning wallet.
  5. When the deposit eventually confirms some time later, there will be insufficient remaining incoming channel capacity for Breez to pay the funds into the user's Lightning wallet, thus raising this warning message:

    On-chain Transaction
    Breez was not able to transfer the funds to your balance since the executed transaction was above the specified limit. You will be able to redeem your funds after block NNNNNN (~48 hours).

Suggested improvement is to account for any pending deposit in the receive limit shown on the "Create an Invoice" screen. In the above example, the displayed receive limit in step 3 should have had the pending 500-ksat deposit deducted from it.

I added funds through Bitcoin on-chain but i don't see them

Hi,

I have Android 9, last Breez version from Google Market

I clicked "Add funds" , got Segwit address from Breez and sent on-chain bitcoins there. The Breez noticed me about receiving and after about confirmed. But balance showed me only few satoshies from channel. In Developer tab i run walletbalance and see zeroes.

What happens? How can i restore keys for example? I don't have the seed because you don't show it to users.

When camera has not been authorized, there is no message explaining why tapping invoice pay fails

under IOS 12

when access to camera has not been authorized, tapping invoice pay opens a new window that closes immediately.

iow, paying an invoice is impossible.

Fix 1: give a chance to paste an invoice and fail only if user tries to scan

Fix 2: there should be a message recalling to authorize access to camera

Fix 3: Message to recall and scan button enabled only when access is authorized

Iphone 5 users can't see or copy the preimage

I'm testing breez and there's something that's a problem on iPhone 5, on payment detail modal the last item, the preimage can't be visualized cause there's no more space on the screen.

I suggest to make it scroll down to let the user copy or share the preimage, it's very important to have access to it, in some sites you need the proof of payment.

IMG_0021

Suggestion: be able to pay onchain invoices

Hi,

Is it a good a idea have something like this on Breez? a Breez user scan a Bitcoin onchain qrcode, so Breez receive the lightning funds from the user and send the same onchain amount to the service the user is trying to pay.
Of course Breez could deduct the mining fee from the user lightning balance too.

Thanks.

Feature: do not show balance or history

For privacy reasons, I think the UI should not start with showing balance and history.

Reasoning, the main use case for lightning is paying or receiving money. In both cases, balance and history are not needed. And showing them right away is equivalent to a physical wallet that would be transparent, showing how much it contains.

Suggestion: when opening the app, there should just be three buttons:
Pay, Receive, and Balance.
Tapping the latter would be required before showing the balance.
Again, on the balance screen the history should not be shown by default, giving some information to a quick reader. History could also be a tap away. (or configurable)

Is there a way to create a new backup?

So I cant find the backup option in the wallet, I guess its not there because I've already created it. I'd like to create a new one but there is no option it seems. Am I doing something wrong or is there no option for it?

Remove support for 0 sat invoices

0 sat invoices aren't safe.

On lnd irc recently:

For invoices with the amount field set to 0, isn't it possible for an intermediate node to do the following:

• assume the next hop is the final hop, send an UpdateAddHTLC with a lower amount than specified in the source's forwarding instructions
• If this fails with UnknownPaymentHash, assume that this is either not a "donation" invoice or that this node is not the final hop
• If this doesn't fail, they can claim the incoming htlc at a substantial profit
• In the failure case, just send the original UpdateAddHTLC received from the previous hop and call it a day

I've disabled support for them on bitrefill

Suggestion: pending invoices should appear on transaction list

Hi,

1- I think when the user create an invoice and close the popup before the payment is received, this pending invoice should appear on transaction list.

2- I think when the user create an invoice and breez app is closed, when the user open again breez, this pending invoice should appear on transaction list.

3- If the user create an invoice and this invoice never be paid, I think this pending invoice should appear on transaction list.

Suggestion: developers option on Breez menu should be hidden as standard

Hi,

Suggestion: developes option on Breez menu should be hidden as standard and only appear if the user tap seven times on any part of menu.
Something like what happens on Android OS to activate developers option.

No reason to have developers option on Breez for newbie users. I suggested Breez to a friend and he asked me a lot of things about it.

Backup to iCloud

If would be great to backup to iCloud instead on only Google. The message you get when connecting to Google Drive is not so encouraging :-)

french decimal comma refused when creating an invoice

Under IOS 12 in French.

While creating an invoice, when trying to input the BTC amount, the numeric keypad includes the comma as a decimal sign (instead of the dot) which gets refused by the app.

IOW, impossible to create an invoice.

FIX: the validation of amount should be localized.

Pay button missing when using "Connect to pay"

After connecting through "Connect to pay" with a friend and setting "Sat Amount" and "Note", there is no pay-button to proceed with the payment, although a connection is established (both have green dots). My friend had this button, and everything worked fine, but I don't have that button. The affected device is Doogee S60.

Installation without play store

I am only using fdroid as a source of apps. Is there currently a way to install the wallet without building it by myself or using google play store? Is there a way to get the apk?

Added onchain funds, "failed to add funds", confusing UX

Hi, so this is my experience (and possible bugs?) with adding funds to Breez.

I sent less than 900k satoshi to the bech32 deposit address generated by the wallet. The transaction got confirmed quickly but I got the following error:

Failed to add funds: rpc error: code = Unknown
desc = Error in payment response: unable to find a path to destination

When checking the dev console, I didn't see anything under walletbalance nor channelbalance, there was no open channel on my side, nor a pending one. The funds seemed gone.

However, listchaintxns showed me the confirmed transaction and listchannels showed me a channel with a remote balance (for a while). Then it showed up under closedchannels (?) as REMOTE_FORCE_CLOSE.

15 minutes later the error message was gone and it was replaced by one saying that a secure channel is opening.

Then pendingchannels started showing the new channel with remote balance and it was eventually open and 90% of funds were transferred to the local side of the channel.

Not sure if there is a bug in the whole funding process but regardless, I think the UX isn't very clear about what's going on. I understand why there's no balance showing in the UI while the channel is opening, but I think there should at least be a pending transaction displayed in the tx list so the user has at least a slight idea that "something is happening". For a moment I thought my funds were gone especially with this scary looking error message:

IMG_0588

Unexpected funds window

Hi,

I had channel closed and I after the funds was confirmed I see a window of Unexpected funds.
Suggestion:
1- Add an option to send all available funds to external wallet.
2- Add a button to use all available funds to open the channel again.

photo5134419367424010233

Cannot synchronize with own btcd server

Hi

I am trying to define my own node in the settings in order to synchronize the blockchain. I run btcd version 0.12.0-beta with the following configuration:

[Application Options]
rpclisten=:8334
listen=:8336

I then define the setting "Bitcoin Node (BIP 157)" under the network settings within Breez as follows: 10.10.10.41:8336. In the logs I find repeatedly the following error messages. (Around every 2 seconds).

2019-09-01 12:27:35.183 [DBG] CHAIN: Sending version (agent /btcwire:0.5.0/neutrino:0.0.4-beta/, pver 70013, block 592753) to 10.10.10.41:8336 (outbound)
2019-09-01 12:27:35.455 [DBG] CHAIN: Received version (agent /btcwire:0.5.0/btcd:0.12.0/, pver 70013, block 592755) from 10.10.10.41:8336 (outbound)
2019-09-01 12:27:35.455 [DBG] CHAIN: Negotiated protocol version 70013 for peer 10.10.10.41:8336 (outbound)
2019-09-01 12:27:35.456 [DBG] CHAIN: Connected to 10.10.10.41:8336
2019-09-01 12:27:35.456 [INF] CHAIN: New valid peer 10.10.10.41:8336 (outbound) (/btcwire:0.5.0/btcd:0.12.0/)
2019-09-01 12:27:35.460 [INF] CHAIN: Syncing to block height 592755 from peer 10.10.10.41:8336
2019-09-01 12:27:35.460 [INF] CHAIN: Fetching set of headers from tip (height=592753) from peer 10.10.10.41:8336
2019-09-01 12:27:35.461 [DBG] CHAIN: New peer 10.10.10.41:8336 (outbound)
2019-09-01 12:27:35.461 [DBG] CHAIN: Received verack from 10.10.10.41:8336 (outbound)
2019-09-01 12:27:35.461 [DBG] CHAIN: Sending getaddr to 10.10.10.41:8336 (outbound)
2019-09-01 12:27:35.462 [DBG] CHAIN: Sending verack to 10.10.10.41:8336 (outbound)
2019-09-01 12:27:35.462 [DBG] CHAIN: Sending getheaders (locator 000000000000000000045b98b1e6c885efa575a46c0ca9bdc27233e2d1b2c6f9, stop 0000000000000000000000000000000000000000000000000000000000000000) to 10.10.10.41:8336 (outbound)
2019-09-01 12:27:35.669 [DBG] CHAIN: Getting filter checkpoints up to height=592753, hash=000000000000000000045b98b1e6c885efa575a46c0ca9bdc27233e2d1b2c6f9
2019-09-01 12:27:35.669 [DBG] CHAIN: Sending getcfcheckpt to 10.10.10.41:8336 (outbound)
2019-09-01 12:27:35.673 [INF] DAEM: Sync to chain interval Synced=false BlockHeight=592753
2019-09-01 12:27:35.768 [DBG] CHAIN: Received reject (cmd verack, code REJECT_MALFORMED, reason a verack message must follow version) from 10.10.10.41:8336 (outbound)
2019-09-01 12:27:35.769 [INF] CHAIN: Lost peer 10.10.10.41:8336 (outbound)
2019-09-01 12:27:35.769 [DBG] CHAIN: Removed peer 10.10.10.41:8336 (outbound)
2019-09-01 12:27:35.769 [WRN] CHAIN: No sync peer candidates available

Am I doing something wrong?
Thanks

"Warning" icon shouldn't be static when a process is happening

Hi,

Today I opened Breez and I saw on top right the warning button. So I clicked on it and it told me to backup again to Google Drive, so I did it. After I do it, the warning button still appear for some minutes, so I imagined that the process didn't work, so I clicked on it again.

Suggestion: When a process is "happening" the warning button shouldn't be static. Should be a spinning icon.

photo4929449552235309067

No fee error when sending all funds

Hi,

I tried to send all funds (keeping the 600 satoshis) from one breez wallet to another breez wallet, but appear an error of route not found. So I didn't know that the cause was because I didn't let some satoshis to fees.

When a channel is closed, balance goes to 0 with no messages of what happened.

Hi,

I had an experience of a closed channel on Breez and the balance went to 0 and no message showed of what happened. So I thought the funds was lost.

Suggestion:

1- Maybe show a message telling the user that the channel was closed and the funds was not lost, and ask if the users want to redeposit the funds to lightning again or withdraw the funds to an external wallet.

UI suggestion to Breez

Hi,

I think will be great if Breez implement this kind of interface:

1- Have three "tabs" on top (QRCODE SCANNER / MESSAGES / TRANSACTIONS). The QRCODE SCANNER should be like the CAMERA on whatsapp app, because it's easier and faster than have to go to menu and click pay invoice.

24617988-696x463

2- One app that Breez could use as example is CIRCLEPAY, they have two tabs (MESSSAGES / TRANSACTIONS)

photo5138982040031569934

3- I think Breez could have some other mechanism than the (connect to pay) function. I would like to see a mechanism that allows Breez users add others Breez users as contact on app, so that I shouldn't have to send a link to pay my friends. I don't know if is possible but will be great if each Breez user could have an ID and when shared with other Breez users, I could connect to them and send messages or satoshis.
I ask: is it possible to send people satoshis or messages even if the users are not online? maybe with tecnology like relay node. So the user receive a notification telling that he received a message or money and asking to open the app.

The way to add contacts could be by sharing a link or qrcode. One example is CIRCLEPAY:

photo5138982040031569935

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.