Syrius Improvements

@sol sending transactions with an optional message seems to work.

The UI doesn’t enforce any limitation on the maximum data length. So when entering a very large message the the API creates an exception based on two conditions.

"JSON-RPC error -32000: account-block data field is too big"
When sending an account-block with data larger than 16384 characters

"JSON-RPC error -32000: forbidden parameter"
When the account doesn’t have the required plasma.

// MaxDataLength defines limit of account-block data to 16Kb
MaxDataLength = 1024 * 16

Would be nice if the UI prevents large messages. Maybe even limiting the max allowed data size of 16Kb?

1 Like

I’ve created a new branch for the Dart SDK with distinct fields for chainId and netId.

From my research both chainId and netId fields should be equal and different from mainnet (Alphanet) where both are hardcoded to 1.

Maybe we’ll have only chainId in the SDKs as netId === chainId and netId is a variable bounded to the node. What do you think?

2 Likes

Thanks for the feedback! I agree, we can leverage client-side validation to avoid RPC errors.

I’ve updated my add_message_field branch:

  • enforces a MaxDataLength limit for the message field
  • displays a notification error if PoW Plasma max limit is reached for a transaction

Users will no longer see those JSON-RPC errors.

2 Likes

@sol I’ve combined your dynamic chainid with my previous Dart SDK commit and also displayed additional info in the Node Management tab.

1 Like

That’s awesome! I wouldn’t merge this in to syrius until the Dart SDK is officially updated.
What does the tooltip display when the node is added but offline? Example: wss://peers.zenon.network:443

Will you be submitting a PR for your SDK changes?

1 Like

Quick update

I’d appreciate anyone with a Mac to give the new build process a try. Please provide feedback if you run into any issues.

Check out @0x3639’s thread to setup the MacOS dev tools.

Instructions
1. git clone -b linux_poc https://github.com/Sol-Sanctum/syrius.git
2. cd syrius
3. flutter build macos --release
4. brew install create-dmg
5. cd macos
6. ./generateDmgRelease.sh
   - or ./generateDmgRelease-new.sh
7. Navigate to /path-to-syrius/build/macos/ and double-click the .dmg

Future syrius update process could involve package managers, but at least now we have an end-to-end process for devs to produce Release builds for each OS.

Windows - chocolatey??
Mac - brew
Linux - brew or snap

or

1. Press the Update button in syrius
2. download latest Release file from git
3. shutdown the app
4. replace files and re-launch syrius
??

Note: the Linux build does not have an icon for the ELF file. We’ll almost certainly need to support a package manager like snap in order to have that.

2 Likes

Yes, I can handle that, thank you!

I think we should revive this thread.

I’m working with a friend on some improvements for the Syrius wallet and wanted to ask for some feedback regarding the following features:

  • Tray manager :white_check_mark:
  • Desktop notifications :white_check_mark:
  • Launch on startup :negative_squared_cross_mark:
  • Deep linking :negative_squared_cross_mark:

Are those available in a release or branch? Is the tray manager code working?

They are available here: cicd branch. Still work in progress.

Are you asking us to test this or give an opinion on the features?

  • Tray manager is a great idea. Would be nice to add
  • Desktop notifications would also be great to add
  • Launch on start up is good so long as we can disable the feature
  • What is “Deep linking”?

From google: " Deep links are a type of link that send users directly to an app instead of a website or a store . They are used to send users straight to specific in-app locations, saving users the time and energy locating a particular page themselves – significantly improving the user experience."

This is really useful, think of a button in deeznnuts.com that says ‘delegate now’ and when you click it syrius opens up in the pillar tab and already scrolled down to your pillar row. #magic

6 Likes

wow. First I’ve ever heard of this concept. Should have googled myself. This seems like a useful feature for sure. Might be something @mehowbrainz should be aware of.

1 Like

I told him about the post. I’m curious to see how this deeplinking approach differs from Vilkris’ URI PoC.

He’s already aware of this feature. But let’s not push Syrius tracking capabilities into this discussion :grinning:

2 Likes

First impressions of the tray icon change:

  • Works on Windows, will be testing on Linux and MacOS soon
  • Tray icon options work as expected
  • Some users may find the notifications annoying.
    • Can we please have a toggle to disable notifications?

I haven’t seen this one on the list yet, but at what stage do we want to update the package dependencies used by s y r i u s? I imagine some might have known vulnerabilities and/or bugs. They are getting old and outdated and I know a couple of UI packages require a rewrite because of major changes in the interface. On the other hand, updating the packages can also introduce new bugs.

I would like to step up for this one and make an attempt to map out all the differences.

2 Likes

I’ve updated the majority of packages and it runs just fine. We can update the remaining packages after we submit the v0.0.6 PR and it’s merged in production.

Nice, good to know. I’m not sure, but I recall a major update of the fl_chart package caused some compatibility issues.

I tested the latest syrius build for mac. Everything works great. I was able to send / receive tokens, generate plasma, fuse plasma for myself and a 3rd party address. Only issue is the attached. The bottom is cut off. I will unfuse the plasma tomorrow and report back. Great work guys.

Screenshot_2023-01-18_at_8.06.28_PM

2 Likes