firefly
firefly copied to clipboard
[Bug]: Deep links failing on Arch Linux distribution
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.

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
- Install arch linux
- Install
xdg-org,firefoxandiota-firefly-walletfrom the AUR - Open firefox and firely
- Paste a deep link into the url and hit enter,
iota://wallet/send/iota1qpqlpvhmjwxwh06qwsgznrx48j8rkjewxdj6ytcxfz9pctdwdg48wjflpay/?amount=1000000&unit=i - 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
Does this also happen if you are logged in?
Hi, is this still an issue?
Let me try right now
Yes still same issues with version 1.7.2 on IOTA firefly. Let me update and try again.
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.
Still an issue with 1.7.4
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
Does this also happen if you are logged in?
Yes I have actually only tried this when logged in.
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
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:
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.
Same issue on x-org which is now new. Hmm
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.
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.
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.
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.
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'
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:
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"
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.
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.
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
Okay I will test it out soon.
Closing due to inactivity, and cant replicate, please reopen if necessary 🌷