alephium / desktop-wallet Goto Github PK
View Code? Open in Web Editor NEWThe official Alephium wallet for desktop
Home Page: https://alephium.org
License: GNU Lesser General Public License v3.0
The official Alephium wallet for desktop
Home Page: https://alephium.org
License: GNU Lesser General Public License v3.0
Either wrap all set of inputs in a <form/>
tag, or listen for the keyboard event.
Steps to reproduce:
Error:
api-alephium.js:106 GET http://localhost:12973/infos/self-clique net::ERR_CONNECTION_REFUSED
HttpClient.customFetch @ api-alephium.js:106
api-alephium.js:106 Uncaught (in promise) TypeError: Failed to fetch
at CliqueClient.HttpClient.customFetch
In the Electron app, when clicking a transaction, or when clicking “Show address → Show in explorer”, the explorer is opened in a separate Electron window. It would be nice to have an option to open it in the user’s web browser instead.
Confusion arise when importing 24 secret words after password loss.
When the user is locked out of their account due to missing password, recovering from the 24 secret words is rejected if the account name entered already exists.
Error message is username already taken
which is slightly confusing since we call it Account Name
in GUI
When used in public, some users may like to hide amounts for privacy reason.
A discreet mode toggle situated in the top toolbar could automatically obfuscate all amounts (which could be replaced by stars "*") for instance.
We could check the timestamp when there's no inputs and mark something else or maybe check height == 0.
The explorer has a pretty dark theme. It would be nice if the wallet had a similar theme.
Previous pending TX are still displayed if the user switch from one network to another.
Either find a better way to fetch pending queries (best option, check with @tdroxler) or store pending TXs per network config.
See discussion in #78 (comment)
This would make the process easier, while still forcing users to check the words properly.
@polarker forwarded on Slack this request from a user who performs many transactions and the current (3min) lock time is to short for him resulting in frequent wallet locks.
Current version forces user to install Rosetta.
Let's build mac binaries with both x86 and arm64 version packaged.
Implement a section in the settings modal, where all the accounts are visible in a list, and where it's possible to delete one by one without requiring the password.
The main goal of this task is to open up the wallet to dApps interaction, the first of which being our voting demo app (PoC), followed by the future swap service.
The main "basic" feature needed is a signer: a way to validate and sign smart contract transactions.
In order to do that, we first wanted to "duplicate" the desktop wallet into a new browser extension, but other solutions exist and need to be discussed. Ideally, we would like to make our Desktop Wallet the go-to solution in order to keep our ecosystem accessible.
Let's use this issue to talk about the different approaches we can follow and their respective pros and cons.
There have been many breaking changes between v5 and v6. Here's a guide explaining the upgrade procedure: https://reactrouter.com/docs/en/v6/upgrading/v5
Gas could be an advanced setting configurable in the "send transaction" modal.
This need to be designed, and validated with the backend team.
We could config alephium.api.api-key
to make the endpoint access limited. @tdroxler is guy to go if you need more details.
Auto config for running the stack locally.
When clicking the web extension toolbar icon it shows the wallet as a popup. Problem is that this popup is modal, so you can’t do anything else on the computer while the wallet is open; doing so will close the popup. It would be nice if there was a button to open the wallet as a browser tab.
Using alephium-wallet 0.10.2 in Firefox.
I had alephium wallet running in the background and didn't realize it. launched alephium wallet again and it gave me the option to import/start new wallet.. might be confusing to some. (I almost re-imported my keys before realizing I had it running backgrounded in a different window).
It's basically launching a second instance instead of focusing on the already launched instance.
We need to support displaying tokens (name, amount) in our main wallet, and allow for sending them around.
Features
TBD
The help menu is empty 😞 (see screenshot below)
It would be nice to have:
Also the "File" and especially the "Window" menus feel a bit useless and could be hidden.
Note: This is inspired by the MyCrypto desktop wallet help menu
We could display information about part of the balance that is locked.
Need some work on the backend @tdroxler
To be refined.
src/pages/Wallet/WalletHomePage.tsx
Users need to be able to derive multiple addresses, for multiple groups.
This will be especially useful when interacting with dApps.
Here are the 3 scenarios we foresee for address derivation:
If the user wants to make a large tx using many UTXOs, the tx cannot be built due the limits on tx inputs and gas. We'd suggest users to merge the existing UTXO with sweep-address
endpiont.
In order to secure a bit more the mnemonic, we can already do it in the backend https://github.com/alephium/alephium/blob/975b343312a0513d3023399d4761f7ba0fb11fb5/wallet/src/main/scala/org/alephium/wallet/api/model/WalletCreation.scala#L26 basically this passphrase change the seed for a given mnemonic. So if someone steal the 24 words, he would still need to know that passphrase.
Do we need to be concerned about the full node running this logger? It seems to be a hot topic these days.
@polarker could you please provide some more info? Don't worry though, I'll have a look and figure it out on Swagger next week.
It would be great if a checksum file could be provided alongside the binaries of releases to check the integrity of the files.
Ideally if the binaries could be signed as well, it would be awesome!
Should we inverse creating the account (name, password) and importing the mnemonic?
If yes, we would need to refactor the way we create the wallet and store the encrypted data.
Trying to build the extension with npm run-script extension-pack
fails for me with: sh: line 1: zip: command not found
.
$ npm run-script extension-pack
> [email protected] extension-pack
> rm alephium-wallet.zip; npm run-script extension-build && cd build && zip -r ../alephium-wallet.zip *
> [email protected] extension-build
> rm -rf build; INLINE_RUNTIME_CHUNK=false npm run-script build; cp public/background.js public/manifest.json build
> [email protected] build
> cross-env REACT_APP_VERSION=$npm_package_version INLINE_RUNTIME_CHUNK=false react-scripts build
Creating an optimized production build...
Compiled successfully.
File sizes after gzip:
781.44 KB build/static/js/2.dc6bb90c.chunk.js
173.42 KB build/static/js/main.84b8e747.chunk.js
2.6 KB build/static/css/2.05131dc2.chunk.css
782 B build/static/js/runtime-main.8cf0c569.js
440 B build/static/css/main.72438ba0.chunk.css
The project was built assuming it is hosted at ./.
You can control this with the homepage field in your package.json.
The build folder is ready to be deployed.
Find out more about deployment here:
https://cra.link/deployment
sh: line 1: zip: command not found
Looking at the npm run script:
rm alephium-wallet.zip; npm run-script extension-build && cd build && zip -r ../alephium-wallet.zip *
I think this is due to zip
missing on my system.
I'd suggest switching from zip
which can be missing on many systems, esp. Linux which uses tar
/bsdtar
by default to web-ext
which is designed to build extensions.
Hopefully it is as straightforward as changing the above script to:
npm run-script extension-build && web-ext build --source-dir=build --artifacts-dir=. --filename=alephium-wallet.zip --overwrite-dest
and adding web-ext
to devDependencies
😉
Let me know if you want a PR for it.
We need to allow using our browser extension to interact with dApps.
We should follow Web 3.0 standards, and take Metamask as our main source of inspiration.
Design and planning
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.