Smapp - the Spacemesh App 🏦📊
Smesher UI + Wallet
This repo includes the source code for the Spacemesh App
. A desktop application for Windows 10, OS X, and Linux which includes a Smesher and a basic wallet. The main artifacts of this repo are the app and an app installer for all supported platforms.
Important note: Currently, Smapp does not support Hardware Wallets. This feature will be implemented in the future, but until then we highly recommend using SMCLI to generate the necessary keys for your ledger setup.
Also, the Wallet-only mode is temporarily disabled.
Download the latest Smapp release from Spacemesh Website.
For the installation guide, follow this link.
Smapp is written in TypeScript and bundled within Electron. You need Node.js (v12) and Yarn to build from the source. Make sure they are available on your system.
node/use-version
file: this is the version of go-spacemesh
that should be usednode/windows
, node/mac
, or node/linux
folder, depending on your platformyarn
to install dependenciesyarn start
to start the application in development modeTo build and pack the application:
yarn build
yarn package-win
yarn package-mac
set env variable DONT_SIGN_APP=1
to skip notarizing the app,yarn package-linux
Smapp can be started with additional arguments:
--discovery
(string)
e.g. ./Spacemesh --discovery=http://localhost:8000/networks.json
Specifies custom url to a custom networks list. It makes it possible for Smesher to connect to custom networks.
Env variable alias: DISCOVERY_URL
--pprof-server
(boolean)
e.g. ./Spacemesh --pprof-server
It makes Smapp runs go-spacemesh with the --pprof-server
flag.
Env variable alias: PPROF_SERVER
--test-mode
(boolean)
e.g. ./Spacemesh --test-mode
It runs Smapp and the Node under the hood in standalone mode, making it much easier to test and debug the application.
Env variable alias: TEST_MODE
--check-interval
(number)
e.g. ./Spacemesh --check-interval=60
to check for updates every 60 seconds
Smapp checks every N seconds for the software updates and new config.
If a new config arrived — it automatically merges it with the custom User settings and
restarts the Node.
Default: 3600
seconds, or every hourTo run the application in dev mode with the same behavior set env variables instead:
PPROF_SERVER=1 DISCOVERY_URL=http://localhost:8000/networks.json yarn start
DISCOVERY_URL=http://localhost:8000/networks.json yarn start
Alias for --discovery
argument.
PPROF_SERVER=1 yarn start
Alias for --pprof-server
argument.
Smapp uses two workflows. Both of them build an application for all supported platforms: Windows, macOS, and Linux.
v*
.
Public releases of Smapp.
Signed for macOS and Windows platforms.
Artifacts and links should be permanent.
CI prepares a draft release with links to the artifacts.We recommend choosing AppImage as it is not possible to embed certain features in the .deb package.
For the Ubuntu platform Electron has an issue with setup, if you want to run it on the Ubuntu > 22.04 platform, please provide --no-sandbox
flag
command:
/opt/Spacemesh/spacemesh_app --no-sandbox
Additionally:
The following directories should be removed in case of reinstallation from scratch:
C:\Users\{USERNAME}\AppData\Local\Programs\Spacemesh
or your installation path
C:\Users\{USERNAME}\AppData\Roaming\Spacemesh
Remove the PoS data directory if you want to remove/recreate PoS data:
C:\Users\{USERNAME}\post\{GENESIS_ID}
or your PoS directory path
Where {GENESIS_ID}
is first 8 chars from the HexString. Eg 7c8cef2b
The following directories should be removed in case of reinstallation from scratch:
/opt/Spacemesh
(deb) or ~/Applications/Spacemesh-...
(AppImage) or your installation path
~/.config/Spacemesh
Remove the PoS data directory if you want to remove/recreate PoS data:
~/post/{GENESIS_ID}
or your PoS directory path
Where {GENESIS_ID}
is first 8 chars from the HexString. Eg 7c8cef2b
The following directories should be removed in case of reinstallation from scratch:
/Applications/Spacemesh
or your installation path
~/Library/Application\ Support/Spacemesh
Remove the PoS data directory if you want to remove/recreate PoS data:
~/post/{GENESIS_ID}
or your PoS directory path
Where {GENESIS_ID}
is first 8 chars from the HexString. Eg 7c8cef2b
These tools are created for debugging and development purposes. They are not supposed to be used in the production (on real and valuable data). So use it at your own risk.
yarn script:composeTx
Compose the transaction (and sign if needed).
yarn script:decomposeTx
Decompose the transaction (byte array) to the human-readable structure (JSON)
yarn script:readSecrets
Read secrets from the wallet file. For example, if you need to export private keys or mnemonics.
yarn script:addViewAccount
Add a public key to the wallet file. It makes it possible to track someone else transactions and rewards. Pay attention that Smapp does not fully support such kinds of accounts. So in case you try to sign a message or publish a transaction — unhandled exceptions will occur.