Awesome. I will test on Mac M1 and Linux tomorrow.
Iām not sure how multi-address is supposed to work.
The widget displays a list of all generated addresses but it seems you were trying to display a subset of the addresses?
I didnāt understand the meaning of the # of 10 indicator at the bottom, since iterating from 1 to 10 doesnāt really change the widget.
When I reached 11, the widget re-loaded and created 10 new addresses for me?
Edit: Obviously, I didnāt understand what the 1 of 10 meant. If a user wants to add 6 addresses, they increment to 6 then press Add addresses. Is this clear to everyone else?
The + sign can still be pressed/activated when the user reaches 10, maybe thatās intended?
Maybe we need to have the integer in the āAdd addressesā button, such that it clearly tells the user they are about to āAdd 6 addressesā.
Iāve tested the Windows and Linux releases.
Both work as expected, though I still encountered an issue with Linux.
Display Driver Error
I had forgotten about this issue, but the Linux Release build crashes often since Iām using nouveau display drivers instead of nvidia.
Error: syrius: ../nouveau/pushbuf.c:730: nouveau_pushbuf_data: Assertion `kref' failed.
If it impacts enough users, Iāll try to find a workaround, though I may not be successful.
Despite all that, the Debug version of the app runs well-ish (it stutters a bit) while the Release build is snappy.
Iāve made several changes to the cicd branch and will submit a PR with a detailed summary after some MacOS testing with 0x.
I just setup on a clean Ubuntu 22.04 VM and have 2 errors.
(syrius:4410): Gtk-WARNING **: 07:21:29.297: Error loading icon from file 'linux/resources/app_icon.png':
Failed to open file ālinux/resources/app_icon.pngā: No such file or directory
Starting znnd.
current time is 2022-12-30 07:21:33
version: v0.0.4-libznn
git-commit-hash: 7e9c440f7e5e368efbade77ca900efa1219af0d4
znnd will use at most 4 cpu-cores
WARN[12-30|07:21:33] Config file missing: you can provide a data path using the --data flag or provide a config file using the --config flag module=zenon configPath=/home/x3639/.znn/config.json
And when I try to create a json export of the keyfile, I get this error.
[ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: [FileSystemException: Directory listing failed, path = '/home/x3639/.pub-cache/' (OS Error: No such file or directory, errno = 2), #0 _Directory._fillWithDirectoryListing (dart:io-patch/directory_patch.dart:42)
#1 _Directory.listSync (dart:io/directory_impl.dart:243)
#2 initArgon2.<anonymous closure> (package:znn_sdk_dart/src/argon2/argon2.dart:30)
#3 Argon2FfiFlutter._loadLib (package:argon2_ffi_base/src/argon2_ffi_impl.dart:160)
#4 new Argon2FfiFlutter (package:argon2_ffi_base/src/argon2_ffi_impl.dart:92)
#5 initArgon2 (package:znn_sdk_dart/src/argon2/argon2.dart:15)
#6 KeyFile._encryptEntropy (package:znn_sdk_dart/src/wallet/keyfile.dart:95)
<asynchronous suspension>
#7 saveKeyStoreFunction (package:znn_sdk_dart/src/wallet/manager.dart:22)
<asynchronous suspension>
]
#0 KeyStoreManager.saveKeyStore.<anonymous closure> (package:znn_sdk_dart/src/wallet/manager.dart:54)
#1 _RootZone.runUnaryGuarded (dart:async/zone.dart:1586)
#2 _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:339)
#3 _BufferingStreamSubscription._add (dart:async/stream_impl.dart:271)
#4 _SyncStreamControllerDispatch._sendData (dart:async/stream_controller.dart:774)
#5 _StreamController._add (dart:async/stream_controller.dart:648)
#6 _StreamController.add (dart:async/stream_controller.dart:596)
#7 _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:192)
This is how to recreate the error. I was able to replicate it as sudo
also.
I see two warnings:
- failed to open a .png file
- config file missing
For #1, Iāve opted to remove that check until we have a proper mechanism to display the icon. My repo also has Github Actions so you may try the build here.
I donāt believe #2 is an issue; the wallet experience recovers gracefully when the config file is not initially present.
As for the KeyStore issue, Iāve submitted a PR to aliencoderās znn_sdk_dart repo.
Just wanted to let you know that I tried to install the new release on my Mac M1 and experienced the same issue with not being able to export the .json key. I stopped testing at that point.
@0x3639 Iāll check everything youāve reported again and try to fix all the issues.
@sol_sanctum I responded to your PR on Github. I think itās better to verify if the .pub-cache
directory exists instead of throwing an error.
The problem with the missing icon on Linux is that it doesnāt find it at this path linux/resources/app_icon.png
. Iāll try to fix it by using a relative path.
I opted to remove the configuration until we have a proper .desktop file in place.
I donāt think weāll be able to devise a universal Linux solution without package management, though we may be able to fix the window icon, as per this post.
The main reasons for this:
- ELF files donāt natively support icons
- .desktop files donāt typically support relative paths
Unfortunately that post doesnāt work, neither this one.
The only way to get it showing properly is to have a dynamic reference to the assetās directory at runtime.
Also I think by properly packaging the app weāll be able to solve the issue without using the gtk_window_set_icon
method.
Took a look at the workflow file. I think we will want to add testing before creating a release.
Do you mean QA testing, code coverage or both?
Iāve noticed that some Zenon releases have also an additional alpha
tag appended - we can do the same.
We can use this action for syrius
and znn_sdk_dart
.
For go-zenon
Iāve added govulncheck-action
, but now itās (Commented out govulncheck Ā· zenon-network/go-zenon@344e080 Ā· GitHub).
The codebase has unit tests and weāll probably want to continue to add tests. I just wouldnāt want to create downloaded releases through a pipeline unless the pipeline included running tests.
I agree, Iāll add unit-testing. Do you see something else worth integrating into the pipeline? I want to finish the cicd
pipeline and open PRs as soon as possible.
Added action status badges in the README and updated syrius_library_updater such that it wonāt fail if changes are not present.