firefly icon indicating copy to clipboard operation
firefly copied to clipboard

[Bug]: Deep links failing on Arch Linux distribution

Open Tsangares opened this issue 3 years ago • 21 comments

Issue description

When I use the deep link,

iota://wallet/send/iota1qpqlpvhmjwxwh06qwsgznrx48j8rkjewxdj6ytcxfz9pctdwdg48wjflpay/?amount=1000000&unit=i

Firefly opens if it is not open, ignoring the request. Once Firefly is open, pasting the url into firefox, with xdg-open installed, a new instance of Firefly opens with a blank window, then automatically closes.

Screenshot from 2022-01-15 01-01-52

Expected behaviour

Firefly should open the deep link to populate the receiving address and additionally the amount.

Actual behaviour

Firefly opens a blank window then crashes.

Can the issue reliably be reproduced?

Yes

Steps to reproduce the issue

  1. Install arch linux
  2. Install xdg-org, firefox and iota-firefly-wallet from the AUR
  3. Open firefox and firely
  4. Paste a deep link into the url and hit enter, iota://wallet/send/iota1qpqlpvhmjwxwh06qwsgznrx48j8rkjewxdj6ytcxfz9pctdwdg48wjflpay/?amount=1000000&unit=i
  5. Witness

Diagnostics

Firefly v1.3.2
Language: en
Currency: USD
Node selection: Automatic
Platform: linux
Platform Version: 5.15.13-arch1-1
Platform Architecture: x64
CPU Count: 8
Total Memory: 64098.8 MB
Free Memory: 51430.6 MB

Errors

Sat, 15 Jan 2022 07:43:14 GMT
ClientError: `error sending request for url (https://mainnet-node.tanglebay.com/api/v1/info): operation timed out`

Duplicate declaration

  • [X] I have searched the issues tracker this issue and there is none

Code of Conduct

  • [X] I agree to follow this project's Code of Conduct

Tsangares avatar Jan 15 '22 09:01 Tsangares

Does this also happen if you are logged in?

Tuditi avatar Jul 06 '22 13:07 Tuditi

Hi, is this still an issue?

begonaalvarezd avatar Sep 20 '23 13:09 begonaalvarezd

Let me try right now

Tsangares avatar Sep 23 '23 22:09 Tsangares

Yes still same issues with version 1.7.2 on IOTA firefly. Let me update and try again.

Tsangares avatar Sep 23 '23 22:09 Tsangares

Is this a Linux issue? Does it work on windows? When I made this bug report I talked on discord and it seemed like the Deep Link was still in experimental.

Tsangares avatar Sep 23 '23 22:09 Tsangares

Still an issue with 1.7.4

Tsangares avatar Sep 23 '23 22:09 Tsangares

Found this in my logs:

Sep 23 15:36:32 taxi firefly-desktop.desktop[21555]: Sentry Logger [Log]: Integration installed: InboundFilters
Sep 23 15:36:32 taxi firefly-desktop.desktop[21555]: Sentry Logger [Log]: Integration installed: FunctionToString
Sep 23 15:36:32 taxi firefly-desktop.desktop[21555]: Sentry Logger [Log]: Integration installed: Console
Sep 23 15:36:32 taxi firefly-desktop.desktop[21555]: Sentry Logger [Log]: Integration installed: Http
Sep 23 15:36:32 taxi firefly-desktop.desktop[21555]: Sentry Logger [Log]: Integration installed: OnUnhandledRejection
Sep 23 15:36:32 taxi firefly-desktop.desktop[21555]: Sentry Logger [Log]: Integration installed: LinkedErrors
Sep 23 15:36:32 taxi firefly-desktop.desktop[21555]: Sentry Logger [Log]: Integration installed: OnUncaughtException
Sep 23 15:36:32 taxi firefly-desktop.desktop[21555]: Sentry Logger [Log]: Integration installed: Electron
Sep 23 15:36:32 taxi firefly-desktop.desktop[21555]: Sentry Logger [Log]: Found 0 minidumps
Sep 23 15:36:32 taxi firefly-desktop.desktop[21603]: ATTENTION: default value of option mesa_glthread overridden by environment.
Sep 23 15:36:32 taxi firefly-desktop.desktop[21555]: 15:36:32.699 › Checking for update

Tsangares avatar Sep 23 '23 22:09 Tsangares

Does this also happen if you are logged in?

Yes I have actually only tried this when logged in.

Tsangares avatar Sep 23 '23 22:09 Tsangares

We will release a new version very soon which comes with many improvements. I cant reproduce your issue and I use Linux too. One thing to note is that in order to be able to have deep links working in Linux with an electron app you must integrate the appImage in your system, you cant simply run it, it must be installed/integrated. I use an app image launcher for linux to manage appimage installations. To me it also opens a blank app but then it closes and the deeplink is followed in the main firefly window

begonaalvarezd avatar Oct 01 '23 06:10 begonaalvarezd

Hey @Tsangares :v: We have released the new version (v2.0.2 at time of writing this), do you mind giving it a try and letting us know :smile: Thank you :pray:

marc2332 avatar Oct 10 '23 15:10 marc2332

First I am on Wayland and I ran iota-firefly-wallet after updating and I get:

[5810:1025/154411.621241:FATAL:spawn_subprocess.cc(221)] posix_spawn: Permission denied (13)

And the wallet will not even open.

Whereas shimmer-firefly-wallet after updating is working. I am now going to switch over to x-org and test it.

Tsangares avatar Oct 25 '23 22:10 Tsangares

Same issue on x-org which is now new. Hmm

Tsangares avatar Oct 25 '23 22:10 Tsangares

Okay this is a downstream issue with the package build file: https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=iota-firefly-wallet

The maintainer is unpacking the app image into /opt/ and it seems to be having some issues. When I run simply the .appimage it then does work. So I will follow through with that downstream.

Now with the wallet running let me test the deep link.

Tsangares avatar Oct 25 '23 22:10 Tsangares

Okay so I followed this: https://iotaledger.github.io/firefly/specifications/deep-links/

Looks like the URI structure has changed so I made a new link.

When I run:

xdg-open "firefly://wallet/sendForm?address=iota1qr3auzheptauuaxjqru2de5f07calp5jvtryul9huhjjjkm2833ejpvrvry&amount=10"

I simply get the error:

gio: firefly://wallet/sendForm?address=iota1qr3auzheptauuaxjqru2de5f07calp5jvtryul9huhjjjkm2833ejpvrvry&amount=10: The specified location is not supported

But let me go fix the downstream package with the maintainer and get back to you.

Tsangares avatar Oct 25 '23 23:10 Tsangares

Okay, I fixed downstream now they will update that and I have firefly working properly but still the deep link is showing an error but now I got one that I can investigate.

$ xdg-open "iota://wallet/sendForm?address=iota1qr3auzheptauuaxjqru2de5f07calp5jvtryul9huhjjjkm2833ejpvrvry&amount=10"
Sentry Logger [Log]: Integration installed: InboundFilters
Sentry Logger [Log]: Integration installed: FunctionToString
Sentry Logger [Log]: Integration installed: Console
Sentry Logger [Log]: Integration installed: Http
Sentry Logger [Log]: Integration installed: OnUnhandledRejection
Sentry Logger [Log]: Integration installed: LinkedErrors
Sentry Logger [Log]: Integration installed: OnUncaughtException
Sentry Logger [Log]: Integration installed: Electron
Sentry Logger [Log]: Found 0 minidumps
16:22:04.921 › APPIMAGE env is not defined, current application is not an AppImage

This is probably because the package maintiner opted to run:

"${srcdir}/firefly-iota-desktop-$pkgver.AppImage" --appimage-extract > /dev/null 2>&1

Extracting the app image contents in the PKGBUILD on Line 25

Let me fiddle with this for a moment.

Tsangares avatar Oct 25 '23 23:10 Tsangares

Okay, so here is what I found. First, when you export the APPIMAGE then the APPIMAGE is not a environment variable which I think is being called somewhere in your code.

I am using fish shell so I tried both:

set -x APPIMAGE /opt/iota-firefly-wallet/desktop 

and

set -x APPIMAGE $HOME/.cache/yay/iota-firefly-wallet/firefly-iota-desktop-2.0.2.AppImage

And both of those remove the env error....

When I run

xdg-open "iota://wallet/sendForm?address=iota1qr3auzheptauuaxjqru2de5f07calp5jvtryul9huhjjjkm2833ejpvrvry&amount=10"

I get the output:

Sentry Logger [Log]: Integration installed: FunctionToString
Sentry Logger [Log]: Integration installed: Console
Sentry Logger [Log]: Integration installed: Http
Sentry Logger [Log]: Integration installed: OnUnhandledRejection
Sentry Logger [Log]: Integration installed: LinkedErrors
Sentry Logger [Log]: Integration installed: OnUncaughtException
Sentry Logger [Log]: Integration installed: Electron
Sentry Logger [Log]: Found 0 minidumps
16:30:29.926 › Checking for update

But I am still getting the same issue where electron opens a windowed instance of firefly then closes. Let me switch back over to wayland and test it again.

Tsangares avatar Oct 25 '23 23:10 Tsangares

Ugh, my mistake I used iota:// instead of firefly:// But when I use firefly:// I just get the error:

xdg-open "firefly://wallet/sendForm?address=iota1qr3auzheptauuaxjqru2de5f07calp5jvtryul9huhjjjkm2833ejpvrvry&amount=10"
gio: firefly://wallet/sendForm?address=iota1qr3auzheptauuaxjqru2de5f07calp5jvtryul9huhjjjkm2833ejpvrvry&amount=10: The specified location is not supported

.... Let me check the default applications and see if I need to configure something to get firefly:// to work.

Also, switching to wayland didn't change the situation.

Here is a reference that might help you all: https://wiki.archlinux.org/title/default_applications

Same issue with handlr:

$ handlr open "firefly://wallet/sendForm?address=iota1qr3auzheptauuaxjqru2de5f07calp5jvtryul9huhjjjkm2833ejpvrvry&amount=10"
no handlers found for 'x-scheme-handler/firefly'

Tsangares avatar Oct 25 '23 23:10 Tsangares

Actually when I open /opt/iota-firefly-wallet/desktop.desktop or /usr/share/applications/firefly-desktop.desktop Is says the following:

$ cat /usr/share/applications/firefly-desktop.desktop 
[Desktop Entry]
Name=IOTA Firefly Wallet
Comment=Desktop wallet for IOTA
Exec=/usr/bin/iota-firefly-wallet
Icon=firefly-desktop
Terminal=false
Type=Application
Categories=Office;Utility;Application;Finance;
MimeType=x-scheme-handler/iota;

So the scheme is actually still iota://...

But I do notice that the shimmer wallet has the mimetype firefly://

So I am manually setting the handler (which may have been stuck in installation from previous installs):

handlr set x-scheme-handler/iota firefly-desktop.desktop
x-scheme-handler/iota         │ firefly-desktop.desktop

With no avail:

xdg-open "iota://wallet/sendForm?address=iota1qr3auzheptauuaxjqru2de5f07calp5jvtryul9huhjjjkm2833ejpvrvry&amount=10"
Sentry Logger [Log]: Integration installed: InboundFilters
Sentry Logger [Log]: Integration installed: FunctionToString
Sentry Logger [Log]: Integration installed: Console
Sentry Logger [Log]: Integration installed: Http
Sentry Logger [Log]: Integration installed: OnUnhandledRejection
Sentry Logger [Log]: Integration installed: LinkedErrors
Sentry Logger [Log]: Integration installed: OnUncaughtException
Sentry Logger [Log]: Integration installed: Electron
Sentry Logger [Log]: Found 0 minidumps
16:52:49.232 › Checking for update

Now I am going to set shimmer to firefly:

handlr set x-scheme-handler/firefly shimmer-firefly-desktop.desktop

Now running:

handlr open "firefly://wallet/sendForm?address=iota1qrhaunheptauuaxyqrn2de5f07calp5jvtryul9huhjjjkm2833ejpvrjry&amount=10"

Did seem to work: image

It does open up a firefly window and close then the first firefly window has the transaction confirmation.

Now let me go back to iota using handlr instead of xdg-open:

handlr open "iota://wallet/sendForm?address=iota1qqqfkcwm7th3szl6w7yaeaynvdulkpnz4r9pq3qrhkgv8ac2p5gwgz38s5s&amount=10"

image

That seems to work now for IOTA and Shimmer. Cool

They totally work with handlr where I am manually setting it. But when I use firefox or xdg-open it is not working because the mime-type is probably not setup correctly.

So let me try running sudo update-desktop-database and restarting.

Tsangares avatar Oct 26 '23 00:10 Tsangares

Okay, after restarting I had to manually set APPIMAGE environmental variable path directly to /opt/iota-firefly-wallet/desktop, again because it is running as an unpacked appimage.

And it is still not working with firefox or xdg-open so I don't know why the mimetype is not being registered with:

/usr/share/applications/firefly-desktop.desktop

But I gotta do other stuff rn so I will come back to this.

The problem is that even though the .desktop exists and is in the right location, its not being loaded into the proper way for XDG mimetypes to work even though it looks like it is there:

$ cat /usr/share/applications/mimeinfo.cache | grep iota
x-scheme-handler/iota=firefly-desktop.desktop;shimmer-firefly-desktop.desktop;

AAND the env of APPIMAGE should not be used ideally.

Tsangares avatar Oct 26 '23 00:10 Tsangares

We released a new beta improving the deeplinks for Linux, we would appreciate the help testing out https://github.com/iotaledger/firefly/releases/tag/desktop-shimmer-2.1.10-beta-1

begonaalvarezd avatar Nov 27 '23 17:11 begonaalvarezd

Okay I will test it out soon.

Tsangares avatar Jan 12 '24 23:01 Tsangares

Closing due to inactivity, and cant replicate, please reopen if necessary 🌷

begonaalvarezd avatar Apr 01 '24 14:04 begonaalvarezd