This project implements a demo interface for the Cosmos Cash project to showcase the interactions from the user perspective.
Note: The project has been developed as a proof of concept!
The entrypoint for the desktop client is cmd/edge-agent/main.go
The project is composed of the following components:
- User interface: (
pkg/ui) - Token wallet (
pkg/wallets/chain) - SSI Wallet (
pkg/wallets/ssi)
The components run in their own isolated event loop, events for each component are dispatched via channels.
The messages are implemented as AppMsg struct that is:
// AppMsg are messages that are exchanged within the app
type AppMsg struct {
Typ int // message type (see list above)
Payload interface{} // content of the message, the recipient must know how to process it
}Messages related code is defined here.
Most of the logic is concentrated in the following source files:
- User interface:
pkg/ui/handlers.go - Token wallet:
pkg/wallets/chain/chain.go - SSI wallet:
pkg/wallets/ssi/aries.go
The ui is built using fyne framework.
Note: make sure that you have the prerequisites installed before running
To run the app targeting the Cosmos Cash testnet, run
make run-live