July 2022 UPDATE: THIS TOOL (SMREPL) IS NOT UP-TO-DATE OR COMPATIBLE WITH OUR LATEST DEVNET. SMREPL DOESN'T CURRENTLY FUNCTION PROPERLY. WE WILL UPDATE WHEN WE CAN.
SMRepl - A Spacemesh REPL
SMRepl is a basic reference Spacemesh wallet and a full node manager command line REPL.
Smrepl is designed to work together with a locally running go-spacemesh full node or with the public Spacemesh API.
Target users are developers who want to hack on the Spacemesh platform and Spacemesh devnet or testnet users who are comfortable with terminal apps and REPLs.
For users who are not comfortable with terminal apps we recommend using Smapp - the Spacemesh App. Smapp is available for all major desktop platforms and includes a wallet and a full Spacemesh managed node.
- Download a release of smrepl that the devnet supports to your computer or build it from source code
- Download a release of go-spacemesh node that the devenet supports to your computer
- Download a devnet or a testnet config file to your computer and save it in the same directory as your downloaded node
- Start the node with the config file. e.g.
./go-spacemesh -c net_20_conf.json > node_logs.txt
in a terminal window - Launch smrepl in another a terminal window. e.g.
./smrepl
Smrepl should connect to your node on startup.
SMRepl is a Spacemesh API client and it implements basic wallet features via a REPL interface. Using it you can create a new coin account, execute transactions, check account balance and view transactions. You can also use it to se tup smeshing (Spacemesh mining) for your local node.
You can also use it when working on Spacemesh code by connecting it to a locally built node or to a local Spacemesh devnet
You can also connect to a public Spacemesh network API. In this configuration you can execute transactions, view account balances, past transactions and smeshing rewards.
go get && go build
make
make build-win
make build-mac
make build-linux
make dockerbuild-go
Use -wallet_directory
to override the default of current working directory when opening and creating wallets.
Use -wallet
to specify a wallet to pre-open when starting cli-wallet. cli-wallet will look in current directory
unless -wallet_directory
has been specified.
You can use your wallet without running a full node by connecting it to a public Spacemesh api service for a Spacemesh
network. Use the -grpc-server
and -secure
flags connect to a remote Spacemesh api server. For example:
./cli_wallet_darwin_amd64 -server api-123.spacemesh.io:443 -secure
Note that communications with the server will be secure using https/tls but the wallet doesn't currently verify the server identity.
Your can find the grpc server url of a public Spacemesh testnet by copying the value of the grpcAPI
field from the Spacemesh discovery srvice data.
- Join a Spacemesh network by running go-spacemesh or Smapp on your computer.
- Build the wallet from this repository and run it. For example on OS X:
make build-mac
./smrepl_darwin_amd64
By default, smrepl attempts to connect to the api server provided by your locally running Spacemesh full node using the default node's grpc api port (localhost:9092). When you run your full node directly in terminal, you can configure which api services will be available to your wallet by your node by changing entries int he api section of your node's config file:
{
"api" : {
"grpc": "node,mesh,globalstate,transaction,smesher"
}
}