🎉 Introducing: AutoWallet 🎉

Hello again, everyone!

From the brilliant mind of @safemedia, I am pleased to announce the public release of AutoWallet! :partying_face:


What is AutoWallet??

The AutoWallet application is a foundational framework to build your app from React, Typescript & Tailwind. AutoWallet simplifies the development process, allowing developers to focus on adding unique features and functionalities without starting from scratch. This accelerates development time and ensures consistency and security across wallet applications built on the Autonomi Network.

AutoWallet utilizes the safe repo, a high-level API Layer for Autonomi, built over the course of many months by @loziniak. :clap:

safe repo’s name pays homage to our origins but functionally it propels development of Autonomi forward.

AutoWallet Features

  • windows, linux and Mac

  • mobile resizing

  • connected & disconnected screen

  • signed in view & signed out view

  • wallet panel (register, recent accounts, recover account)

  • disconnect button

  • dark & light themes

  • translations

  • store

  • menu system

We’re very hopeful this will lower barriers and lead to more creativity and participation.
Huge props to @safemedia aka Cobite on this accomplishment. :clap: :clap: :clap:

Happy building everyone!

Brought to you, with love :heart: by the JAMSplayer team!
@loziniak @safemedia @Nigel

:jams:

34 Likes

We want to ask a simple favor!

  • Are there any additional features you would find useful to be prepackaged?
  • If yes, what are they?
  • When using AutoWallet, please report back here with feedback and suggestions!
14 Likes

Amazing! Great to see another community app drop! I look forward to playing with it!

13 Likes

@Nigel, @loziniak and @safemedia, stop at once! I’m getting dizzy :melting_face:

13 Likes

Just wow :exploding_head:

Are you guys from a different planet?

Another milestone for the history books!

13 Likes

Just want to ensure the link is working for everyone. Displaying as broken (shouldn’t be) but trying to resolve that now.

Edit: thanks @neo for the link fix!

Thanks for the support folks. We are powered by your encouragement!

Just to throw out the low hanging additional feature, mentioned by both @safemedia and @loziniak, also on @dirvine’s wishlist, would be to have this packaged with an optional network node!

We had that planned but the guys are so busy (as you can see) but we can get er done.

12 Likes

You guys are on fire, so many people doing so many good things, the future feels bright. :tada:

11 Likes

I get as far as yarn run tauri build and then nothing other than this output


willie@gagarin:~/projects/maidsafe/autowallet$ yarn run tauri build
yarn run v1.22.19
warning ../../package.json: No license field
$ tauri build
     Running beforeBuildCommand `yarn build`
warning ../../package.json: No license field
$ tsc && vite build
vite v6.2.5 building for production...
✓ 2500 modules transformed.
dist/index.html                   0.46 kB │ gzip:   0.29 kB
dist/assets/index-Cjs-PJjd.css   51.88 kB │ gzip:   9.37 kB
dist/assets/index-Bt4tZP2t.js   795.63 kB │ gzip: 249.42 kB

(!) Some chunks are larger than 500 kB after minification. Consider:
- Using dynamic import() to code-split the application
- Use build.rollupOptions.output.manualChunks to improve chunking: https://rollupjs.org/configuration-options/#output-manualchunks
- Adjust chunk size limit for this warning via build.chunkSizeWarningLimit.
✓ built in 8.47s

   Compiling AutoWallet v0.1.1 (/home/willie/projects/maidsafe/autowallet/src-tauri)
warning: unused import: `tauri::path::BaseDirectory`
 --> src/server.rs:3:5
  |
3 | use tauri::path::BaseDirectory;
  |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
  |
  = note: `#[warn(unused_imports)]` on by default

warning: unused import: `tauri::Manager`
 --> src/server.rs:5:5
  |
5 | use tauri::Manager;
  |     ^^^^^^^^^^^^^^

warning: use of deprecated method `tauri::Manager::unmanage`: This method is unsafe, since it can cause dangling references.
   --> src/lib.rs:203:17
    |
203 |             app.unmanage::<Mutex<Option<Safe>>>();
    |                 ^^^^^^^^
    |
    = note: `#[warn(deprecated)]` on by default

warning: use of deprecated method `tauri::Manager::unmanage`: This method is unsafe, since it can cause dangling references.
   --> src/lib.rs:289:9
    |
289 |     app.unmanage::<Mutex<Option<Safe>>>()
    |         ^^^^^^^^

warning: unused variable: `app`
  --> src/server.rs:25:23
   |
25 | fn data(path: String, app: &AppHandle) -> Result<Vec<u8>, String> {
   |                       ^^^ help: if this is intentional, prefix it with an underscore: `_app`
   |
   = note: `#[warn(unused_variables)]` on by default

warning: method `full_path` is never used
  --> src/frontend.rs:22:12
   |
21 | impl AutonomiFileMetadata {
   | ------------------------- method in this implementation
22 |     pub fn full_path(&self) -> Result<PathBuf, Error> {
   |            ^^^^^^^^^
   |
   = note: `#[warn(dead_code)]` on by default

warning: function `autonomi` is never used
 --> src/server.rs:8:15
  |
8 | pub(crate) fn autonomi(path: &str) -> Result<(XorName, PathBuf), String> {
  |               ^^^^^^^^

warning: `AutoWallet` (lib) generated 7 warnings (run `cargo fix --lib -p AutoWallet` to apply 2 suggestions)
    Finished `release` profile [optimized] target(s) in 1m 54s
       Built application at: /home/willie/projects/maidsafe/autowallet/src-tauri/target/release/AutoWallet
    Bundling AutoWallet_0.1.1_amd64.deb (/home/willie/projects/maidsafe/autowallet/src-tauri/target/release/bundle/deb/AutoWallet_0.1.1_amd64.deb)
    Finished 1 bundle at:
        /home/willie/projects/maidsafe/autowallet/src-tauri/target/release/bundle/deb/AutoWallet_0.1.1_amd64.deb

Done in 141.64s.

What am I missing?
rustc --version is rustc 1.86.0 (05f9846f8 2025-03-31)
yarn version is 1.22.19

1 Like

Yeah these warnings will need to be squashed before the build will compile.
Basically I have it that it checks that all unused code is removed before you generate a production build.

I’ll remove those lines today.

The app should run fine in dev mode via yarn run tauri dev

3 Likes

I updated rust which was a faff cos before it would update I had to run
rustup component remove --toolchain stable rls

That ran with fewer errors until

warning: function `autonomi` is never used
 --> src/server.rs:8:15
  |
8 | pub(crate) fn autonomi(path: &str) -> Result<(XorName, PathBuf), String> {
  |               ^^^^^^^^

warning: `AutoWallet` (lib) generated 7 warnings (run `cargo fix --lib -p AutoWallet` to apply 2 suggestions)
    Finished `release` profile [optimized] target(s) in 3m 22s
       Built application at: /home/willie/projects/maidsafe/autowallet/src-tauri/target/release/AutoWallet
    Bundling AutoWallet_0.1.1_amd64.deb (/home/willie/projects/maidsafe/autowallet/src-tauri/target/release/bundle/deb/AutoWallet_0.1.1_amd64.deb)
    Finished 1 bundle at:
        /home/willie/projects/maidsafe/autowallet/src-tauri/target/release/bundle/deb/AutoWallet_0.1.1_amd64.deb

Done in 225.16s.

then

willie@gagarin:~/projects/maidsafe/autowallet$ cargo fix --lib -p AutoWallet
error: could not find `Cargo.toml` in `/home/willie/projects/maidsafe/autowallet` or any parent directory

followed by

sudo dpkg -i  /home/willie/projects/maidsafe/autowallet/src-tauri/target/release/bundle/deb/AutoWallet_0.1.1_amd64.deb
[sudo] password for willie: 
Selecting previously unselected package auto-wallet.
(Reading database ... 675192 files and directories currently installed.)
Preparing to unpack .../deb/AutoWallet_0.1.1_amd64.deb ...
Unpacking auto-wallet (0.1.1) ...
Setting up auto-wallet (0.1.1) ...
Processing triggers for gnome-menus (3.36.0-1.1ubuntu3) ...
Processing triggers for desktop-file-utils (0.27-2build1) ...
Processing triggers for bamfdaemon (0.5.6+22.04.20220217-0ubuntu1) ...
Rebuilding /usr/share/applications/bamf-2.index...
Processing triggers for mailcap (3.70+nmu1ubuntu1) ...
Processing triggers for hicolor-icon-theme (0.17-2) ...
willie@gagarin:~/projects/maidsafe/autowallet$ AutoWallet 
Could not create GBM EGL display: EGL_NOT_INITIALIZED. Aborting...
Aborted (core dumped)

which was unfortunate…

but getting closer :slight_smile:

Ubuntu 24.04

trying yarn run tauri dev now

1 Like

I’ve also updated the readme so that the build step comes after the dev step :sweat_smile:

2 Likes

yarn run tauri dev exited with


warning: function `autonomi` is never used
 --> src/server.rs:8:15
  |
8 | pub(crate) fn autonomi(path: &str) -> Result<(XorName, PathBuf), String> {
  |               ^^^^^^^^

warning: `AutoWallet` (lib) generated 7 warnings (run `cargo fix --lib -p AutoWallet` to apply 2 suggestions)
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 5m 18s
     Running `target/debug/AutoWallet`
Could not create GBM EGL display: EGL_NOT_INITIALIZED. Aborting...
Done in 327.43s.

http://localhost:1420/ refused to connect, though previously it connected but kust displayed a blank page.

Off to search

Could not create GBM EGL display: EGL_NOT_INITIALIZED. Aborting…

which is a new error on me…

1 Like

Huh, I’m not on linux so this might be something different as it builds fine for me.

@loziniak any idea what might be causing this?

Let me search that error before hassling @loziniak :slight_smile:

I want to keep him fresh for the Community Token.

Its not fair to wear out all the devs at one time…

3 Likes
willie@gagarin:~/projects/maidsafe/autowallet$ glxinfo | grep "OpenGL"
X Error of failed request:  BadValue (integer parameter out of range for operation)
  Major opcode of failed request:  152 (GLX)
  Minor opcode of failed request:  24 (X_GLXCreateNewContext)
  Value in failed request:  0x0
  Serial number of failed request:  110
  Current serial number in output stream:  111

Does not look good…

TBH I dont use much fancy graphics - I have an old GeForce GTX 1650 SUPER that does fine for my flightsimming on flightgear.org and helps run AnythingLLM locally.
I’ll poke further …

Do you run it on headless machine, like VPS or virtual? I suspect this is some display error.

Nope this box here on my desk.

This is first time I see something like this… very curious :slight_smile:

1 Like

It will likely be some local weirdness - time to feed Mrs Southside and then look harder at this later.

I have noticed that if I don’t feed her regularly then spaces will appear in the fridge where beer should be. I suspect some sort of correlation…

1 Like

Also perhaps try it on windows/mac in a vm if possible, or another machine with a different OS to rule out your machine itself :saluting_face:

1 Like