Zap 0.7.0 Beta

## Release notes This release contains several new features including support for lnd v0.10, keysend, multi part payment, payment probes, Tor and more. As usual, this release also contains a number of optimisations and bug fixes. ## LND 0.10 We now ship with [LND 0.10.2-beta]( which delivers many improvements and enhancements. We continue to support connecting to external LND nodes that are running prior versions of LND, though we encourage all users to update their nodes. ## Payment Probes We now use payment probes to get an accurate fee estimate prior to making a lightning payment. This is done by sending a payment with an unknown payment hash and inspecting the returned failure. If it originates from the final destination, the route is deemed to be valid. Following through with the real payment after a successful probe is very likely to succeed and by using the route returned from the probe we can be sure of the exact route and associated fees that will be used. ## Multi Part Payments (MPP) If we are unable to send your payment using a single route we will try to leverage MPP - splitting the payment over multiple parts - in order to improve chances of delivery. ## Spontaneous Payments (keysend) We now support keysend payments. This lets you send Lightning payments without the need for the recipient to provide you with a bolt11 invoice first. All you need is the pubkey of the node you want to send to. Using keysend you can send any amount of sats, any number of times to the same address (within your channel limits). The node pubkey acts like like a static reusable receive address. ## gRPC over Tor In this release, we have added support for connecting to your LND node's gRPC interface over [Tor]( (via a `.onion` address) which enables you to connect to and control your node without exposing it to the internet. ## LNURL Channel As part of our continued rollout of the [LNURL protocol]( we've added support for [`lnurl-channel`]( which makes it possible to use services like [LNBIG]( or [Bitrefill's Thor]( to request inbound liquidity without worrying about manually opening channels. This adds to our existing support for [`lnurl-withdraw`]( which enables you to quickly and easily withdraw funds to your wallet without needing to create an invoice. ## Hold Invoices Hodl Invoices allow you to have manual control over the invoice settlement process - once payment has been received you can choose to accept or cancel back the payment. ### Bug Fixes * **app:** ensure app restarts during autoupdate ([8346450](, closes [#3198]( * **app:** whitelist domain ([0de7709]( * **backup:** set user-agent to `Chrome` for google oauth ([d9945a5](, closes [#3342]( * **grpc:** use grpc error details if available ([c278f3a]( * **lnd:** correctly set initWallet props on restore ([22b92e9]( * **lnd:** do not pass paymentHash when sending via paymentRequest ([5fcc25c]( * **lnd:** ensure fee limit is correctly set ([762c137]( * **lnd:** fetch dest pubkey from payment htlcs list ([dc41030]( * **lnd:** handle early walletunlocker disconnect ([245c28b]( * **lnd:** increasing default fee limit to 5000 sats ([49cea65]( * **lnd:** properly handle node updates from chan graph sub ([b7a84ff]( * **lnd:** support probing in lnd v0.10.0 ([32bd2be]( * **lnd:** use default cltv expired if not set in invoice ([ecc22a8]( * **lnd:** use route hints from invoice when probing ([f46938b]( * **lnurl:** show notification on success / error ([e68c8f5]( * **ui:** add zero amount payment request error ([#3385]( ([6759be0](, closes [#1510]( * **ui:** always display crypto amounts as positive numbers ([a203b15]( * **ui:** correct wording for channel open/close error ([626ba70]( * **ui:** correctly calculate chan activity ([1330a4b]( * **ui:** disable address field overflow on amount form ([bfafa3c]( * **ui:** display correct fee from probing ([64a006a]( * **ui:** display destination when sending keysend payments ([5572048]( * **ui:** display total amount as unknown when no route found ([7422b56]( * **ui:** do not show qr code for keysend payments ([2e11bc5]( * **ui:** ensure destination is displayed during sending payments ([e2d5e7e]( * **ui:** ensure loading messages display correctly ([ad6e5f5]( * **ui:** ensure skip backup checkbox is clickable ([f25cc02]( * **ui:** ensure wallet settings initial values correct ([53389d0]( * **ui:** improve keysend receive message ([2130610]( * **ui:** improve lnurl success/error handling ([5debf94]( * **ui:** map send payment error codes to messages ([1974463]( * **ui:** only show crypto selector when total is known ([0e30609]( * **ui:** pay form next button disabled state ([aa6eb53](, closes [#3176]( * **ui:** reload existing activity history on refresh ([7029ba1](, closes [#3174]( * **ui:** remove channel from closing list on error ([9cc1999]( * **ui:** show liquidity warning on all but address step ([ec6fa2a]( * **ui:** trim host from keysend pubkey ([010661c]( * **ui:** update default window width to 950px ([8ca422b]( * **ui:** update transaction on stream update ([4a10e8e]( * **ui:** show correct heading for received payment in modal ([df0b4bb](, closes [#539]( * **ui:** update pay form fiat value on initial set ([26dc40c]( * **wallet:** convert bip21 amount to active crypto unit ([1bc4d68]( * **wallet:** correct system notification for received transaction ([70430ef]( * **wallet:** correctly sort channels by activity ([7c35b2a]( * **wallet:** ensure activity items get date header rows ([be47b82]( * **wallet:** ensure fee displayed for slow confirmations ([dc69302]( * **wallet:** ensure received transactions show in filter ([09860e2]( * **wallet:** ensure transactions update on confirm ([fbe93c6]( * **wallet:** handle fee as string in TransactionFeeInput ([a188b94]( * **wallet:** log error if an activity paginator fails to load ([75c928d]( * **wallet:** no desktop notification for channel open or close ([1e6165f]( * **wallet:** only generate new address after use ([4fd938d]( * **wallet:** prevent double count of unconfirmed force close balance ([d06657a]( * **wallet:** properly decode invoice in getTag ([2f49899]( * **wallet:** store payment hash of sending payment ([d3d5e23]( * **wallet:** use uppercase for bolt11 qrcodes ([9a9ab14]( * **wallet:** ensure activity items correctly sorted ([e96a8d5]( * **wallet:** shorten timeout for lnurl processing notifications ([340d170]( * **wallet:** handle amounts as bignumber ([fa894ba]( * **wallet:** send correct payment request ([a5d7d5c]( * **wallet:** set payment probe fee limit to 100000 sats ([ed23de0]( * **wallet:** display transaction as unconfirmed if confs less than min finality ([ffffd88]( * **wallet:** error handling for failed invoice payments ([8685ea6]( * **wallet:** strip unsupported props from db wallet entries ([d058956]( * **wallet:** update help page link ([1f480b6]( ### Features * **lnd:** enable keysend for neutrino clients ([954b77c]( * **lnd:** increase one time send/receive limits for mpp ([3ee7c73]( * **lnd:** support multi part payments ([88b4bcc]( * **lnd:** support route probing for keysend payments ([e4d9438]( * **lnd:** update lnd to 0.10.2-beta ([42eff0c]( * **lnd:** use new Router api for sending payments ([13a2ed7]( * **lnd:** use payment probing to get fee estimate ([5c3aabd]( * **lnd:** attempt sendToRoute for first payment attempt ([1bce811]( * **ui:** ability to edit fee limit from pay summary ([62c4e3d]( * **ui:** add node pubkey into send address field label ([8d356c5]( * **ui:** add note to request summary for keysend payments ([1690f91]( * **ui:** display destination address in payment modal ([9a1d93a]( * **ui:** display fee limit when fee is unknown ([88a9bf2]( * **ui:** display htlc summary in payment modal ([5a4a02e]( * **ui:** display loading message when starting tor proxy ([cd490d6]( * **ui:** show multiple node uris if there are more than one ([8a418d9](, closes [#3150]( * **ui:** show tooltip when fee limit is unknown ([8410149](, closes [#2676]( * **ui:** show total as spinner whilst probing ([002c676]( * **ui:** show transactions paid to self as sent to self ([e498612]( * **ui:** add tooltip to the Home.Autopilot section describing its function ([7342a60]( * **ui:** display paylock icon for private channels ([ef16141]( * **walet:** expose payment config via preferences page ([9e4d1e4]( * **wallet:** add ability to cancel invoices ([669e716]( * **wallet:** add ability to create hold invoices ([248d86c]( * **wallet:** add ability to settle invoices ([fe2cbad]( * **wallet:** add support for lnurl-channel ([bad6762]( * **wallet:** basic keysend support ([8621eb6](, closes [#3333]( [#3338]( * **wallet:** lnurl-auth support ([d9e281a]( * **wallet:** handle fees using msats ([01ac7fc]( * **wallet:** show exact fee when possible ([d202202]( * **wallet:** support connecting to .onion domains ([a99482b]( * **wallet:** use pagination when fetching payments ([d8106ec]( * **wallet:** parse bip21 uris in pay address form ([8e56936]( ### Changelog The full list of changes since 0.6.2-beta can be found here: ## Verifying the Release Please refer to [our documentation]( for [instructions on how to verify the release](