WalletConnect integration

I’ve thoroughly investigate the issue and found the problem:

The libznn, argon2 and libpow dynamic libraries are missing from the builds. This is due to merging code that was modifying the build scripts.

I will fix the issue and release a new version shortly.

5 Likes

0.0.6 on the official repo has all the files, but still crashes after splash screen when using embedded node.

The WalletConnect integration is ready for testing:

https://github.com/alienc0der/syrius/releases/tag/v0.0.6-alphanet

Navigate to WalletConnect tab and paste a WalletConnect v2 link. There are 2 tables, one for pairings and another one for sessions.

I’ve tested it with a WalletConnect client written in Dart:

The implementation consists of:

  1. The following methods (can be called by the dApp):
  • znn_sign: signs a message
  • znn_info: retrieve current address, node URL and chainId
  • znn_send: sends an accountBlock
  1. The following events (are pushed to the dApp in real time):
  • chainIdChange: notifies the dApp when the chainId is changed
  • addressChange: notifies the dApp when the address is changed

At the moment the you can pair Syrius with any dApp using the following methods:

  • Desktop QR scan (on-screen scanner)
  • WalletConnect v2 URI (you can enable clipboard watcher from SettingsWallet Options and it will automatically detect valid WalletConnect URIs)
  • Deep linking via syrius://
9 Likes

Are any of these features dependent on host OS?
If so, which ones?

Glad you’ve asked.

Supported on Windows, Linux, MacOS.

Supported on Windows, Linux, MacOS.

Supported on Windows, MacOS. No Linux support at the moment.

Upcoming implementation:

  • Desktop Camera scan (using the camera of the device)

Windows package was published 4 days ago
MacOS package was published 34 days ago

The implementation is now complete. Next week I’m planning to apply for AZ funding.

I’ve asked @0x3639 to create a new WalletConnect project (create an account on https://cloud.walletconnect.com/) and I’ll integrate the corresponding projectId into the build system.

We’ll need the following resources:

  • Name* The name to display in the explorer
  • Description* A short description explaining your dapp/wallet
  • Homepage* The website URL for your project
  • Logo* Square format is a requirement for our Explorer API. At least 500x500px PNG. Max 2MB.
  • Testing Instructions* Instructions on how to test your WalletConnect integration.
  • Short name* Displayed in the QRCode Modal → should be “syrius” or “Syrius”
  • Primary color Set button and UI colors
  • Secondary color Set button and UI colors

@ZNNAYIID can help us with the logo I guess

It would be nice to support URIs on all three OS.
Any plans to support Linux in the future?

I know, but the package I use doesn’t support Linux yet.

It is well maintained, so we can assume that they will add Linux support in the future.

Fortunately, most users are on Windows and MacOS. Linux users can use the on-screen scanner or the copy-paste URI method.

The camera method is also an “overkill” (I assume most users will use either the copy-paste or the on-screen QR scanner), but I’ll gladly add it to cover all possible scenarios.

2 Likes

Go ahead and try the WalletConnect integration now by connecting your Syrius desktop wallet to the demo dApp (you have to thank @dexter703):

Download Syrius v0.0.7
Check Demo dApp

Feel free and DM me any bugs related to the WalletConnect implementation. I will prepare the AZ application in the meantime.

5 Likes

A few questions/comments:

  • Why is the pairing added to the list before I’ve accepted it?
  • I tried to connect with the WalletConnect Link and with the QR Scanner but nothing happens in the webapp when I approve the session.
  • Should the yes no button colors be reversed?

Also, I’m getting this error on all the cards:

2 Likes

You don’t accept pairings, you accept session requests. This is how it works:

Step 1: Pairing
Step 2: Session request

You need to do the pairing first. You can see that the title of the dialog is “Approve session”. Also look at the Pairing List table from your screenshot and you’ll see that “Active” is still “No” until you accept the session request.

First, you’ll need to disconnect from the current session/pairing before reconnecting. What OS do you use?

I’ve used the standard dialog colors.

You’re probably connected to mainnet znnd. You’ll need @MoonBaZe’s znnd that has BigInt support. This Syrius version is shipped with BigInt support.

1 Like

I’m on Win10. Tried it with Brave and Firefox.

There is an edge case for the on-screen QR scanner when the QR code is white on black (dark mode) - it won’t work (only black on white QR codes can be processed). I’m already looking into it.

1 Like

Please check the latest release.

Update 1: The namespace was changed to mainnet: zenon:1. This is different from the chainId. You’ll be able to test the wallet on mainnet, testnet or devnet.

Update 2: The demo web app is now live with the mainnet namespace.

2 Likes

Tested on latest Safari release. Everything works flawlessly. Well done and thank you, this is a great tool for creating awesome UX’s

1 Like

I just tested with chrome + firefox concurrently. Everything works like a charm, wasn’t able to find any edge cases. Was testing with and without a ZNN balance.

1 Like

Any dev know if this is possible?

  1. An event is triggered in syrius app using WC (from let’s say a Safari/Chrome/Firefox session).
  2. The user approves the prompt for the event i.e. sending a transaction.
  3. Since the event trigger came from a Safari/Chrome/Firefox session, the syrius dapp puts into focus that last application which triggered the event? This way the user doesn’t have to switch between apps himself? (only an inconvenience really for users with 1 monitor who have to switch between apps, users with multiple monitors may not see this as a requirement since they’ll see their Safari/Chrome/Firefox session update on its own).

The same question for the reverse case, where if an event is triggered from a Safari/Chrome/Firefox session using some dapp, the syrius app is put into focus so the user automatically sees the prompt to approve/reject the tx.

In the approval prompt windows, a ZN logo is loaded. Where is that ZN logo sourced from? And can any dapp make their own image appear in the prompt?

@aliencoder @sumamu looks like when you use my upgraded node: wss://my.hc1node.com:35998 that is running go-zenon 0.0.6 with the latest RC of syrius you cannot see all the pillars and sentinels.

1 Like

I think it’s possible, but I need to implement it first.

Sourced from the dApp.