# 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) ``` 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) ``` 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"; } ```