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