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

Find a way to decrypt wallets without using threads #55

Open
rmgaray opened this issue May 6, 2024 · 0 comments · May be fixed by #86
Open

Find a way to decrypt wallets without using threads #55

rmgaray opened this issue May 6, 2024 · 0 comments · May be fixed by #86
Labels
bug Something isn't working

Comments

@rmgaray
Copy link
Collaborator

rmgaray commented May 6, 2024

Background

GDExt provides a synchronous interface. This means any function implemented in Rust using the GDExt framework can only be called as a sync function. In the context of decrypting a wallet's contents, this is problematic, because this task takes some time and if run synchronously it can freeze a game while it is being executed.

Current state of things

To avoid freezing the UI while decrypting a wallet, we spawn a Godot thread to run this task asynchronously. When the task finishes, we emit a signal that a developer can then use to hook a callback. In this way, the use of threads is transparent to a user.

Unfortunately, this complicates things for Paima integration (#53). Threads support in browsers is complicated, so a workaround for wallet decryption would be ideal. Until this is not solved, Paima integration is effectively blocked.

@rmgaray rmgaray added the bug Something isn't working label May 6, 2024
@rmgaray rmgaray added this to the M6 - Paima Integration milestone May 6, 2024
@rmgaray rmgaray linked a pull request Jul 29, 2024 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant