You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

79 lines
2.0 KiB

# Monero Multisig Client
A proof-of-concept client for Monero Multisig Broker.
## Installation
```
$ go get https://git.wownero.com/onionltd/monero-multisig-client-poc
```
## Usage
```
NAME:
mmc - Monero Multisig client (proof-of-concept)
USAGE:
mmc [global options] command [command options] [arguments...]
VERSION:
0.1
COMMANDS:
prepare Prepare a multisig wallet
transfer Issue a transfer from the multisig wallet
GLOBAL OPTIONS:
--wallet-rpc value Monero Wallet RPC URI (default: "http://localhost:18082/json_rpc")
--help, -h show help (default: false)
--version, -v print the version (default: false)
```
## Workflows
### `prepare` command
![prepare diagram](workflows/prepare_diagram.svg)
<img src="./workflows/prepare_diagram.svg">
```
digraph G {
label = "prepare diagram"
"init" -> "is_multisig"
"is_multisig" -> "push_prepare_multisig" [label="no"]
"is_multisig" -> "done" [label="yes"]
"push_prepare_multisig" -> "wait_peers_prepare_multisig"
"wait_peers_prepare_multisig" -> "push_make_multisig"
"push_make_multisig" -> "wait_peers_make_multisig"
"wait_peers_make_multisig" -> "push_multisig_address"
"push_multisig_address" -> "wait_peers_multisig_address"
"wait_peers_multisig_address" -> "done"
}
```
### `transfer` command
![prepare diagram](workflows/transfer_diagram.svg)
<img src="./workflows/transfer_diagram.svg">
```
digraph G {
label = "transfer diagram"
subgraph cluster_0 {
label = "sync_multisig_wallet";
color = "blue";
"push_export_multisig_info" -> "wait_peers_export_multisig_info";
"wait_peers_export_multisig_info" -> "import_multisig_info";
}
"init" -> "is_multisig";
"is_multisig" -> "push_export_multisig_info" [label="yes"];
"is_multisig" -> "done" [label="no"];
"import_multisig_info" -> "push_transfer";
"push_transfer" -> "wait_peer_sign_transfer";
"wait_peer_sign_transfer" -> "push_submit_transfer";
"push_submit_transfer" -> "done";
}
```