Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ledger support #41

Closed
KingGorrin opened this issue Jan 9, 2024 · 0 comments
Closed

Ledger support #41

KingGorrin opened this issue Jan 9, 2024 · 0 comments
Assignees
Labels
enhancement New feature or request

Comments

@KingGorrin
Copy link
Collaborator

KingGorrin commented Jan 9, 2024

With the Ledger support for the CLI finished, the Ledger implementation for Syrius can begin.

Much of the groundwork has already been done during the implementation of the CLI. The implementation for syrius is mainly concerned with UI rather than communication with the Ledger device. The later part has already been taken care of by the znn_sdk_dart, ledger_ffi_rs and znn_ledger_dart libraries.

The total work can be divided into the following parts.

Wallet abstraction

Replace the specific KeyFile wallet implementation with the wallet abstraction from znn_sdk_dart v0.0.6.

Backup wallet

Syrius has some features that are specific to the KeyFile wallet. These features are Backup and Dump Mnemonic. Obviously these features cannot be implemented when using a Ledger wallet. Therefor the features Backup and Dump Mnemonic will be disbaled in the UI when using a Ledger wallet.

Signing arbitrary message

The sign feature is not yet supported by the Ledger Embedded App. The features Sign and Sign File will not be disabled in the UI, but will raise an UnsupportedError exception by the underlying LedgerWalletAccount implementation and display the message "Signing an arbitrary message is not supported." to the user.

Hive DB

The Hive DB uses the private key as the cipherkey. This implementation needs to be harmonized to always use syrius's password as the cipherkey instead of the private key.

This implementation change has three implications:

  1. When the password is changed the Hive DB has to be copied and recreated with the new cipherkey.
  2. If the user forgets their password then the Hive DB can't be opened anymore and all history is lost and needs to be reset. Note: this behaviour is similair to the Ledger Live application.
  3. Need to add migration code to convert the existing privatekey cipherkeys into password cipherkeys.

Onboarding UI

The onboarding workflow when using a Ledger Wallet consists out of the following steps.

  1. Connect device
  2. Create password
  3. Node management
  4. Access wallet

The Hardware wallet workflow only differs on step 1 compared to the Create wallet workflow.

When the device is conencted in step 1 it will retrieve the primary address, ask for confirmation and initialize Syrius to the address.

Although not strictly necessary Syrius will use the address to check and validate the same Ledger device is used when signing transactions.

The Ledger device won't be necessary to open the wallet once the wallet is initialize. The device will only be required when a transaction needs to be signed.

A file will be used in similair way as the KeyFile to store the password together with an indication whether the wallet is a hardware or a KeyFile wallet.

Signing transaction UI

When using a Ledger wallet a dialog box will appear whenever Syrius needs to sign a transaction. The dialog box will handle all fault cases and guide the user to interact with the Ledger device in order to accept or reject the transaction.

Fault cases include:

  • Connect/unlock device
  • Open Zenon app
  • Invalid public key (does not match with initialized address)
  • Unexpected errors

Adding new address

When using a Ledger wallet adding a new address will ask for confirmation on the Ledger device.

@KingGorrin KingGorrin added the enhancement New feature or request label Jan 9, 2024
@KingGorrin KingGorrin self-assigned this Jan 9, 2024
@zenon-network zenon-network deleted a comment Jan 18, 2024
0x3639 pushed a commit to 0x3639/syrius that referenced this issue Jan 26, 2024
* Release v0.1.0 (zenon-network#34)

* Escape metadata string variables

* Fix linux metadata script

* Special char test ~!@#$%^&*()_+`-=:";'\|[]{}<>?,./

* Change metadata script with sed cmd

* Special char test ~`!@#$%^&*()_+-={}[]:;"'<>?,./|\

* Fix metadata ps script function on top

* Special char test ~`!@#$%^&*()_+-={}[]:;"'<>?,./|\

* Fix metadata scripts using raw strings

* Char test `~!@#$%^&*\t()_+-={}[]:";'|\<>?,./

* Fix metadata macos script

* Char test `~!@#$%^&*\t()_+-={}[]:";'|\<>?,./

* Char test `~!@#$%^&*\t()_+-={}[]:";'|\<>?,./

* Char test `~!@#$%^&*\t()_+-={}[]:";'|\<>?,./

* Char test `~!@#$%^&*\t()_+-={}[]:";'|\<>?,./

* Char test `~!@#$%^&*\t()_+-={}[]:";'|\<>?,./

* Fix pubspec

* Restore pubspec

* Fix failing build and release workflow (zenon-network#7)

The build and release workflow uses the latest Flutter SDK version that is available on the stable channel. The current codebase is not compatible with Flutter SDK versions 3.10.0 and newer, so the Flutter version must be constrained in the build and release workflow.

* [cicd] Release on tags

* [cicd] Fix tag releases lib-builder

* Updated native libraries

* [cicd] Make lib-builder only trigger manually

* [cicd] Fix SYRIUS_VERSION

* Updated native libraries

* Fix realtime statistics refresh (zenon-network#9)

* Implement P2P swaps for ZTS tokens (zenon-network#11)

* Set state when beneficiary address changes

* Fix realtime statistics refresh (2) (zenon-network#17)

* Adjust P2P swap expiration times (zenon-network#21)

* Update P2P swap card descriptions (zenon-network#20)

* Enable P2P swap UI on mainnet (zenon-network#22)

* Add warning banner onto the P2P swap page (zenon-network#23)

* Check for local time discrepancy when entering the P2P swap tab (zenon-network#25)

* Add hash back to auto-receive tx queue on all exceptions (zenon-network#24)

* Enable wakelock and disable auto-lock when incoming swap is active (zenon-network#19)

* Fix auto receive queue logic (zenon-network#27)

* Filter on all owned projects (zenon-network#10)

* Update README.md badges for hypercore-one

Signed-off-by: georgezgeorgez <92196048+georgezgeorgez@users.noreply.github.com>

* Make P2P swap related duration constants global and improve the expiration times configuration (zenon-network#29)

* Call setState when updating the swap completed text (zenon-network#30)

* Improve the logic of the auto unlock worker (zenon-network#32)

* Prevent the same hash from being added twice into the auto receive tx pool (zenon-network#31)

* Prevent the same hash from being added twice into the auto receive tx pool

* Add comment to addHash function

* Integrate changes from master (zenon-network#36)

* Feat: Add deep linking - syrius://

* Update main_app_container.dart

* fix: MacOS deep link support

* Feat: Add UI for Wallet Connect

* feat: Enable pairing with dApps through WC

* chore: Add namespaces and more listeners

* Replace bodyText1 with bodyLarge

* fix: Change WC initialization

* chore: Update gitignore

* chore: Update repo after gitignore update

* feat: Add method that activates the pairing

* feat: Add feature that captures a part of the screen and listens to the clipboard

* feat: Build table that shows the current pairings

* feat: Add feature to scan the QR code from the screen

* fix: Remove Expanded widget from Pairings card widget tree

* feat: Listens to values in the clipboard in order to check for WC URI

* fix: Make access check for MacOS before scanning screen

* feat: Redirect to WC tab when a WC URI is detected

* fix: Rebuild WC URI input field when another URI is detected in the clipboard

* Updated native libraries

* fix: Recreate the windows folder

* feat: Add code that opens the app through deep linking

* refactor: Change API call when activating a pairing

* feat: Add possibility to deactivate a WC pair

* feat: Redirect to WC tab when opening the wallet through WC deep linking

* fix: Error initializing the WC uri input field

* feat: Improve validating the WC URI

* feat: Add handler for znn_net_info WC method

* feat: Add handler for znn_sign WC method

* refactor: Create function for signing with the key pair from the wallet file

* feat: Add handler for WC znn_send method

* feat: Change name of znn_net_info method to znn_info and refactor sending a block

* fix: Restyle the Topic column from the WC pairings table

* feat: Send back an account block to the dApp after executing the znn_send method

* feat: Send events to the dApp when the address or chain id were changed

* feat: Send error to the dApp when user rejects the transfer

* fix: Change the error type send to the dApp

* feat: Add confirmation dialogs before making an action sent from the dApp

* refactor

* feat: Fix dialog when dApp wants to send a tx

* fix: Reset the URI value from the change notifier once it's used

* fix: Don't redirect to WC when detecting a WC URI if the wallet is locked

* fix: Show WC URI detected notification if the user is already on the WC tab

* feat: Throw an error when trying to trigger an action through WC and wallet is locked

* feat: Reconnect to websocket when WC connection falls

* feat: Add methods to retrieve the active sessions and all sessions

* feat: Get the reference for getting the ZNN SDK

* feat: Change position of the WC Connect button and disable it in case the input is not valid

* refactor: Delete unused method

* feat: Send notification when user cancels the QR scanning

* feat: Keep the WC URI in memory when wallet is locked

* feat: Update WalletConnectPairingCard with the needed permissions

* feat: Update files

* feat: Wrap up WC

* fix: Clean up

* feat: Get WC project id from environment variable

* fix: Rebuild 'Connect' button when the URI input field is also rebuild

* feat: Rebuild pubspec.lock

* feat: Change the source of the ZNN SDK

* build: referenced wallet-connect sdk branch

* build: added required macos entitlements

* refactor: small refactor

* docs: updated README

* cicd: retrieve WALLET_CONNECT_PROJECT_ID

* cicd: added environment name

* cicd: updated flutter-action

* cicd: set linux directory permissions

* feat: added BigInt support

* fix: referenced latest SDK changes

* fix: desktop window

* fix: windows desktop window

* fix: bigInt decimal conversions

* chore: updated dependencies

* fix: tokenSymbol widget

* fix: minor UI fixes

* cicd: hardcoded flutter version for compatibility

* feat: Change caching the active sessions for a pairing

* fix: allow any ZTS in znn_send

* feat: added WalletConnect events

* fix: remove relayClient reconnect

* feat: Add widget for pairing session data

* feat: Tweak WC pairing flow

* fix: Emit the session event (address and chain id events) to each dApp with an active pair and session

* fix: add windows directory

* chore: update walletconnect_flutter_v2 to v2.0.4

* fix: BigInt fixes

* feat: Regenerate windows folder

* feat: Regenerate windows folder

* feat: Refresh WC URI input field after pairing

* feat: error notification for auto-receive

* chore: updated walletconnect_flutter_v2 to v2.0.6

* feat: Build WC uri card

* feat: Build WC QR card

* feat: Build WC camera card

* feat: Put the pairings and sessions widgets side by side

* feat: Change button name

* fix: flutter windows directory

* chore: update uni_links_desktop to v0.1.6

* fix: windows deep link handling

* feat: added notification for incoming links

* feat: Refresh pairing and session lists when connecting to dApp

* feat: Align pairing and session list widgets on top of each other

* refactor: Add the getter pairings to the WalletConnectService class

* feat: replaced uni_links with app_links

* fix: Revert changes to the pairing list widget

* fix: Make InfiniteScrollBloc handle case when the data request is not paginated

* fix: Don't dispose the pairings and sessions bloc

* fix: Also refresh sessions list after deleting a pairing

* fix: Check for broken WC URI

* fix: added refresh for onPairingCreate

* fix: Redirect to WC tab when an WC URI is detected while the wallet is locked

* fix: Don't cache results for blocs that don't handle paginated results

* fix: Decode WC URI before parsing

* feat: Upgrade project to Dart 3.0.1

* feat: Delete button that disconnects the WC session with the dApp

* feat: Throw error if trying to send tx from dApp while wallet is locked

* cicd: upgraded flutter to v3.10.2

* chore: update texts

* feat: Update WC dependency to 2.0.8

* fix: parse WalletConnect URI

* fix: Dart lint warnings

* feat: bump version to v0.0.7

* fix: Windows deep link

* Updated native libraries

* feat: Hard code chainId to 1 for WC

* fix: WalletConnect improvements

* fix: When to mark last page of the infinite scroll bloc

* fix: dialog navigator pop

* fix: added marquee for token balance

* feat: logging to disk

* refactor: renamed votePillar to delegateToPillar

* fix: WalletConnect issues

* feat: programmatically display WalletConnect tab

* feat: added deep link actions

* feat: update defaultValue for kWcProjectId

* chore: updated walletconnect_flutter_v2 to v2.0.12

* chore: update dependencies

* feat: added camera QR scanning for MacOS

* fix: WakelockPlus Linux support

* fix: replaced logger with Logger

* chore: added descriptions and code cleanup

* fix: wallet_connect_tab_child  import

* fix: minimum amount to send

* fix: refresh WalletConnectSessionsBloc

* fix: remainingZnnBudget decimals

* fix: onSessionDelete refresh

* Integrate changes from master with P2P swaps

---------

Co-authored-by: mik3mast3rs <mik3mast3rs@proton.me>
Co-authored-by: Alien Coder <118136375+alienc0der@users.noreply.github.com>
Co-authored-by: Github Actions <GH-actions-ci@github.com>
Co-authored-by: Interstellar Traveler <140100591+interstellartraveler77@users.noreply.github.com>

* Verify the uniqueness of the hashlock when joining a swap (zenon-network#37)

* Add option to delete swap history (zenon-network#38)

* Remove P2P swap warning banner and add a warning modal (zenon-network#41)

* Add deposit recovery feature (zenon-network#40)

* Add width constraints to shown amounts and token symbols (zenon-network#39)

* Add width constraints to shown amounts and token symbols

* Decrease P2P swap list item's max text width to prevent overflow

* Refactor swap expiration warnings and increase counter HTLC expiration time (zenon-network#42)

Signed-off-by: vilkris <90819192+vilkris4@users.noreply.github.com>

* Fix workflow file issues caused by upstream changes (zenon-network#44)

* Remove bridge tab and related widgets (zenon-network#43)

* Add link to P2P swap tutorial (zenon-network#45)

* Update pubspec.lock to latest ZNN SDK version

* Update version numbers and Git commit date format (zenon-network#46)

* Fix the extractDecimals extension method to handle zero decimals (zenon-network#47)

* Fix ExchangeRateWidget's rate calculation (zenon-network#48)

* Add documentation for how P2P swaps work (zenon-network#49)

* Add documentation for how P2P swaps work

* Add a note of the used hash function to the documentation

* fix: enabled transfers for minimum zts amount

* Fix typo in bullet point card (zenon-network#53)

* Merge master branch into develop (zenon-network#54)

* Feat: Add deep linking - syrius://

* Update main_app_container.dart

* fix: MacOS deep link support

* Feat: Add UI for Wallet Connect

* feat: Enable pairing with dApps through WC

* chore: Add namespaces and more listeners

* Replace bodyText1 with bodyLarge

* fix: Change WC initialization

* chore: Update gitignore

* chore: Update repo after gitignore update

* feat: Add method that activates the pairing

* feat: Add feature that captures a part of the screen and listens to the clipboard

* feat: Build table that shows the current pairings

* feat: Add feature to scan the QR code from the screen

* fix: Remove Expanded widget from Pairings card widget tree

* feat: Listens to values in the clipboard in order to check for WC URI

* fix: Make access check for MacOS before scanning screen

* feat: Redirect to WC tab when a WC URI is detected

* fix: Rebuild WC URI input field when another URI is detected in the clipboard

* Updated native libraries

* fix: Recreate the windows folder

* feat: Add code that opens the app through deep linking

* refactor: Change API call when activating a pairing

* feat: Add possibility to deactivate a WC pair

* feat: Redirect to WC tab when opening the wallet through WC deep linking

* fix: Error initializing the WC uri input field

* feat: Improve validating the WC URI

* feat: Add handler for znn_net_info WC method

* feat: Add handler for znn_sign WC method

* refactor: Create function for signing with the key pair from the wallet file

* feat: Add handler for WC znn_send method

* feat: Change name of znn_net_info method to znn_info and refactor sending a block

* fix: Restyle the Topic column from the WC pairings table

* feat: Send back an account block to the dApp after executing the znn_send method

* feat: Send events to the dApp when the address or chain id were changed

* feat: Send error to the dApp when user rejects the transfer

* fix: Change the error type send to the dApp

* feat: Add confirmation dialogs before making an action sent from the dApp

* refactor

* feat: Fix dialog when dApp wants to send a tx

* fix: Reset the URI value from the change notifier once it's used

* fix: Don't redirect to WC when detecting a WC URI if the wallet is locked

* fix: Show WC URI detected notification if the user is already on the WC tab

* feat: Throw an error when trying to trigger an action through WC and wallet is locked

* feat: Reconnect to websocket when WC connection falls

* feat: Add methods to retrieve the active sessions and all sessions

* feat: Get the reference for getting the ZNN SDK

* feat: Change position of the WC Connect button and disable it in case the input is not valid

* refactor: Delete unused method

* feat: Send notification when user cancels the QR scanning

* feat: Keep the WC URI in memory when wallet is locked

* feat: Update WalletConnectPairingCard with the needed permissions

* feat: Update files

* feat: Wrap up WC

* fix: Clean up

* feat: Get WC project id from environment variable

* fix: Rebuild 'Connect' button when the URI input field is also rebuild

* feat: Rebuild pubspec.lock

* feat: Change the source of the ZNN SDK

* build: referenced wallet-connect sdk branch

* build: added required macos entitlements

* refactor: small refactor

* docs: updated README

* cicd: retrieve WALLET_CONNECT_PROJECT_ID

* cicd: added environment name

* cicd: updated flutter-action

* cicd: set linux directory permissions

* feat: added BigInt support

* fix: referenced latest SDK changes

* fix: desktop window

* fix: windows desktop window

* fix: bigInt decimal conversions

* chore: updated dependencies

* fix: tokenSymbol widget

* fix: minor UI fixes

* cicd: hardcoded flutter version for compatibility

* feat: Change caching the active sessions for a pairing

* fix: allow any ZTS in znn_send

* feat: added WalletConnect events

* fix: remove relayClient reconnect

* feat: Add widget for pairing session data

* feat: Tweak WC pairing flow

* fix: Emit the session event (address and chain id events) to each dApp with an active pair and session

* fix: add windows directory

* chore: update walletconnect_flutter_v2 to v2.0.4

* fix: BigInt fixes

* feat: Regenerate windows folder

* feat: Regenerate windows folder

* feat: Refresh WC URI input field after pairing

* feat: error notification for auto-receive

* chore: updated walletconnect_flutter_v2 to v2.0.6

* feat: Build WC uri card

* feat: Build WC QR card

* feat: Build WC camera card

* feat: Put the pairings and sessions widgets side by side

* feat: Change button name

* fix: flutter windows directory

* chore: update uni_links_desktop to v0.1.6

* fix: windows deep link handling

* feat: added notification for incoming links

* feat: Refresh pairing and session lists when connecting to dApp

* feat: Align pairing and session list widgets on top of each other

* refactor: Add the getter pairings to the WalletConnectService class

* feat: replaced uni_links with app_links

* fix: Revert changes to the pairing list widget

* fix: Make InfiniteScrollBloc handle case when the data request is not paginated

* fix: Don't dispose the pairings and sessions bloc

* fix: Also refresh sessions list after deleting a pairing

* fix: Check for broken WC URI

* fix: added refresh for onPairingCreate

* fix: Redirect to WC tab when an WC URI is detected while the wallet is locked

* fix: Don't cache results for blocs that don't handle paginated results

* fix: Decode WC URI before parsing

* feat: Upgrade project to Dart 3.0.1

* feat: Delete button that disconnects the WC session with the dApp

* feat: Throw error if trying to send tx from dApp while wallet is locked

* cicd: upgraded flutter to v3.10.2

* chore: update texts

* feat: Update WC dependency to 2.0.8

* fix: parse WalletConnect URI

* fix: Dart lint warnings

* feat: bump version to v0.0.7

* fix: Windows deep link

* Updated native libraries

* feat: Hard code chainId to 1 for WC

* fix: WalletConnect improvements

* fix: When to mark last page of the infinite scroll bloc

* fix: dialog navigator pop

* fix: added marquee for token balance

* feat: logging to disk

* refactor: renamed votePillar to delegateToPillar

* fix: WalletConnect issues

* feat: programmatically display WalletConnect tab

* feat: added deep link actions

* feat: update defaultValue for kWcProjectId

* chore: updated walletconnect_flutter_v2 to v2.0.12

* chore: update dependencies

* feat: added camera QR scanning for MacOS

* fix: WakelockPlus Linux support

* fix: replaced logger with Logger

* chore: added descriptions and code cleanup

* fix: wallet_connect_tab_child  import

* fix: minimum amount to send

* fix: refresh WalletConnectSessionsBloc

* fix: remainingZnnBudget decimals

* fix: onSessionDelete refresh

* v0.0.7 -  BigInt support & WalletConnect implementation

* BigInt support & WalletConnect implementation
* Embedded node update: libznn libraries will mitigate the fork at height 5094735

---------

Co-authored-by: Github Actions <GH-actions-ci@github.com>

* fix: enabled transfers for minimum zts amount (zenon-network#32)

---------

Co-authored-by: mik3mast3rs <mik3mast3rs@proton.me>
Co-authored-by: Alien Coder <118136375+alienc0der@users.noreply.github.com>
Co-authored-by: Github Actions <GH-actions-ci@github.com>
Co-authored-by: Interstellar Traveler <140100591+interstellartraveler77@users.noreply.github.com>
Co-authored-by: Sol Sanctum <so1_sanctum@pm.me>

* Fix local time discrepancy warning with remote node

* Fix linter warning

* Update README.md badges for zenon network (zenon-network#55)

* Update ZNN SDK dependency to use Zenon Network repository (zenon-network#56)

---------

Signed-off-by: georgezgeorgez <92196048+georgezgeorgez@users.noreply.github.com>
Signed-off-by: vilkris <90819192+vilkris4@users.noreply.github.com>
Co-authored-by: CryptoFish <YankeeDoodlePigeon@protonmail.com>
Co-authored-by: georgezgeorgez <92196048+georgezgeorgez@users.noreply.github.com>
Co-authored-by: Github Actions <GH-actions-ci@github.com>
Co-authored-by: CryptoFish <13164589+KingGorrin@users.noreply.github.com>
Co-authored-by: Sol Sanctum <so1_sanctum@pm.me>
Co-authored-by: mik3mast3rs <mik3mast3rs@proton.me>
Co-authored-by: Alien Coder <118136375+alienc0der@users.noreply.github.com>
Co-authored-by: Interstellar Traveler <140100591+interstellartraveler77@users.noreply.github.com>

* Update libznn binaries to latest version (zenon-network#35)

---------

Signed-off-by: georgezgeorgez <92196048+georgezgeorgez@users.noreply.github.com>
Signed-off-by: vilkris <90819192+vilkris4@users.noreply.github.com>
Co-authored-by: CryptoFish <YankeeDoodlePigeon@protonmail.com>
Co-authored-by: georgezgeorgez <92196048+georgezgeorgez@users.noreply.github.com>
Co-authored-by: Github Actions <GH-actions-ci@github.com>
Co-authored-by: CryptoFish <13164589+KingGorrin@users.noreply.github.com>
Co-authored-by: Sol Sanctum <so1_sanctum@pm.me>
Co-authored-by: mik3mast3rs <mik3mast3rs@proton.me>
Co-authored-by: Alien Coder <118136375+alienc0der@users.noreply.github.com>
Co-authored-by: Interstellar Traveler <140100591+interstellartraveler77@users.noreply.github.com>
KingGorrin added a commit that referenced this issue Apr 2, 2024
* Release v0.1.0 (#34)

* Escape metadata string variables

* Fix linux metadata script

* Special char test ~!@#$%^&*()_+`-=:";'\|[]{}<>?,./

* Change metadata script with sed cmd

* Special char test ~`!@#$%^&*()_+-={}[]:;"'<>?,./|\

* Fix metadata ps script function on top

* Special char test ~`!@#$%^&*()_+-={}[]:;"'<>?,./|\

* Fix metadata scripts using raw strings

* Char test `~!@#$%^&*\t()_+-={}[]:";'|\<>?,./

* Fix metadata macos script

* Char test `~!@#$%^&*\t()_+-={}[]:";'|\<>?,./

* Char test `~!@#$%^&*\t()_+-={}[]:";'|\<>?,./

* Char test `~!@#$%^&*\t()_+-={}[]:";'|\<>?,./

* Char test `~!@#$%^&*\t()_+-={}[]:";'|\<>?,./

* Char test `~!@#$%^&*\t()_+-={}[]:";'|\<>?,./

* Fix pubspec

* Restore pubspec

* Fix failing build and release workflow (#7)

The build and release workflow uses the latest Flutter SDK version that is available on the stable channel. The current codebase is not compatible with Flutter SDK versions 3.10.0 and newer, so the Flutter version must be constrained in the build and release workflow.

* [cicd] Release on tags

* [cicd] Fix tag releases lib-builder

* Updated native libraries

* [cicd] Make lib-builder only trigger manually

* [cicd] Fix SYRIUS_VERSION

* Updated native libraries

* Fix realtime statistics refresh (#9)

* Implement P2P swaps for ZTS tokens (#11)

* Set state when beneficiary address changes

* Fix realtime statistics refresh (2) (#17)

* Adjust P2P swap expiration times (#21)

* Update P2P swap card descriptions (#20)

* Enable P2P swap UI on mainnet (#22)

* Add warning banner onto the P2P swap page (#23)

* Check for local time discrepancy when entering the P2P swap tab (#25)

* Add hash back to auto-receive tx queue on all exceptions (#24)

* Enable wakelock and disable auto-lock when incoming swap is active (#19)

* Fix auto receive queue logic (#27)

* Filter on all owned projects (#10)

* Update README.md badges for hypercore-one

Signed-off-by: georgezgeorgez <92196048+georgezgeorgez@users.noreply.github.com>

* Make P2P swap related duration constants global and improve the expiration times configuration (#29)

* Call setState when updating the swap completed text (#30)

* Improve the logic of the auto unlock worker (#32)

* Prevent the same hash from being added twice into the auto receive tx pool (#31)

* Prevent the same hash from being added twice into the auto receive tx pool

* Add comment to addHash function

* Integrate changes from master (#36)

* Feat: Add deep linking - syrius://

* Update main_app_container.dart

* fix: MacOS deep link support

* Feat: Add UI for Wallet Connect

* feat: Enable pairing with dApps through WC

* chore: Add namespaces and more listeners

* Replace bodyText1 with bodyLarge

* fix: Change WC initialization

* chore: Update gitignore

* chore: Update repo after gitignore update

* feat: Add method that activates the pairing

* feat: Add feature that captures a part of the screen and listens to the clipboard

* feat: Build table that shows the current pairings

* feat: Add feature to scan the QR code from the screen

* fix: Remove Expanded widget from Pairings card widget tree

* feat: Listens to values in the clipboard in order to check for WC URI

* fix: Make access check for MacOS before scanning screen

* feat: Redirect to WC tab when a WC URI is detected

* fix: Rebuild WC URI input field when another URI is detected in the clipboard

* Updated native libraries

* fix: Recreate the windows folder

* feat: Add code that opens the app through deep linking

* refactor: Change API call when activating a pairing

* feat: Add possibility to deactivate a WC pair

* feat: Redirect to WC tab when opening the wallet through WC deep linking

* fix: Error initializing the WC uri input field

* feat: Improve validating the WC URI

* feat: Add handler for znn_net_info WC method

* feat: Add handler for znn_sign WC method

* refactor: Create function for signing with the key pair from the wallet file

* feat: Add handler for WC znn_send method

* feat: Change name of znn_net_info method to znn_info and refactor sending a block

* fix: Restyle the Topic column from the WC pairings table

* feat: Send back an account block to the dApp after executing the znn_send method

* feat: Send events to the dApp when the address or chain id were changed

* feat: Send error to the dApp when user rejects the transfer

* fix: Change the error type send to the dApp

* feat: Add confirmation dialogs before making an action sent from the dApp

* refactor

* feat: Fix dialog when dApp wants to send a tx

* fix: Reset the URI value from the change notifier once it's used

* fix: Don't redirect to WC when detecting a WC URI if the wallet is locked

* fix: Show WC URI detected notification if the user is already on the WC tab

* feat: Throw an error when trying to trigger an action through WC and wallet is locked

* feat: Reconnect to websocket when WC connection falls

* feat: Add methods to retrieve the active sessions and all sessions

* feat: Get the reference for getting the ZNN SDK

* feat: Change position of the WC Connect button and disable it in case the input is not valid

* refactor: Delete unused method

* feat: Send notification when user cancels the QR scanning

* feat: Keep the WC URI in memory when wallet is locked

* feat: Update WalletConnectPairingCard with the needed permissions

* feat: Update files

* feat: Wrap up WC

* fix: Clean up

* feat: Get WC project id from environment variable

* fix: Rebuild 'Connect' button when the URI input field is also rebuild

* feat: Rebuild pubspec.lock

* feat: Change the source of the ZNN SDK

* build: referenced wallet-connect sdk branch

* build: added required macos entitlements

* refactor: small refactor

* docs: updated README

* cicd: retrieve WALLET_CONNECT_PROJECT_ID

* cicd: added environment name

* cicd: updated flutter-action

* cicd: set linux directory permissions

* feat: added BigInt support

* fix: referenced latest SDK changes

* fix: desktop window

* fix: windows desktop window

* fix: bigInt decimal conversions

* chore: updated dependencies

* fix: tokenSymbol widget

* fix: minor UI fixes

* cicd: hardcoded flutter version for compatibility

* feat: Change caching the active sessions for a pairing

* fix: allow any ZTS in znn_send

* feat: added WalletConnect events

* fix: remove relayClient reconnect

* feat: Add widget for pairing session data

* feat: Tweak WC pairing flow

* fix: Emit the session event (address and chain id events) to each dApp with an active pair and session

* fix: add windows directory

* chore: update walletconnect_flutter_v2 to v2.0.4

* fix: BigInt fixes

* feat: Regenerate windows folder

* feat: Regenerate windows folder

* feat: Refresh WC URI input field after pairing

* feat: error notification for auto-receive

* chore: updated walletconnect_flutter_v2 to v2.0.6

* feat: Build WC uri card

* feat: Build WC QR card

* feat: Build WC camera card

* feat: Put the pairings and sessions widgets side by side

* feat: Change button name

* fix: flutter windows directory

* chore: update uni_links_desktop to v0.1.6

* fix: windows deep link handling

* feat: added notification for incoming links

* feat: Refresh pairing and session lists when connecting to dApp

* feat: Align pairing and session list widgets on top of each other

* refactor: Add the getter pairings to the WalletConnectService class

* feat: replaced uni_links with app_links

* fix: Revert changes to the pairing list widget

* fix: Make InfiniteScrollBloc handle case when the data request is not paginated

* fix: Don't dispose the pairings and sessions bloc

* fix: Also refresh sessions list after deleting a pairing

* fix: Check for broken WC URI

* fix: added refresh for onPairingCreate

* fix: Redirect to WC tab when an WC URI is detected while the wallet is locked

* fix: Don't cache results for blocs that don't handle paginated results

* fix: Decode WC URI before parsing

* feat: Upgrade project to Dart 3.0.1

* feat: Delete button that disconnects the WC session with the dApp

* feat: Throw error if trying to send tx from dApp while wallet is locked

* cicd: upgraded flutter to v3.10.2

* chore: update texts

* feat: Update WC dependency to 2.0.8

* fix: parse WalletConnect URI

* fix: Dart lint warnings

* feat: bump version to v0.0.7

* fix: Windows deep link

* Updated native libraries

* feat: Hard code chainId to 1 for WC

* fix: WalletConnect improvements

* fix: When to mark last page of the infinite scroll bloc

* fix: dialog navigator pop

* fix: added marquee for token balance

* feat: logging to disk

* refactor: renamed votePillar to delegateToPillar

* fix: WalletConnect issues

* feat: programmatically display WalletConnect tab

* feat: added deep link actions

* feat: update defaultValue for kWcProjectId

* chore: updated walletconnect_flutter_v2 to v2.0.12

* chore: update dependencies

* feat: added camera QR scanning for MacOS

* fix: WakelockPlus Linux support

* fix: replaced logger with Logger

* chore: added descriptions and code cleanup

* fix: wallet_connect_tab_child  import

* fix: minimum amount to send

* fix: refresh WalletConnectSessionsBloc

* fix: remainingZnnBudget decimals

* fix: onSessionDelete refresh

* Integrate changes from master with P2P swaps

---------

Co-authored-by: mik3mast3rs <mik3mast3rs@proton.me>
Co-authored-by: Alien Coder <118136375+alienc0der@users.noreply.github.com>
Co-authored-by: Github Actions <GH-actions-ci@github.com>
Co-authored-by: Interstellar Traveler <140100591+interstellartraveler77@users.noreply.github.com>

* Verify the uniqueness of the hashlock when joining a swap (#37)

* Add option to delete swap history (#38)

* Remove P2P swap warning banner and add a warning modal (#41)

* Add deposit recovery feature (#40)

* Add width constraints to shown amounts and token symbols (#39)

* Add width constraints to shown amounts and token symbols

* Decrease P2P swap list item's max text width to prevent overflow

* Refactor swap expiration warnings and increase counter HTLC expiration time (#42)

Signed-off-by: vilkris <90819192+vilkris4@users.noreply.github.com>

* Fix workflow file issues caused by upstream changes (#44)

* Remove bridge tab and related widgets (#43)

* Add link to P2P swap tutorial (#45)

* Update pubspec.lock to latest ZNN SDK version

* Update version numbers and Git commit date format (#46)

* Fix the extractDecimals extension method to handle zero decimals (#47)

* Fix ExchangeRateWidget's rate calculation (#48)

* Add documentation for how P2P swaps work (#49)

* Add documentation for how P2P swaps work

* Add a note of the used hash function to the documentation

* fix: enabled transfers for minimum zts amount

* Fix typo in bullet point card (#53)

* Merge master branch into develop (#54)

* Feat: Add deep linking - syrius://

* Update main_app_container.dart

* fix: MacOS deep link support

* Feat: Add UI for Wallet Connect

* feat: Enable pairing with dApps through WC

* chore: Add namespaces and more listeners

* Replace bodyText1 with bodyLarge

* fix: Change WC initialization

* chore: Update gitignore

* chore: Update repo after gitignore update

* feat: Add method that activates the pairing

* feat: Add feature that captures a part of the screen and listens to the clipboard

* feat: Build table that shows the current pairings

* feat: Add feature to scan the QR code from the screen

* fix: Remove Expanded widget from Pairings card widget tree

* feat: Listens to values in the clipboard in order to check for WC URI

* fix: Make access check for MacOS before scanning screen

* feat: Redirect to WC tab when a WC URI is detected

* fix: Rebuild WC URI input field when another URI is detected in the clipboard

* Updated native libraries

* fix: Recreate the windows folder

* feat: Add code that opens the app through deep linking

* refactor: Change API call when activating a pairing

* feat: Add possibility to deactivate a WC pair

* feat: Redirect to WC tab when opening the wallet through WC deep linking

* fix: Error initializing the WC uri input field

* feat: Improve validating the WC URI

* feat: Add handler for znn_net_info WC method

* feat: Add handler for znn_sign WC method

* refactor: Create function for signing with the key pair from the wallet file

* feat: Add handler for WC znn_send method

* feat: Change name of znn_net_info method to znn_info and refactor sending a block

* fix: Restyle the Topic column from the WC pairings table

* feat: Send back an account block to the dApp after executing the znn_send method

* feat: Send events to the dApp when the address or chain id were changed

* feat: Send error to the dApp when user rejects the transfer

* fix: Change the error type send to the dApp

* feat: Add confirmation dialogs before making an action sent from the dApp

* refactor

* feat: Fix dialog when dApp wants to send a tx

* fix: Reset the URI value from the change notifier once it's used

* fix: Don't redirect to WC when detecting a WC URI if the wallet is locked

* fix: Show WC URI detected notification if the user is already on the WC tab

* feat: Throw an error when trying to trigger an action through WC and wallet is locked

* feat: Reconnect to websocket when WC connection falls

* feat: Add methods to retrieve the active sessions and all sessions

* feat: Get the reference for getting the ZNN SDK

* feat: Change position of the WC Connect button and disable it in case the input is not valid

* refactor: Delete unused method

* feat: Send notification when user cancels the QR scanning

* feat: Keep the WC URI in memory when wallet is locked

* feat: Update WalletConnectPairingCard with the needed permissions

* feat: Update files

* feat: Wrap up WC

* fix: Clean up

* feat: Get WC project id from environment variable

* fix: Rebuild 'Connect' button when the URI input field is also rebuild

* feat: Rebuild pubspec.lock

* feat: Change the source of the ZNN SDK

* build: referenced wallet-connect sdk branch

* build: added required macos entitlements

* refactor: small refactor

* docs: updated README

* cicd: retrieve WALLET_CONNECT_PROJECT_ID

* cicd: added environment name

* cicd: updated flutter-action

* cicd: set linux directory permissions

* feat: added BigInt support

* fix: referenced latest SDK changes

* fix: desktop window

* fix: windows desktop window

* fix: bigInt decimal conversions

* chore: updated dependencies

* fix: tokenSymbol widget

* fix: minor UI fixes

* cicd: hardcoded flutter version for compatibility

* feat: Change caching the active sessions for a pairing

* fix: allow any ZTS in znn_send

* feat: added WalletConnect events

* fix: remove relayClient reconnect

* feat: Add widget for pairing session data

* feat: Tweak WC pairing flow

* fix: Emit the session event (address and chain id events) to each dApp with an active pair and session

* fix: add windows directory

* chore: update walletconnect_flutter_v2 to v2.0.4

* fix: BigInt fixes

* feat: Regenerate windows folder

* feat: Regenerate windows folder

* feat: Refresh WC URI input field after pairing

* feat: error notification for auto-receive

* chore: updated walletconnect_flutter_v2 to v2.0.6

* feat: Build WC uri card

* feat: Build WC QR card

* feat: Build WC camera card

* feat: Put the pairings and sessions widgets side by side

* feat: Change button name

* fix: flutter windows directory

* chore: update uni_links_desktop to v0.1.6

* fix: windows deep link handling

* feat: added notification for incoming links

* feat: Refresh pairing and session lists when connecting to dApp

* feat: Align pairing and session list widgets on top of each other

* refactor: Add the getter pairings to the WalletConnectService class

* feat: replaced uni_links with app_links

* fix: Revert changes to the pairing list widget

* fix: Make InfiniteScrollBloc handle case when the data request is not paginated

* fix: Don't dispose the pairings and sessions bloc

* fix: Also refresh sessions list after deleting a pairing

* fix: Check for broken WC URI

* fix: added refresh for onPairingCreate

* fix: Redirect to WC tab when an WC URI is detected while the wallet is locked

* fix: Don't cache results for blocs that don't handle paginated results

* fix: Decode WC URI before parsing

* feat: Upgrade project to Dart 3.0.1

* feat: Delete button that disconnects the WC session with the dApp

* feat: Throw error if trying to send tx from dApp while wallet is locked

* cicd: upgraded flutter to v3.10.2

* chore: update texts

* feat: Update WC dependency to 2.0.8

* fix: parse WalletConnect URI

* fix: Dart lint warnings

* feat: bump version to v0.0.7

* fix: Windows deep link

* Updated native libraries

* feat: Hard code chainId to 1 for WC

* fix: WalletConnect improvements

* fix: When to mark last page of the infinite scroll bloc

* fix: dialog navigator pop

* fix: added marquee for token balance

* feat: logging to disk

* refactor: renamed votePillar to delegateToPillar

* fix: WalletConnect issues

* feat: programmatically display WalletConnect tab

* feat: added deep link actions

* feat: update defaultValue for kWcProjectId

* chore: updated walletconnect_flutter_v2 to v2.0.12

* chore: update dependencies

* feat: added camera QR scanning for MacOS

* fix: WakelockPlus Linux support

* fix: replaced logger with Logger

* chore: added descriptions and code cleanup

* fix: wallet_connect_tab_child  import

* fix: minimum amount to send

* fix: refresh WalletConnectSessionsBloc

* fix: remainingZnnBudget decimals

* fix: onSessionDelete refresh

* v0.0.7 -  BigInt support & WalletConnect implementation

* BigInt support & WalletConnect implementation
* Embedded node update: libznn libraries will mitigate the fork at height 5094735

---------

Co-authored-by: Github Actions <GH-actions-ci@github.com>

* fix: enabled transfers for minimum zts amount (#32)

---------

Co-authored-by: mik3mast3rs <mik3mast3rs@proton.me>
Co-authored-by: Alien Coder <118136375+alienc0der@users.noreply.github.com>
Co-authored-by: Github Actions <GH-actions-ci@github.com>
Co-authored-by: Interstellar Traveler <140100591+interstellartraveler77@users.noreply.github.com>
Co-authored-by: Sol Sanctum <so1_sanctum@pm.me>

* Fix local time discrepancy warning with remote node

* Fix linter warning

* Update README.md badges for zenon network (#55)

* Update ZNN SDK dependency to use Zenon Network repository (#56)

---------

Signed-off-by: georgezgeorgez <92196048+georgezgeorgez@users.noreply.github.com>
Signed-off-by: vilkris <90819192+vilkris4@users.noreply.github.com>
Co-authored-by: CryptoFish <YankeeDoodlePigeon@protonmail.com>
Co-authored-by: georgezgeorgez <92196048+georgezgeorgez@users.noreply.github.com>
Co-authored-by: Github Actions <GH-actions-ci@github.com>
Co-authored-by: CryptoFish <13164589+KingGorrin@users.noreply.github.com>
Co-authored-by: Sol Sanctum <so1_sanctum@pm.me>
Co-authored-by: mik3mast3rs <mik3mast3rs@proton.me>
Co-authored-by: Alien Coder <118136375+alienc0der@users.noreply.github.com>
Co-authored-by: Interstellar Traveler <140100591+interstellartraveler77@users.noreply.github.com>

* Update libznn binaries to latest version (#35)

* fix: _wcClient initialization

* fix: check relay server connection

* chore: update walletconnect_flutter_v2 to v2.0.15

* fix: onPairingDelete refresh pairingsBloc

* chore: update dependencies

Upgrade several dependencies and remove flutter_test

* chore: update dependencies

* feat: updated WalletConnect integration

* feat: added community public nodes

* feat: added badge for notifications

* refactor: resyncWallet and NodeManagement

* feat: separated Plasma generation from sync

* fix: fl_charts

* fix: duplicate nodes in NodeManagement

* feat: open Syrius logs directory

* chore: update dependencies

* feat: switch auto-receiver on/off

* Create SECURITY.md

* feat: switch auto-receiver on/off

* chore: remove WC_PROJECT_ID environment variable

* cicd: removed wallet-connect environment

* Fix auto receiver

* Sync pubspec

* Fix different green colors

* Separate plasma from sync

* Revert "Add alienc0der's v0.0.7 changes"

* Reword `Send Payment` to `Send`. (#56)

* Fix wrapping of revocation time (#53)

* Fix FormatException when trying to fuse a large amount (#58)

* Community public nodes (#49)

* Update app_links and ignore incoming links on Linux (#55)

* Fix receive amount formatting and QrInputTooLongException (#59)

* Update charts (#52)

* Position address above amount (#62)

* Hardware wallet support for Ledger (#43)

* Delay Embedded Node until selected (#63)

* Disable autoreceive feature (#47)

* Reset words when verify incorrect seed (#66)

* Add auto-receive option on the onboard node-management screen (#65)

* Use CircularProgressIndicator for sync state

* Update znn_sdk_dart ref

* Change AZ pillar owner filters (#68)

* Load community nodes from assets (#69)

* Add manual test cases (#70)

* Update README

* Check for active sentinel

* chore(deps): bump archive from 3.3.7 to 3.3.8 (#73)

* WalletConnect refactor (#48)

* Release wallet lock after use

* Use finally to release wallet lock

* Restore WC_PROJECT_ID doc

* Update ledger test

* Add ledger test-run

* Fix missing quotes

* Fix missing quotes

* Fix running auto-receiver  (#76)

* Correct ledger test run

* Correct walletconnect test

* Fix delete web3 cache (#78)

* Add auto-receive test run

* Add community-nodes test run

* Remove unused import

* Allow znn or qsr az donations (#84)

* Restore connection on rejected chain identifier mismatch (#82)

* Rearrange settings widgets (#83)

* Remove type step from pillar stepper (#88)

* Use wallet name to identify ledger device (#89)

* Remove double error notification (#93)

* Add auto-receive test run

* Disconnect node on Wallet Reset (#94)

* Properly await all notifications (#95)

* Add community-nodes test run

* Fix dashboard highlight overlap (#97)

* Update znn_ledger_dart ref

* Update QR child image (#98)

* Fix error handling when generating new addresses (#100)

* Refactor Sentinel stepper with Pillar impl. (#101)

* Update ledger test run

* Chore: upgrades and workflow fixes (#103)

* Add walletconnect test run

* Fix WalletConnect camera scanner (#104)

* Add walletconnect test run

* Delete web3 cache by deactivating pairings (#107)

* Fix "shadows" on token cards (#109)

* Apply sync check to all hosts (#112)

* Refrase auto-receiver checkbox tooltip

* Clean up unused AsyncMutex

---------

Signed-off-by: georgezgeorgez <92196048+georgezgeorgez@users.noreply.github.com>
Signed-off-by: vilkris <90819192+vilkris4@users.noreply.github.com>
Co-authored-by: vilkris <90819192+vilkris4@users.noreply.github.com>
Co-authored-by: georgezgeorgez <92196048+georgezgeorgez@users.noreply.github.com>
Co-authored-by: Github Actions <GH-actions-ci@github.com>
Co-authored-by: Sol Sanctum <so1_sanctum@pm.me>
Co-authored-by: mik3mast3rs <mik3mast3rs@proton.me>
Co-authored-by: Alien Coder <118136375+alienc0der@users.noreply.github.com>
Co-authored-by: Interstellar Traveler <140100591+interstellartraveler77@users.noreply.github.com>
Co-authored-by: vilkris <vilkris@protonmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant